【发布时间】:2012-08-03 21:28:14
【问题描述】:
我正处于设计一个事件驱动架构(基本发布/订阅)的系统的初始阶段。尚未选择实际的工具和框架,所以这个问题是概念性的,而不是特定于技术的(尽管它将在 .Net 中完成)。
一个近乎完美的类比是金融交易系统。想象一个服务器不断接收市场数据(实时或间隔——没关系)。服务器将发布特定证券的定价更新。就这个问题而言,假设有 1000 种证券正在被服务器“观察”并发布。
有 100 个客户端应用程序订阅了此服务。每个客户只会对正在发行的证券的一小部分感兴趣。
如果客户端收到所有 1000 种证券的消息,则必须对其进行解析,这显然会增加网络流量并增加客户端的负载。
另一方面,必须在服务器端解析消息内容似乎会在发布/路由时增加负载。
在这种类型的架构中通常如何处理?
【问题讨论】:
-
我看过几个在 MVC4 应用程序中使用 SignalR (js) 的演示。 SignalR 将允许您将特定更新从服务器推送到每个单独的客户端。这将允许您根据每个客户端的需求进行过滤,并通过消除客户端轮询来减少网络流量。值得一试。
标签: c# .net publish-subscribe