簡體   English   中英

我應該擔心 Cassandra C++ 驅動程序的負載平衡選擇嗎?

[英]Should I be worried about the load balancing choices of the Cassandra C++ driver?

我有一個運行 Cassandra 3.9 的 4 個節點的小型 Cassandra 集群。

我將 4 個 IP 地址傳遞給connect()函數,當我使用netstat -a4n | grep 9042檢查連接時 netstat -a4n | grep 9042 ,我可以看到它們都已連接。 請注意,無論我將 1 個 IP 還是 4 個 IP 傳遞給connect() ,一旦完全連接,結果都是相同的,包括到 10.0.1.1 節點的雙重連接......(10.0.1.1 和 10.0.1.3 是種子,但不知何故只有 10.0.1.1 有雙重連接,所以我不太確定為什么會發生這種情況,我嘗試改組用於連接的 IP 列表,同樣,最終沒有區別。)

tcp        0      0 10.0.0.1:45012      10.0.1.3:9042      ESTABLISHED
tcp        0      0 10.0.0.1:48400      10.0.1.4:9042      ESTABLISHED
tcp        0      0 10.0.0.1:51514      10.0.1.2:9042      ESTABLISHED
tcp        0      0 10.0.0.1:56460      10.0.1.1:9042      ESTABLISHED
tcp        0      0 10.0.0.1:56452      10.0.1.1:9042      ESTABLISHED

當我查看nodetool status的輸出時,它看起來很不錯:

Datacenter: dc1
===============
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address   Load       Tokens       Owns (effective)  Host ID  Rack
UN  10.0.1.1  7.92 MiB   256          76.1%             (id)     rack1
UN  10.0.1.4  12.26 MiB  256          77.7%             (id)     rack1
UN  10.0.1.3  10.08 MiB  256          72.2%             (id)     rack1
UN  10.0.1.2  8.77 MiB   256          74.0%             (id)     rack1

(注意:我刪除了 ID,它們在這里沒有用)。

然而,在網絡方面,當我查看傳輸到這些機器的數據量時,我看到了巨大的差異。 我使用iptables -L -nvx命令,令我驚訝的是,我向第一個 Cassandra 節點發送了大約 3 倍的數據包和近 20 倍的數據:

6856 13581751 RETURN     all  --  eth1   *  10.0.1.1    0.0.0.0/0
2736   816810 RETURN     all  --  eth1   *  10.0.1.2    0.0.0.0/0
2831   807426 RETURN     all  --  eth1   *  10.0.1.3    0.0.0.0/0
2745   806023 RETURN     all  --  eth1   *  10.0.1.4    0.0.0.0/0

(6,856 / 2,736 = 2.51 和 13,581,751 / 806,023 = 16.85)

我想在某種程度上只要節點不忙就沒有關系,但我仍然想知道為什么我會看到如此巨大的差異? 為什么不是所有 4 個連接都以類似的級別參與?

驅動程序將使用接觸點作為初始連接點來設置連接池。 在此之后,池將根據您的架構拓撲、本地平衡策略和池選項創建。 作為參考,這里有一些有用的文檔(對不起,如果你已經看過這些):

http://datastax.github.io/cpp-driver/topics/

http://datastax.github.io/cpp-driver/topics/configuration/

額外的流量很可能是驅動程序使用的控制連接,它使自己與模式拓撲保持同步,以幫助驅動程序運行:

http://datastax.github.io/cpp-driver/topics/basics/schema_metadata/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM