【发布时间】:2012-08-16 18:16:08
【问题描述】:
我想创建自己的迷你项目,其中包含供 WPF 应用程序使用的大量虚构数据(期权交易),以更好地理解设计实时系统的设计理念和考虑因素,并希望了解使用了什么样的技术和方法。请不要提及第三方解决方案,如 Tibco - 这是出于学习目的。我的意图是 WPF 应用程序每 5 秒刷新一次 UI
在设计我的虚拟市场数据服务器时,考虑到高容量性能是一个标准,我想到了一些快速的想法 - 多播 UDP(这是不是太低级/不好的方向?),使用队列的消息传递架构例如 MSMQ 或 RabbitMQ,一个远程服务主机,客户端应用程序通过 WCF TCP 绑定或 Web 服务发起请求。
我的一个想法是客户维护自己的本地队列并订阅定价服务器使用消息传递解决方案广播的主题?或者,服务器可能会将数据平等地广播给所有客户端,然后让客户端在本地过滤和整理数据?在人们的经验中,每种方法的优缺点是什么,我在这里错过了其他方法吗?我想这归结为 - 客户端应该提取数据还是服务器应该将数据推送给他们?
另一个问题是 - 这些消息将采用什么有线格式?我主要习惯于使用丰富的业务对象类,分为存储库层、域模型(带有用于验证和工作流逻辑的方法)和简单的服务层。我是否仍然可以利用这种方法并仍然保持我的性能目标,或者我是否需要创建一种更轻量级的数据有效负载格式?
【问题讨论】:
-
有一个相关的开源项目:github.com/kriasoft/market-data