使用Stargate访问K8ssandra的过程之Springboot整合Cassandra

 更新时间:2021年10月04日 09:55:24   作者:南瓜慢说  
这篇文章主要介绍了使用Stargate访问K8ssandra的过程之Springboot整合Cassandra,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

1 简介

之前我们在文章《K8ssandra入门-详细记录在Linux上部署K8ssandra到Kubernetes》成功地在Ubuntu上安装了K8ssandra,现在我们来看看如何访问Cassandra。

K8ssandra的组件Stargate提供了多种方式的数据访问,对应端口如下:

  • 8080:GraphQL interface
  • 8081:REST Auth
  • 8082:REST interface
  • 9042:CQL service

我们使用最常用的9042端口,其它请参考官方文档。

2 三种方式访问

先暴露服务,然后找到对应的端口:

$ kubectl expose deployment k8ssandra-dc1-stargate --type=NodePort --name=stargate-out
$ kubectl get svc stargate-out

2.1 cqlsh命令

安装clqsh命令:

$ pip install cqlsh

连接数据库:

cqlsh -u k8ssandra-superuser -p YMEbXcPCW9xxxxxxx 127.0.0.1 30703

接着进行数据操作:

CREATE KEYSPACE pkslow  WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 1};

use pkslow;
 
CREATE TABLE users (username text primary key, password text, email text);
 
INSERT INTO users (username, password, email) values ('larry', 'larry123', 'larry@pkslow.com');
INSERT INTO users (username, password, email) values ('admin', '123456', 'admin@pkslow.com');
INSERT INTO users (username, password, email) values ('carol', '123456', 'carol@pkslow.com');
INSERT INTO users (username, password, email) values ('david', '123456', 'david@pkslow.com');

写入了数据后,我们查询看看:

2.2 用IDEA连接

配置数据库,选择Cassandra,连接信息如下:

接着就可以查看相关的数据了,如下:

2.3 通过Java程序访问

引入依赖如下:

<dependency>
  <groupId>org.springframework.data</groupId>
  <artifactId>spring-data-cassandra</artifactId>
  <version>3.2.5</version>
</dependency>

准备实体类:

package com.pkslow.springboot.cassandra.entity;

import org.springframework.data.annotation.Id;
import org.springframework.data.cassandra.core.mapping.Table;

@Table(value = "users")
public class User {
    @Id
    private String username;
    private String password;
    private String email;
}

Reposity类:

package com.pkslow.springboot.cassandra.repository;

import com.pkslow.springboot.cassandra.entity.User;
import org.springframework.data.cassandra.repository.CassandraRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface UserRepository extends CassandraRepository<User, String> {
}

同时需要在配置类中加上:

@EnableCassandraRepositories(basePackages = "com.pkslow.springboot.cassandra.repository")

配置一下数据库连接属性:

server.port=8080spring.data.cassandra.contact-points=8.134.124.38:30703spring.data.cassandra.username=k8ssandra-superuserspring.data.cassandra.password=YMEbXcPCW9xrfxxxxxspring.data.cassandra.local-datacenter=dc1spring.data.cassandra.keyspace-name=pkslow

这样就基本可以了。

启动程序,访问测试如下:

3 总结

代码请查看:https://github.com/LarryDpk/pkslow-samples

到此这篇关于使用Stargate访问K8ssandra的过程之Springboot整合Cassandra的文章就介绍到这了,更多相关Springboot整合Cassandra内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java foreach循环是否可以修改数据的值问题解决方法

    Java foreach循环是否可以修改数据的值问题解决方法

    最近在做项目的时候,需要修改一个数组里面各个元素的值,foreach循环迭代数组元素时,不能改变数组元素的值,这篇文章给大家介绍Java foreach循环是否可以修改数据的值的问题及解决方法,感兴趣的朋友一起看看吧
    2024-02-02
  • Java获取Object中Value的实现方法

    Java获取Object中Value的实现方法

    本文介绍了在Java中获取对象属性值的几种常见方法,包括使用反射机制、getter方法、接口或抽象类、Map数据结构、序列化与反序列化以及JavaBeans规范,每种方法都有其适用场景和优缺点,选择合适的方法取决于具体需求
    2025-03-03
  • SpringBoot限制接口访问频率功能实现

    SpringBoot限制接口访问频率功能实现

    最近在基于SpringBoot做一个面向普通用户的系统,为了保证系统的稳定性,防止被恶意攻击,我想控制用户访问每个接口的频率,接下来通过本文给大家介绍SpringBoot限制接口访问频率功能实现,需要的朋友可以参考下
    2023-05-05
  • SpringBoot后端上传文件类型检测方式

    SpringBoot后端上传文件类型检测方式

    这篇文章主要介绍了SpringBoot后端上传文件类型检测方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • Spring与Struts整合之使用自动装配操作示例

    Spring与Struts整合之使用自动装配操作示例

    这篇文章主要介绍了Spring与Struts整合之使用自动装配操作,结合实例形式详细分析了Spring与Struts整合使用自动装配具体操作步骤与相关实现技巧,需要的朋友可以参考下
    2020-01-01
  • log4j2采用AsyncLogger出现的错误及解决方案

    log4j2采用AsyncLogger出现的错误及解决方案

    这篇文章主要介绍了log4j2采用AsyncLogger出现的错误及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • Java线程之守护线程(Daemon)用法实例

    Java线程之守护线程(Daemon)用法实例

    这篇文章主要介绍了Java线程之守护线程(Daemon)用法,较为详细的分析了守护线程的功能与实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • Mybatis plus多租户方案的实战踩坑记录

    Mybatis plus多租户方案的实战踩坑记录

    MybaitsPlus多租户处理器是一个对于多租户问题的解决方案,下面这篇文章主要给大家介绍了关于Mybatis plus多租户方案踩坑的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2021-12-12
  • 阿里的一道Java并发面试题详解

    阿里的一道Java并发面试题详解

    这篇文章主要介绍了阿里的一道Java并发面试题详解,网络、并发相关的知识,相对其他一些编程知识点更难一些,主要是不好调试并且涉及内容太多 !,需要的朋友可以参考下
    2019-06-06
  • Java集合之LinkedHashSet类详解

    Java集合之LinkedHashSet类详解

    这篇文章主要介绍了Java集合之LinkedHashSet类详解,LinkedHashSet 是 Java 中的一个集合类,它是 HashSet 的子类,并实现了 Set 接口,与 HashSet 不同的是,LinkedHashSet 保留了元素插入的顺序,并且具有 HashSet 的快速查找特性,需要的朋友可以参考下
    2023-09-09

最新评论