Multithreading Akka/ZeroMQ消息传递模式示例
我有兴趣尝试看看我如何在我的项目中利用 在该文档中,确定了4种所谓的“消息传递模式”,但仅详细解释了1种(发布-订阅)。它们是:Multithreading Akka/ZeroMQ消息传递模式示例,multithreading,sockets,akka,messaging,zeromq,Multithreading,Sockets,Akka,Messaging,Zeromq,我有兴趣尝试看看我如何在我的项目中利用 在该文档中,确定了4种所谓的“消息传递模式”,但仅详细解释了1种(发布-订阅)。它们是: 酒吧间酒吧 路由器经销商 推拉 代表请求 对我(一个消息新手)来说,我不明白怎么会有比Pub-Sub更多的东西:你有一条消息,你把它发布到一个代理,而另一个进程(订阅者)从代理那里使用它 因此,我的具体问题是:每个消息ZeroMQ模式有哪些具体的用例,如果Akka已经有了线程间通信的机制,我为什么要利用每个模式? 我之所以这样问,是因为上面链接的文档只是说“很快就会有
Pub-Sub
更多的东西:你有一条消息,你把它发布到一个代理,而另一个进程(订阅者)从代理那里使用它
因此,我的具体问题是:每个消息ZeroMQ模式有哪些具体的用例,如果Akka已经有了线程间通信的机制,我为什么要利用每个模式?
我之所以这样问,是因为上面链接的文档只是说“很快就会有更多的文档和示例。”对于除Pub-Sub之外的所有模式,请先检查与您的问题几乎相同的另一个答案 Q:每个消息ZeroMQ模式的具体用例是什么 A:最好继续读这本书,你会在那里找到许多不可或缺的评论和评论 Q:。。不明白怎么会有酒吧酒吧酒吧 A:哦,是的,这背后有一个全新的宇宙ZeroMQ是一种无代理的,zero copy,非常快,只需触摸几次(如下所示) Q:如果Akka已经有了线程间通信的机制,我为什么要使用每个模式 A:嗯,这要看情况而定。如果您对几个本地主机线程(不超过几十个)的消息传递性能感到满意,则无需将时间投入ZeroMQ。如果追求高性能、分布式、(几乎)线性可扩展性和异构可移植性,那么现在可能是开始阅读ZMQ的正确时机 指向一些必读内容的几个链接 ZeroMQ福音传道者Pieter Hintjens&Martin súStrike在进入细节之前塑造思想的价值 《发布/订阅》的初始视图(查看Martin关于单元测试和他收藏的其他珍品的酷笔记,千万不要错过) 一本非常深入的必读读物是一本书(pdf格式)“代码连接,第1卷”“如果认真从事信息传递,这是工作的基础
发布了一系列优秀的白皮书只是为了避免潜在的误解,人们可以在更多的上下文中阅读
PUB/SUB
模式,而不仅仅是ZeroMQ实现的模式,因此,要注意的是,不要超越上下文限制,也不要期望前者具有后者的所有智能功能。谢谢@user3666197-我将查看该链接并消化它。然而,还有一件重要的事情尚未解决:如果Akka已经有了自己的线程通信机制,那么为什么还要使用这个Akka/0MQ模块呢?您检查过其中的性能差异吗?零拷贝内存占用?零阻塞线程到线程的信令/同步问题?ZeroMQ透明地跨越多个传输类{inproc | ipc | tcp | pgm | epgm},因此对于分布式/多主机消息传递或线程到线程的本地主机消息传递,没有区别(但时域中的传输“距离”和协议/取消策略的“延迟”)我建议开始学习ZeroMQ模式的地方是指南,在线网址是。再次感谢@user366197-那么你是说Akka/0MQ模块通过引入诸如低内存占用、非阻塞线程信号等东西来加速Akk参与者的通信。?换言之,可以公平地说,人们会将其用于通信参与者之间极高的吞吐量吗?@smeeb不能谈论您的案例性能数据,但此类测试可能会证明您的期望,反之亦然。检查性能测试,以便能够比较“本机”与基于ZMQ的场景。ZeroMQ性能自我测量工具通过zmq.Stopwatch()
将时间分辨率降低到亚微秒级。另一个聪明的标志,端到端。