我正在玩新发布的Akka.Net 1.0(祝贺发布!)所以对我来说这一切都很新鲜,但我很确定拥有JVM Akka经验的人也可以因为在这个问题中没有任何与运行时相关的东西。
让我们考虑几个(为了示例,2)单独的服务,它们是更大的系统/应用程序的一部分。这些服务通常都是自己做的事情,但有时需要跨服务电话。我们假设Service 2
可以是独立的,并且有GetStuff
个动作。 Service 1
有一个DoSomething
操作,必须首先获得GetStuff
操作的结果。
当两种服务可以单独部署到不同的机器时,处理这种情况的首选方法是什么?
正如我所说,我对阿卡不太了解,但通过实例,文档和来源挖掘我发现了两个选择:
Remoting
从他们自己的服务中分离actor系统以从远程主机获取ActorSelection
。它与Remoting docs example几乎相同,只是两个演员系统将是相同的'客户'。也许还有另一种我不知道的解决方案......?
就个人而言,聚类解决方案乍一看似乎难以掌握和设置,但也许我现在无法看到一些显着优势。
重申一下,处理这种情况的首选方式是什么?我应该注意什么?
答案 0 :(得分:1)
Akka.Cluster取决于Akka.Remote - 这是他们的根本不同之处:
我建议你看看我写的Akka.Cluster microservices example - 它展示了如何使用Akka.Cluster“角色”功能动态地对不同服务中的节点进行跨服务调用,而不必明确定义他们的任何网络地址。特别是,看看我如何使用“群集感知”路由器来执行此操作。