目录
    • 2.2 用idea连接
    • 2.3 通过java程序访问

    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内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!