gpt4 book ai didi

c# - 使用 WCF 实现低延迟实时金融数据馈送的最佳实践?

转载 作者:IT王子 更新时间:2023-10-29 04:02:29 24 4
gpt4 key购买 nike

我有一个 .NET 服务,需要向其客户提供实时财务数据。此提要的输出速率可能会变得很高,我正在寻找最佳架构来实现具有低延迟和高性能的此类服务。

我正在考虑使用某种流数据提供程序,用于音频或视频,但发送提要更新。

希望对这个主题有任何想法,或任何现实世界的例子

更新:

我不必使用 WCF,这只是我的第一种方法,因为它是当前的技术。欢迎使用 C# 中的任何其他实现。

最佳答案

全面披露:我在 Informatica(原 29West)工作,在负责 their messaging products 的工程团队中工作.我有偏见。但是,我对金融市场中的低延迟消息传递非常了解。

如果您的消息速率约为 60 条消息/秒。 (如对 Will Dean 的回答的评论中所述),并且它们被交付给一个 GUI,一个人坐在它前面并以人类的速度对市场使用react,老实说,什么软件并不重要您从延迟的角度使用。您甚至可以使用 WCF(尽管我仍然建议不要使用它;我们曾考虑支持它并为它设计了一个适配器原型(prototype),它使延迟膨胀了一个数量级 - 我们决定不打扰它当时)。

现在,Informatica 的消息传递软件可以在不到一微秒的时间内在同一台机器上的进程之间传递消息,如果您想购买一些带有内核旁路或 InfiniBand 设备的不错的 10 gig-E NIC,您可以在机器之间每秒传递数百万条消息具有个位数微秒的延迟。我们还将很快发布一个新的数据序列化库,该库受 C/C++、Java 和 .NET 支持,作为消息传递产品的一部分,在某些情况下,它实际上比 Protocol Buffers 更快(尽管 Protocol Buffers 被广泛使用并且也是很好的选择)。我们的 .NET 和 Java API 都有一个称为“ZOD”的特性,用于“零对象传递”,这是一种有趣的说法,它们在消息传递期间不生成新对象,这意味着没有垃圾收集暂停和相关的延迟峰值/异常值。我们有另一个名为 UMDS 的产品,它专门设计用于将高速主干流量扇出到较慢的桌面应用程序,而不会减慢主干或其他客户端的速度。

我可以继续谈论 Informatica 的消息传递软件有多棒,而且我确实认为值得一试,但这已经看起来像一个直接的广告,而且我是一名工程师,而不是销售人员。所以这里有一些更一般的建议:

  • 如果您有很多客户端接收相同的数据,您将需要某种形式的 UDP 多播。您通常需要某种可靠的多播传输 - 众所周知(且免费)的可靠多播协议(protocol)是 PGM。 Windows 包含可在 C# 中使用的 PGM 实现;我会向您推荐 Mike Rettig 的 excellent blog post如果您想尝试一下如何使用它。 (我碰巧认识迈克——他是个聪明人。)协议(protocol)选择是一个你一分钱一分货的领域; Informatica 的消息传递包括一个可靠的多播协议(protocol),该协议(protocol)松散地基于 PGM(设计它的架构师很久以前与他人共同编写了 PGM RFC),但有很多重大改进。不过,普通 PGM 可能适合您的需要。
  • 您想要采用无代理/无服务器架构。让应用程序在中间没有任何内容的情况下进行点对点通信。避免消息路径中的额外跃点(这通常意味着避免大多数 JMS 实现,避免几乎任何名称中带有“队列”的东西,等等)。
  • 请注意您的系统在单个客户端行为不端时的行为方式。一个缓慢的消费者可以放慢其他人的速度吗?
  • 有许多操作系统调整和 BIOS 调整选项可以使任何类型的低延迟消息传递、本土或购买 - 诸如 interrupt coalescing 受益。 、将 NIC 中断绑定(bind)到特定的 CPU 内核、接收端缩放(在 Windows 上与 UDP 一起使用时,这在历史上一直很糟糕,但将来应该会变得更好)、禁用某些 CPU 电源状态等。
  • 抵制使用 .NET 中的内置对象序列化通过网络发送整个对象的诱惑——它比使用简单的二进制格式(如 Protocol Buffer 、Informatica 的序列化库或您自己的二进制格式等)慢几个数量级.)

  • 如果您有更具体的问题或需要更多关于我的建议的详细信息,请告诉我!

    关于c# - 使用 WCF 实现低延迟实时金融数据馈送的最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5757886/

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