微服务:Akka的服务发现和服务注册

Bar*_*ona 7 akka microservices

我将为我的应用程序应用微服务架构.微服务之间的内部通信将通过使用Akka来实现.但我不知道如何使所有微服务知道并相互注册.我有一些设计Service Registry和Discovery的选项:

1)使用Zookeeper作为中心化服务来保存所有微服务(节点)的所有元数据,并让他们访问这些元数据进行通信.每个节点的元数据包含Akka路径(地址)信息,以便让其他节点进行通信.

2)将所有微服务(Akka Nodes)加入Akka集群,每个节点将保持彼此的引用以进行通信.Akka Cluster支持八卦协议,它将让群集中的所有节点一起识别.

有人可以给我一些建议吗?如何在Akka之上有效地设计服务发现和服务注册表?这有什么选择吗?

小智 1

一段时间以来,我一直在使用您建议的第二种方法构建类似的分布式应用程序,其中微服务在 Akka 集群中运行,几乎没有预定义的播种器节点。每个微服务都使用角色来标识自身,并具有它感兴趣的角色列表。

每个节点/微服务都有一个监听成员事件的参与者,负责为感兴趣的节点保留路径地址,并且充当节点间消息的路由器。

我很喜欢这种方法,它可以轻松地提供可扩展性。