除了@Zoltan 的回答,我还从 LaunchDarkly 的Effective Feature management E book (Page 36)中找到了以下内容
在任何网络系统中,都有两种分发信息的方法。
轮询是端点(客户端或服务器)定期请求更新的方法。第二种方法是流式传输,当新值发生变化时,中央机构将新值推送到所有端点。这两种选择都有利有弊。
但是,在基于轮询的系统中,您面临着一个没有吸引力的权衡:要么不频繁地进行轮询,并且冒着应用程序的不同部分具有不同标志状态的风险,要么您非常频繁地进行轮询并承担了系统负载的高成本、网络带宽和支持高需求的必要基础设施。
另一方面,流式架构提供速度优势和一致性保证。流更适合大规模和分布式系统。在这个设计中,每个客户端都保持与功能管理系统的连续运行连接,该系统会在所有客户端发生任何更改时立即将它们发送下来。
投票优点:
投票缺点:
流媒体优点:
大规模高效。每个客户端仅在必要时接收消息。
快速传播。更改可以实时推送给客户。
流媒体缺点:
对于我的用例,我决定在不需要经常更新标志(长轮询间隔)并且不关心不一致(脑裂)的地方使用轮询。
对于需要立即更新标志和保持一致性的应用程序,流式传输非常重要。