为了账号安全,请及时绑定邮箱和手机立即绑定

gocql 客户端如何为任何查询选择正确的 Tablet 服务器?

gocql 客户端如何为任何查询选择正确的 Tablet 服务器?

Go
暮色呼如 2022-10-31 15:24:01
yugabyte 集群有 2 个区域,3 个可用区,6 个节点架构。中部4个节点,东部2个节点Node1 (Master, TServer) US-eastNode2 (Master, TServer) US-central-1Node3 (TServer) US-central-1Node4 (TServer) US-eastNode5 (Master, TServer) US-central-2 (Leader)Node6 (TServer) US-central-2应用程序正在中部地区运行。应用程序正在使用当前配置为向 Node2 发送 SQL 查询的YCQL 驱动程序(yugabyte gocql 客户端)(仅限)如此处所述: 在许多情况下,此转发将纯粹是本地的,因为 CQL 和 Redis 集群客户端都能够将请求发送到正确的服务器并避免额外的网络跃点。上面关于 CQL 客户端的说法是指 yugabyte gocql 客户端吗?这里它提到:“驱动程序可以将查询路由到基于分区键(首选本地 DC)保存数据副本的节点。”客户端驱动程序如何知道向哪个平板服务器发送请求?如果是,YCQL 驱动程序的连接配置是否与所有 4 个节点(在中心区域)都有连接,使客户端驱动程序能够知道正确的平板服务器,以发送查询?提高查询响应时间如果是,Hoes YCQL 驱动程序知道,哪个是发送查询请求(INSERT/UPDATE/SELECT)的正确平板服务器?
查看完整描述

1 回答

?
隔江千里

TA贡献1906条经验 获得超10个赞

客户端驱动程序如何知道向哪个平板服务器发送请求?

驱动程序定期查询此表:

ycqlsh:system> select * from system.partitions;

它在哪里找到表格的拆分方式以及平板电脑的位置。

当您发送查询时,您以驱动程序理解它们并散列它们并知道将它们发送到哪里的方式传递分区键。

如果是,YCQL 驱动程序的连接配置是否与所有 4 个节点(在中心区域)都有连接,使客户端驱动程序能够知道正确的平板服务器,以发送查询?提高查询响应时间

是的。这应该与 DC Aware 查询路由相结合:https ://pkg.go.dev/github.com/gocql/gocql#hdr-Data_center_awareness_and_query_routing

如果是,Hoes YCQL 驱动程序知道,哪个是发送查询请求(INSERT/UPDATE/SELECT)的正确平板服务器?

使用与上述相同的逻辑。了解所有集群上的平板电脑位置。


查看完整回答
反对 回复 2022-10-31
  • 1 回答
  • 0 关注
  • 74 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号