簡體   English   中英

Akka群集加入DNS負載平衡

[英]Akka Cluster Joining with DNS Load Balancing

查看akka群集文檔 ,您似乎必須知道至少1個“種子節點”的服務器和端口值才能加入群集。 示例application.conf清楚表明開發人員在編寫文件時需要知道“ host1”和“ host2”:

akka.cluster.seed-nodes = [
  "akka.tcp://ClusterSystem@host1:2552",
  "akka.tcp://ClusterSystem@host2:2552"]

但是,請考慮向DNS負載平衡器注冊每個群集節點的可能性。 例如:可以實例化在名稱“ foobar.cluster.com”后面已向負載均衡器注冊的10個節點,以便負載均衡器將每個新連接發送到10個節點循環方式之一。

然后我可以將種子節點設置為"akka.tcp://ClusterSystem@foobar.cluster.com:2552"嗎?

換句話說, 是否可以使用動態的負載平衡名稱來加入akka集群?

先驗存在一個潛在的問題:在第一次嘗試時,一個節點可能會成為種子節點。 解決此問題的一種可能方法是,將相同的種子節點值多次放入conf文件中,以獲得最終連接到不同節點的高可能性:

akka.cluster.seed-nodes = [
  "akka.tcp://ClusterSystem@foobar.cluster.com:2552",
  "akka.tcp://ClusterSystem@foobar.cluster.com:2552",
  "akka.tcp://ClusterSystem@foobar.cluster.com:2552"]

但是akka可能會將所有這些值都簡化為一個調用,因為它們完全相同...

預先感謝您的考慮和回應。

可以,但是您必須自己進行DNS解析,然后以編程方式加入群集。 此處對此進行了一些描述: http : //doc.akka.io/docs/akka/current/scala/cluster-usage.html#Joining_to_Seed_Nodes

因此,您首先需要配置文件包含akka.cluster.seed-nodes = []才能禁用自動加入。

然后,您需要解析foobar.cluster.com以獲得實際節點的列表, 01.foobar.cluster.com02.foobar.cluster.com ,...

您將使用它們來加入集群: Cluster(system).joinSeedNodes(_list_of_nodes_with_port)

最后,請記住,當Akka綁定到的主機名和端口對與用於從外部連接到系統的“邏輯”主機名和端口對不同時 ,請記住 這需要特殊的配置

暫無
暫無

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

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