发布/订阅是如何工作的

既然已经看到了发布/订阅的行动,让我们来看看在窗帘后面,看看发生了什么。

如果你还没有见过的发布/订阅样本然而花一分钟穿过或开始使用NServiceBus创建一个新项目.

最主要的理解是这样的:用户让出版商知道他们感兴趣,和出版商商店的地址,这样就知道发送的消息。很简单,一旦你知道了它是如何运作的。

在我们开始之前……

对发布/订阅消息传递的一个常见的假设是,它涉及到物理一对多沟通。唯一的问题是,在物理层面pub / sub并不有趣。在发布时它变成有价值的逻辑事件从一个逻辑区域责任其他逻辑感兴趣。

NServiceBus的基础设施部分处理物流和一对多消息调度pub / sub许多寻找,但这些是相当透明的编程模型。让我们看看逻辑pub / sub和物理分布的叠加,一步一个脚印。

上面的图向我们展示了一个逻辑出版商P1,和两个逻辑订阅者SA和某人有很多物理节点(颜色的蓝色)和一些NServiceBus基础设施(橘色)。现在,我们将假设SA和某人已经订阅,每个指定经销商的离港公共端点。

当我们发布

当一个节点在逻辑出版商P1去发布一个消息,发生了什么:

当请求应用逻辑来发布消息,订阅数据库配置的NServiceBus基础设施联系,找到所有订阅者端点注册为给定的消息类型,和每一个分派一个物理信息。

单向消息用于调度物理消息以来,即使订阅者端点之一是离线或不可用,这并不使出版线程块。发送机器即将离任的消息存储在队列(可配置的时间),而消息传递基础结构的尝试将消息传递到目的地。

什么经销商

所有的经销商在这一点上是该消息转发它接收到另一个节点。

你可以把经销商的像一个负载均衡器它分发消息来许多其他机器。这种物理一对多通信需要扩展运行的机器数量对于一个给定的用户,但实际上并不需要任何pub / sub。每个用户都有自己的独立分销商和他们中的每一个决定,机它传递消息。

看到关于经销商的更多信息.

对任何出版商节点一样

不管哪个节点在出版商出版消息,会发生同样的过程。

这意味着你可以向外扩展发布节点的数量,通过使用数据库来存储订阅,而无需一个分销商。当使用通用NServiceBus主机进程你得到这个默认的生产状况。

下一个步骤

时间: 2024-12-14 01:04:07

发布/订阅是如何工作的的相关文章

Redis 发布订阅

Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息. Redis 客户端可以订阅任意数量的频道. 下图展示了频道 channel1 , 以及订阅这个频道的三个客户端 —— client2 . client5 和 client1 之间的关系: 当有新消息通过 PUBLISH 命令发送给频道 channel1 时, 这个消息就会被发送给订阅它的三个客户端: 实例 以下实例演示了发布订阅是如何工作的.在我们实例中我们创建了订阅频道名为 redi

发布/订阅配置

发布/订阅配置 的部分入口声明消息= "消息"意味着组装"消息.dll包含消息模式".特定类型可以配置使用限定名称: namespace.type, assembly. 声明部分端点= " messagebus "告诉订阅者的总线对象,出版商接受订阅请求队列.队列名称"messagebus"简称"队列命名messagebus在本地机器上".来表示一个队列在远程机器上,使用类似于电子邮件的格式:[email 

ActiveMQ入门系列三:发布/订阅模式

在上一篇<ActiveMQ入门系列二:入门代码实例(点对点模式)>中提到了ActiveMQ中的两种模式:点对点模式(PTP)和发布/订阅模式(Pub & Sub),详细介绍了点对点模式并用代码实例进行说明,今天就介绍下发布/订阅模式. 一.理论基础 发布/订阅模式的工作示意图: 消息生产者将消息(发布)到topic中,可以同时有多个消息消费者(订阅)消费该消息. 和点对点方式不同,发布到topic的消息会被所有订阅者消费. 当生产者发布消息,不管是否有消费者,都不会保存消息. 一定要先

sql server 搭建发布订阅后,改端口不正常工作的问题

sql 的发布订阅,想必大家都了解,但一般都是在默认的1433的情况下搭建的,那么1433换成别的端口,发布还能正常工作吗? 在一次客户的真实场景上我就遇到了. 好了,今天不想写太多,简化下, 测试环境 发布服务器  计算机名 win-01 分发服务器  计算机名 win-01  (与发布用的同一台) 订阅服务器  计算机名 win-02 用到的试验库是  YY 在默认的端口1433  的场景下 ,我们已经搭建起了发布订阅,如图 做了两张表的复制. 我们看下 复制监视器 在win-01 的 表中

【译】RabbitMQ:发布-订阅(Publish/Subscribe)

在前一篇教程中,我们创建了一个工作队列,我们假设在工作队列后的每一个任务都只被调度给一个消费者.在这一部分,我们将做一些完全不一样的事情,调度同一条消息给多个消费者,也就是有名的“发布-订阅”模式.为了阐述这种模式,我们将构建一个简单的日志系统.该系统将由两部分组成:一部分发送日志消息,另一部分接收并且打印日志消息,在这个日志系统中,每一份运行着的接收程序都将会收到消息.这样我们可以运行一个接收者把日志写入到磁盘中,同时可以运行另一个接收者将日志打印到显示器上面.也就是说,发布的日志消息会被广播

sql server之发布订阅(读写分离)

分布式开发之发布与订阅 发布订阅:数据实时备份同步 软件环境:sql server2008 r2 硬件环境:视数据量和对应机器分配的任务而定 机器数量:视分割线标准而定(即数据分别存放的分割线) 作        用 : 数据库服务器出问题时我们也有其正常工作时的备份 一台服务器负载不起时,可以用来做负载均衡 数据库服务器可以无间断,无损失迁移 主服务器被攻击或当机时另一台服务同步机可以应急 意        义:咱们可以用于两台服务器,其中一台机器用作增删改,另外一台机器用作查询,为了防止读写

JavaScript发布/订阅实例

原文链接: Pub/Sub JavaScript Object原文日期: 2014年6月11日翻译日期: 2014年6月13日 翻译人员: 铁锚 高效AJAX网站的三大杀器: 事件代理, 浏览历史管理, 以及高效应用级 发布/订阅通信机制. 本博客的原文站点 同时使用了这三种技术,本文中作者将分享其中最简单的一个: 该网站使用的 一个微型 发布/订阅模块. 如果你不了解 发布/订阅 模式,那么可以将其类比为 你发表了一篇博文,所有人都可以订阅你的博客, 也类似于广播电台的工作方式: 有一个站台进

发布订阅模式的理解

发布---订阅模式它定义了对象间的一种一对多的关系,让多个观察者对象同时监听某一个主题对象,当一个对象发生改变时,所有依赖于它的对象都将得到通知. 发布订阅模式的优点: 支持简单的广播通信,当对象状态发生改变时,会自动通知已经订阅过的对象. 发布者与订阅者耦合性降低,发布者只管发布一条消息出去,它不关心这条消息如何被订阅者使用,同时,订阅者只监听发布者的事件名,只要发布者的事件名不变,它不管发布者如何改变: 对于第一点,我们日常工作中也经常使用到,比如我们的ajax请求,请求有成功(succes

发布订阅

"发布订阅" 三."发布订阅" 上一节的练习中我们创建了一个工作队列.队列中的每条消息都会被发送至一个工作进程.这节,我们将做些完全不同的事情--我们将发送单个消息发送至多个消费者.这种模式就是广为人知的"发布订阅"模式. 为了说明这种模式,我们将构建一个简单的日志系统.包括2个应用程序,一个传送日志消息另一个接收并打印这些消息. 我们的日志系统中每一个运作的接收端程序都会收到这些消息.这种方式下,我们就可以运行一个接收端发送日志消息至硬盘,同时