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

yugabyte 集群有 2 个区域,3 个可用区,6 个节点架构。


中部4个节点,东部2个节点


Node1 (Master, TServer) US-east

Node2 (Master, TServer) US-central-1

Node3 (TServer) US-central-1

Node4 (TServer) US-east

Node5 (Master, TServer) US-central-2 (Leader)

Node6 (TServer) US-central-2

应用程序正在中部地区运行。

应用程序正在使用当前配置为向 Node2 发送 SQL 查询的YCQL 驱动程序(yugabyte gocql 客户端)(仅限)


如此处所述: 在许多情况下,此转发将纯粹是本地的,因为 CQL 和 Redis 集群客户端都能够将请求发送到正确的服务器并避免额外的网络跃点。

  1. 上面关于 CQL 客户端的说法是指 yugabyte gocql 客户端吗?这里它提到:“驱动程序可以将查询路由到基于分区键(首选本地 DC)保存数据副本的节点。”

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

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

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


暮色呼如
浏览 108回答 1
1回答

隔江千里

客户端驱动程序如何知道向哪个平板服务器发送请求?驱动程序定期查询此表: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)的正确平板服务器?使用与上述相同的逻辑。了解所有集群上的平板电脑位置。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go