欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-06-25 10:48:01
目录2.2 用idea连接2.3 通过java程序访问1 简介之前我们在文章《k8ssandra入门-详细记录在linux上部署k8ssandra到kubernetes》成功地在ubuntu上安装了k...

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');

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

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

2.2 用idea连接

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

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

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

使用Stargate访问K8ssandra的过程之Springboot整合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

这样就基本可以了。

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

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

3 总结

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

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