1

Akka.Net 集群需要一个 ActorSystem,但是如果我有多个需要同步或异步协调的 ActorSystem(分布式应用程序)怎么办?

如何处理共享消息库?也许最好不要共享任何东西(除了通用消息库)并使用动态消息,例如:DynamicJsonMessageBase。

如何处理服务发现?

背景:我正在使用 Akka.Net 设计一个微服务架构,它可能会使用 Lighthouse 进行发现,使用 REST HTTP API 用于后端代理/门户,并结合用于向非 Actor 服务发送/接收消息的传输机制。

4

1 回答 1

1

通常您的集群由多个参与者系统组成。然而,在 Akka.NET 中,集群可以是异构的,这意味着节点(参与者系统)在执行的操作和加载的程序集方面可能彼此不同。为了在这方面区分它们,您可以为每个参与者系统配置不同的角色集。

集群角色也可用于在更新集群内的代码时限制节点之间的通信 - 以便具有旧代码的节点不会尝试与更新的代码进行通信。这允许在不关闭集群的情况下执行集群的增量更新。

服务发现最好是使用第三方提供商实现的,第三方提供商已经启用了 Consul、Azure Service Fabric、etcd 或 Zookeeper。

于 2016-10-23T21:19:13.157 回答