使用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整合cxf后不能访问controller,不能访问接口
参考版本 springboot 1.4.X <=========> cxf-spring-boot-starter-jaxws 3.1.X springboot 1.5.X <=== ...
- SpringBoot数据访问(一) SpringBoot整合Mybatis
前言 SpringData是Spring提供的一个用于简化数据库访问.支持云服务的开源框架.它是一个伞形项目,包含了大量关系型数据库及非关系型数据库的数据访问解决方案,其设计目的是为了使我们可以快速且 ...
- SpringBoot数据访问(二) SpringBoot整合JPA
JPA简介 Spring Data JPA是Spring Data大家族的一部分,它可以轻松实现基于JPA的存储库.该模块用于增强支持基于JPA的数据访问层,它使我们可以更加容易地构建使用数据访问技术 ...
- SpringBoot数据访问(三) SpringBoot整合Redis
前言 除了对关系型数据库的整合支持外,SpringBoot对非关系型数据库也提供了非常好的支持,比如,对Redis的支持. Redis(Remote Dictionary Server,即远程字典服务 ...
- spring-boot整合mybatis(1)
sprig-boot是一个微服务架构,加快了spring工程快速开发,以及简便了配置.接下来开始spring-boot与mybatis的整合. 1.创建一个maven工程命名为spring-boot- ...
- SpringBoot整合Mybatis之项目结构、数据源
已经有好些日子没有总结了,不是变懒了,而是我一直在奋力学习springboot的路上,现在也算是完成了第一阶段的学习,今天给各位总结总结. 之前在网上找过不少关于springboot的教程,都是一些比 ...
- SpringBoot整合Redis、ApachSolr和SpringSession
SpringBoot整合Redis.ApachSolr和SpringSession 一.简介 SpringBoot自从问世以来,以其方便的配置受到了广大开发者的青睐.它提供了各种starter简化很多 ...
- SpringBoot整合Swagger2,再也不用维护接口文档了!
前后端分离后,维护接口文档基本上是必不可少的工作.一个理想的状态是设计好后,接口文档发给前端和后端,大伙按照既定的规则各自开发,开发好了对接上了就可以上线了.当然这是一种非常理想的状态,实际开发中却很 ...
- SpringBoot整合Jsp和Thymeleaf (附工程)
前言 本篇文章主要讲述SpringBoot整合Jsp以及SpringBoot整合Thymeleaf,实现一个简单的用户增删改查示例工程.事先说明,有三个项目,两个是单独整合的,一个是将它们整合在一起的 ...
随机推荐
- 用宏实现HEX到ASCII ,ASCII 到HEX
#define HEX2ASCII(value, data) do{ \ value = (value > 0x09)?(value+0x7):value; \ ...
- jQuery中的基本选择器(四、一):* 、 . 、element(直接标签名)、 或者用逗号隔开跟多个
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- JDBC中的元数据——1.数据库元数据
package metadata; import java.sql.Connection; import java.sql.DatabaseMetaData; import javax.sql.Dat ...
- C++笔记(11) 智能指针
1. 设计思想 智能指针是行为类似于指针的类对象,但这种对象还有其他功能.首先,看下面的函数: void remodel(std::string & str) { std::string * ...
- ES6扩展——函数扩展之剩余函数
1.结合扩展运算符 //剩余参数是做聚合的,扩展运算符是做展开的 function sum(...args){ console.log(arguments); console.log(argument ...
- Win7安装 Mysql 5.7.22客户端
根据自己的操作系统下载对应的32位或64位的压缩包: http://dev.mysql.com/downloads/mysql/ 官网下载 选择Windows对应的版本下载 不注册直接下载 安装步骤 ...
- 磁盘“Seagate”没有被推出,因为一个或多个程序可能正在使用它。
推出移动硬盘失败,解决方案: 执行 lsof /Volumes/Seagate/ 可以看到哪些进程在占用磁盘 $ lsof /Volumes/Seagate/ COMMAND PID USER FD ...
- vue 前端反向代理后台,解决跨域问题
// 和 src 同层的 config 文件夹下的 index.js dev 里面的 // Paths assetsSubDirectory: 'static', assetsPubl ...
- hyperf从零开始构建微服务(一)——构建服务提供者
阅读目录 什么是服务 构建服务提供者 1.创建数据表 2.构建服务提供者 3.安装json rpc依赖 4.安装rpc server组件 5.修改server配置 6.配置数据库 7.编写基础代码 7 ...
- noip模拟44
A. Emotional Flutter 直接将所有黑块平移到 \([1-k,0]\) 的区间即可,然后找有没有没被覆盖过的整点 注意特判 \(1-k\) 以及 \(0\) 的可行性,考场这里写挂成 ...