我们正在使用k8ssandra头盔图提供一个Cassandra集群,它公开了几个服务,我们的客户端应用程序正在使用datastax驱动程序,并且运行在与Cassandra集群相同的k8s集群上(这是测试阶段)。
CqlSessionBuilder builder = CqlSession.builder();推荐的连接应用程序(通过驱动程序)到Cassandra的方法是什么?
添加所有节点?
for (String node :nodes) {
builder.addContactPoint(new InetSocketAddress(node, 9042));
}只添加服务地址?
builder.addContactPoint(new InetSocketAddress(service-dns-name , 9042))添加未解析的服务地址?(这还行吗?)
builder.addContactPoint(InetSocketAddress.createUnresolved(service-dns-name , 9042))发布于 2021-11-30 04:25:44
k8ssandra Helm图表除了部署许多其他资源外,还部署了一个CassandraDatacenter对象和cass-运算符。cass-操作员负责管理CassandraDatacenter.它创建了StatefulSet并创建了几个无头服务,包括:
种子服务只解决作为种子的豆荚。它的名称是表单<cluster-name>-seed-service。由于豆荚的短暂性,cass-算子可以指定不同的C*节点作为种子节点。不要使用种子服务连接客户端应用程序。
所有吊舱服务解决所有卡桑德拉吊舱,无论他们是否准备好。它的名称是表单<cluster-name>-<dc-name>-all-pods-service。这项服务的目的是便于进行监测。不要使用all pods服务连接客户端应用程序。
数据中心服务解析为已准备好的吊舱。它的名称是表单<cluster-name>-<dc-name>-service,这是您应该用来连接客户端应用程序的服务。不要直接使用荚IP,因为它们会随着时间的推移而改变。
发布于 2021-11-29 15:58:32
添加所有节点?
您肯定不需要添加所有节点作为接触点。即使是在香草卡桑德拉,只添加几个是好的,因为司机会流言蜚语,找到其余的。
只添加服务地址?
在服务地址上绑定的第二个选项是您需要做的全部工作。服务地址的好处是,它将考虑更改/删除集群中的in。
https://stackoverflow.com/questions/70154851
复制相似问题