akka-cluster中对外部系统的负载均衡调用

Load balancing calls to external system in akka-cluster

A​​kka集群图:

          DATA CENTER 1                            DATA CENTER 2
+-------------------------------+        +-------------------------------+
| +--------+         +--------+ |        | +--------+         +--------+ |
| | NODE 1 |---------| NODE 2 | |        | | NODE 4 |---------| NODE 5 | |
| +--------+         +--------+ |        | +--------+         +--------+ |
|     |                  |      +--------+     |                  |      |
|     |    +--------+    |      |        |     |    +--------+    |      |
|     +----| NODE 3 |----+      |        |     +----| NODE 6 |----+      |
|          +--------+           |        |          +--------+           |
+-------------------------------+        +-------------------------------+

要求:

想法:

那么你会如何设计一个Akka集群系统来负载均衡对外部系统的调用?

听起来您只想大致均匀地分布运行状况检查。您可以将 Akka 的集群分片与记忆实体一起使用,并使分片数量等于每个分片单个实体的健康检查数量。然后,当每个实例启动时,它只需向所有分片发送一条消息,以确保它们已启动。如果他们已经开始,他们将忽略该消息。我在这里假设您要执行的健康检查明显多于 6 项。

如果一个实例出现故障,分片会自动分配给应用程序的另一个实例,并且该实体会在该新实例上再次启动。为了聚合健康检查,您可以将它们全部发送到 Kafka 主题或将它们发送到集群单例以进行聚合。也许您计划将结果发送到 statsd 端点或将它们插入数据库。目前尚不清楚如何使用您的问题中的健康检查结果。