首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我是否应该在“股票交易”系统中使用共享内存来分离“市场数据接收者”部分?

我是否应该在“股票交易”系统中使用共享内存来分离“市场数据接收者”部分?
EN

Stack Overflow用户
提问于 2012-03-14 15:51:42
回答 1查看 242关注 0票数 0

我的交易系统由两部分组成。

  • "Udp milticast市场数据接收器“--只接收UDP组播的市场数据和其他任何东西(订单、订单、最佳出价/询问等)
  • ”主系统“--使用市场数据、计算新订单、发送订单等

这些系统是相当连通的-典型的场景是这样的:

代码语言:javascript
复制
- "UDP" -> "Main" Apple BID/ASK 500.1/500.2
- Main sends order № 1122 Apple BUY 555
- "UDP" -> "Main" Order № 1122 Executed
- Main send order № 1123 Apple SELL 505
- "UDP" -> "Main" Order №1123 Registered, Ammount 1, Executed 0, Left 1

"UDP“部分不知道"Main”存在。“主”使用"UDP“

我想让它们成为单独的项目,因为理论上我可以在不运行"Main“的情况下运行"UDP”本身。或者我可以运行几个“主”实例。

因此,"UDP“应该产生一些其他人可以使用的可写存储。

但是"Main“和"UDP”是连接的--它们使用相同的类和相同的结构来表示Quotes等等。

而且我也不能有性能惩罚,性能是非常重要的--我需要一些东西,就像在应用程序中存储数据一样快。

我应该使用“共享内存”或其他技术,还是最好在一个项目中创建所有的东西?

我认为我的问题是相当普遍的,因为许多不同的市场数据适配器已经由不同的公司编写,所以应该有一些“默认”解决方案。

EN

回答 1

Stack Overflow用户

发布于 2012-03-14 16:05:17

如果您确实需要性能,则解决方案是使用具有明显分隔层的ine单个项目。无论您选择什么“独立”解决方案,总会有一些开销。

另一方面,分离可以帮助您扩展应用程序,可能有一天,"Main“可能不在"Udp”所在的同一台机器上。看看.NetRemoting就能实现这一点。

希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9705322

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档