Akka 集群加入 DNS 负载均衡
Akka Cluster Joining with DNS Load Balancing
查看 akka cluster documentation 看来您必须知道至少 1 "seed node" 的服务器和端口值才能加入集群。 application.conf这个例子明确说明开发者在写文件的时候需要知道"host1"和"host2":
akka.cluster.seed-nodes = [
"akka.tcp://ClusterSystem@host1:2552",
"akka.tcp://ClusterSystem@host2:2552"]
但是,请考虑使用 DNS 负载平衡器注册每个集群节点的可能性。例如:可以实例化 10 个节点,这些节点都在名称 "foobar.cluster.com" 后面的负载均衡器中注册,这样负载均衡器会将每个新连接发送到 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.com
、02.foobar.cluster.com
、...
您将使用这些来加入集群:Cluster(system).joinSeedNodes(_list_of_nodes_with_port)
。
查看 akka cluster documentation 看来您必须知道至少 1 "seed node" 的服务器和端口值才能加入集群。 application.conf这个例子明确说明开发者在写文件的时候需要知道"host1"和"host2":
akka.cluster.seed-nodes = [
"akka.tcp://ClusterSystem@host1:2552",
"akka.tcp://ClusterSystem@host2:2552"]
但是,请考虑使用 DNS 负载平衡器注册每个集群节点的可能性。例如:可以实例化 10 个节点,这些节点都在名称 "foobar.cluster.com" 后面的负载均衡器中注册,这样负载均衡器会将每个新连接发送到 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.com
、02.foobar.cluster.com
、...
您将使用这些来加入集群:Cluster(system).joinSeedNodes(_list_of_nodes_with_port)
。