gpt4 book ai didi

architecture - 推送事件的缩放 - 最佳拓扑?

转载 作者:行者123 更新时间:2023-12-01 10:04:09 25 4
gpt4 key购买 nike

我构建了一个 TCP 服务器来处理来自客户端的 RPC(请求/回复)类型的请求,但它也允许服务在特定时间下推事件。

如果我将来需要扩展,RPC 的东西很容易,比如网络基础设施,我只需添加更多的节点和负载平衡。

为了扩展推送消息,我需要所有服务器进行协调,因为订阅事件的客户端可以在任何服务器上。

我的选择是:

  1. 使用 UDP 多播/广播(例如 emcaster)将事件广播到所有服务器
  2. 使用 TCP 将服务器完全互连
  3. 发送所有事件的中央服务器,以及所有的工作人员服务器连接到那个
  4. [3] 但有几层形成一棵树

我很想选择 [1],因为它很简单并且可能适用于最多 20-30 个节点。对于不同 N 范围的最佳策略是否达成共识,其中 N 是节点数?

最佳答案

您应该查看 zeromq 指南。如果您需要 udp 广播来补偿丢失的数据包,那么 zeromq 将是一个不错的选择。它是为提高效率而构建的轻量级消息传递接口(interface)。这是 C(库语言)和 Python 的介绍指南:

C: http://zguide.zeromq.org/page:all
python :http://zguide.zeromq.org/py:all

这些示例还被翻译成 C++、C#、CL、Erlang、F#、Felix、Haskell、Java、Objective-C、Ruby、Ada、Basic、Clojure、Go、Haxe、Node.js、ooc、 Perl、Scala、Lua、Haxe 和 PHP。

----更新---

抱歉,链接似乎没有将所有代码示例从 C 更改为 python,但您可以获得其他语言翻译...

专门针对您的推送拓扑,他们有一个关于如何在 zeromq 中实现发布/订阅的页面:http://www.zeromq.org/whitepapers:0mq-3-0-pubsub

关于architecture - 推送事件的缩放 - 最佳拓扑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12483609/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com