Akka集群是运行多套接字客户端的好选择吗

34gzjxbg  于 2022-11-05  发布在  其他
关注(0)|答案(1)|浏览(140)

我需要在几个节点上运行1000多个套接字客户端。每个客户端都侦听唯一的端点。
https://doc.akka.io/docs/akka-http/current/client-side/websocket-support.html
我计划代表每个客户作为监督、恢复、事件处理等方面的参与者,并希望akka集群将

  • 生成我的执行元,其中每个执行元表示套接字客户端
  • 监督政策将有助于从失败的国家中恢复行动者
  • 跨多个节点均匀分布执行元
  • 我保证每个客户最多只有一个演员
  • Akka消息传递将帮助我实现具有至少一次语义的参与者之间的通信。

我还能期待什么呢?

xzlaal3s

xzlaal3s1#

总的来说,Akka生态系统有一些合理的模式可以满足您的需求:

  • 每个客户端的演员是合理的起点;监督帮助很大
  • 集群分片将在集群节点之间均匀地分布参与者,并且通常每个分片ID最多维护一个化身(因此您需要将每个客户端Map到不同的分片ID)。裂脑解析器配置控制一致性与可用性的权衡(基本上由您决定是希望故障模式是客户机的无活动示例还是客户机的多个活动示例)。
  • 为了确保当一个分片在重新平衡中移动时,该分片中的客户端在新节点上启动,有两个选项:在集群分片中“记住实体”,以及拥有一个集群单例,它定期ping每个客户端参与者。如果保持活动的设置是合理的静态,我倾向于单例方法。
  • Akka的基本消息语义是at-maximum-once,但也有一些关于at-minimum-once的成熟的和有文档记录的模式(最著名的是ask模式)。

相关问题