yugabyte 集群有 2 個區(qū)域,3 個可用區(qū),6 個節(jié)點架構。中部4個節(jié)點,東部2個節(jié)點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應用程序正在中部地區(qū)運行。應用程序正在使用當前配置為向 Node2 發(fā)送 SQL 查詢的YCQL 驅動程序(yugabyte gocql 客戶端)(僅限)如此處所述: 在許多情況下,此轉發(fā)將純粹是本地的,因為 CQL 和 Redis 集群客戶端都能夠將請求發(fā)送到正確的服務器并避免額外的網絡躍點。上面關于 CQL 客戶端的說法是指 yugabyte gocql 客戶端嗎?這里它提到:“驅動程序可以將查詢路由到基于分區(qū)鍵(首選本地 DC)保存數(shù)據副本的節(jié)點?!笨蛻舳蓑寗映绦蛉绾沃老蚰膫€平板服務器發(fā)送請求?如果是,YCQL 驅動程序的連接配置是否與所有 4 個節(jié)點(在中心區(qū)域)都有連接,使客戶端驅動程序能夠知道正確的平板服務器,以發(fā)送查詢?提高查詢響應時間如果是,Hoes YCQL 驅動程序知道,哪個是發(fā)送查詢請求(INSERT/UPDATE/SELECT)的正確平板服務器?
1 回答
隔江千里
TA貢獻1906條經驗 獲得超10個贊
客戶端驅動程序如何知道向哪個平板服務器發(fā)送請求?
驅動程序定期查詢此表:
ycqlsh:system> select * from system.partitions;
它在哪里找到表格的拆分方式以及平板電腦的位置。
當您發(fā)送查詢時,您以驅動程序理解它們并散列它們并知道將它們發(fā)送到哪里的方式傳遞分區(qū)鍵。
如果是,YCQL 驅動程序的連接配置是否與所有 4 個節(jié)點(在中心區(qū)域)都有連接,使客戶端驅動程序能夠知道正確的平板服務器,以發(fā)送查詢?提高查詢響應時間
是的。這應該與 DC Aware 查詢路由相結合:https ://pkg.go.dev/github.com/gocql/gocql#hdr-Data_center_awareness_and_query_routing
如果是,Hoes YCQL 驅動程序知道,哪個是發(fā)送查詢請求(INSERT/UPDATE/SELECT)的正確平板服務器?
使用與上述相同的邏輯。了解所有集群上的平板電腦位置。
- 1 回答
- 0 關注
- 104 瀏覽
添加回答
舉報
0/150
提交
取消
