zoukankan      html  css  js  c++  java
  • 使用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

  • 相关阅读:
    DEDECMS里面DEDE函数解析
    dede数据库类使用方法 $dsql
    DEDE数据库语句 DEDESQL命令批量替换 SQL执行语句
    织梦DedeCms网站更换域名后文章图片路径批量修改
    DSP using MATLAB 示例 Example3.12
    DSP using MATLAB 示例 Example3.11
    DSP using MATLAB 示例 Example3.10
    DSP using MATLAB 示例Example3.9
    DSP using MATLAB 示例Example3.8
    DSP using MATLAB 示例Example3.7
  • 原文地址:https://www.cnblogs.com/larrydpk/p/15362931.html
Copyright © 2011-2022 走看看