关于java:使用Stargate访问K8ssandraSpringboot整合Cassandra

42次阅读

共计 2194 个字符,预计需要花费 6 分钟才能阅读完成。

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/p…

正文完
 0