AKKA Cluser 之SeedNode(種子節點)

AKKA提供的cluser功能能夠很便捷的創建一個分佈式應用,在使用cluster時需要配置seed nodes節點,這裏對seed nodes節點做一下介紹。

AKKA seed nodes 和普通節點沒有什麼本質區別,區別在於指定成爲種子的節點在集羣啓動時應該首先被啓動,因爲其他節點需要種子節點的認證才能加入種子節點創建的集羣。

但是一旦集羣啓動起來,seed nodes掛掉是沒有影響的,只是如果新節點想加入集羣如果還是指定的是掛掉的seed nodes是無法加入集羣的,但是可以通過將seed nodes指定爲集羣中其他還活着的節點來加入集羣

例如:
集羣啓動時

seed-nodes = [
  "akka.tcp://ClusterSystem@127.0.0.1:2551",
  "akka.tcp://ClusterSystem@127.0.0.1:2552"
]

其它以非seed node節點身份啓動的節點有:

"akka.tcp://ClusterSystem@127.0.0.1:2553"
"akka.tcp://ClusterSystem@127.0.0.1:2554"

此時,2551和2552都掛掉了,如果新節點akka.tcp://[email protected]:2555”想加入集羣:

seed-nodes = [
  "akka.tcp://ClusterSystem@127.0.0.1:2551",
  "akka.tcp://ClusterSystem@127.0.0.1:2552"
]

這樣是無法加入集羣的,因爲seed nodes都已經掛掉了,但是可以講seed node節點指定爲或者的節點,比如2553或者2554是可以加入集羣的。

所以實際應用場景中,爲了防止節點的下線,導致每次重啓或者新加節點都要改動種子節點的配置,可以考慮將節點信息放在動態配置管理中,比如zookeeper。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章