我在这里阅读http://mechanitis.blogspot.fr/2011/06/dissecting-disruptor-how-do-i-read-from.html
“对于每个单独的项目,消费者只是简单地说”当你有超过这个数字的时候让我知道“,然后被告知它可以获得多少条目。”
这与Erik Meijer所揭示的Rx框架概念无关 http://www.youtube.com/watch?v=8Mttjyf-8P4?
如果是,Rx Framework可以帮助实现类似的软件吗?
答案 0 :(得分:4)
很好的问题,我自己一直在想这个问题,对于我目前的一个项目。
然而,我并不是很有资格给出明确的答案:
Disruptor显然是为性能而设计的,尽可能接近金属。除了它的作用外,它没有做任何花哨的事情。
Rx是更高级别,它是'Linq to events',它允许你使用普通框架事件无法处理的“事件”做好事(你不能过滤标准事件然后继续传播它作为一个事件)。
Disruptor.Net的发起人指出here:
接口匹配,但我认为RX背后的语义不是:
- 异常(OnError)终止流,这与disruptor
的情况不同- 你不能在炎热的时候订阅破坏者:在“启动”破坏者之前必须设置观察者,这不是 与重试等运营商合作非常好 订阅时出现错误
- 许多运营商对破坏者没有意义,或者只是不行。
话虽如此,他(至少在一次)思考integration between Disruptor.Net, TPL Dataflow and Rx。
这是另一个page,其中有人问相同的问题,页面以:
结束在我看来,Disruptor实际上更像是TPL DataFlow。
答案 1 :(得分:1)
不知道Rx框架,你可能是对的。但是,Disruptor.Net被设计为Java版本的端口,因此它将尽可能相似。鉴于原始版本不使用Rx,它会增加大量的返工和可能的性能问题以使用不同的库。