发布者-订阅者和反应堆模式之间有什么区别?


11

看起来像我的发布-订阅Reactor模式非常相似。它们有何不同?

在这两种模式中,消息都间接传递给订户(反应堆模式中的侦听器)。

我觉得观察者模式也非常类似于其他两个模式。

这些模式之间的主要区别是什么?

Answers:


12

从链接中可以看到,PubSub模式不是OOP模式,而是消息传递模式,它是网络体系结构模式。

Reactor模式与使用单线程事件循环处理服务器的请求有关。再次,该链接显示了一些很好的示例,例如Node.js,Netty,Twisted等。

最后,Observer是OOP设计模式,该模式描述了OO代码中对象之间的交互方式。

因此,这三种模式来自不同的领域。


6

Reactor =接收和处理请求的单线程事件循环。这些请求可以通过SMTP和/或HTTP从文件中批量加载。准备好时而不是顺序地传递已处理的并发响应。

出版商发出。订户消费。

发布者+订阅者=观察者模式(首先是设计模式)。观察者会顺序射击,通常会封锁直到他们完成。


2

PubSub与消息队列(MQ)更为相关。它与节点如何在分布式系统中接收异步消息有关。

Reactor模式与异步事件有更多关系。例如,非阻塞套接字使用反应堆模式来传递网络事件:READ,WRITE,CONNECT,ACCEPT

您可以检查CoralReactor以更好地了解反应堆模式。

免责声明:我是CoralReactor的开发人员之一。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.