2

我有一个依赖套接字为游戏系统提供回调功能的系统。对于故障转移和可扩展性,一个用户可以连接到一个套接字,而同一团队中的另一个用户连接到另一个。

当控制消息进来时,我需要检查需要多少个套接字来响应该消息;即:如果所有团队成员都在一个套接字上,则只需一个套接字将消息推送给团队成员。相反,如果团队成员跨多个套接字进行“负载平衡”,则相关套接字需要将消息推送到其各自连接的成员。

目前,我正在使用一个轮询系统来查询自定义数据库表,其中包括套接字 Id (GUID) 以及哪些成员连接到套接字。这与消息本身相连,因此我保证每个套接字都处理消息。

最大的问题是,我讨厌投票!

最大的问题是,为了最有效地完成这项工作,我应该研究什么技术?我查看了 SQL Server 依赖项,但这看起来像是保持数据库连接打开,直到满足查询。

我也招待过 MSMQ,但这似乎只允许一个“订阅者”,这排除了多个感兴趣的套接字。

我不确定开源 ESB。我了解 ESB 的前提,但是如何指示一个套接字处理了消息,而另一个套接字尚未成功处理消息。

然后是整个消息代理系统。对我来说,这听起来像是一个愚蠢的 ESB。

我呼吁所有企业架构师帮助我解决这个难题。

亲切的问候

4

0 回答 0