Publish/Subscribe

Publish/Subscribe

我们将会投递一个消息给多个消费者,这种模式被称为“publish/subscribe”

通俗的讲,前面的是点对点队列模型,现在讲的是发布订阅模型。

Exchanges

producer:一个发送消息的用户应用程序

queue:一个存储消息的缓冲区

consumer:一个接收消息的用户应用程序

在RabbitMQ的消息模型中,一个核心的概念是,生产者从来都不是将消息直接发到队列中的。事实上,生产者根本就不知道消息会被投递到哪个队列。代替的,生产者只能讲消息发送到一个exchange。一个exchange做的事情非常简单,一方面它从生产者那里接收消息,另一方面它将消息推送给队列。exchange必须精确地指定它接收到的消息是做什么的。到底是将这条消息投递到某一个特别的队列呢?还是投递到多个队列?还是应该丢弃。这些规则是通过exchange的类型定义的。

exchange的类型有四种:direct, topic, headers, fanout

fanout这种类型的exchange最简单,将接收到的所有消息都广播给它所知道的队列。

Temporary queues

给队列一个名字很重要,尤其是当你想要在生产者和消费者之间共享一个队列的时候。

在Java客户端中,支持queueDeclare()不带任何参数,这样讲创建一个非持久化的、排它的、自动删除的、名称随机的字符串。

 


Routing

Bindings

binging是一个exchange和一个queue之间的关系。可以简单的读作:queue对来自这个exchange的消息感兴趣。

Direct exchange

按照binding key来路由

 

小结:

1、临时队列和永久队列

2、exchange类型有四种,其中fanout是将它收到的所有消息广播给它知道的所有队列;direct是根据routeKey来投递

3、exchange和queue之间的关系叫binding

 

参考  http://www.rabbitmq.com/tutorials/tutorial-four-java.html

转载于:https://www.cnblogs.com/cjsblog/p/8330382.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/390316.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[转]在ROS下使用zeroconf配置多机通信

原文地址:http://www.corvin.cn/635.html,转载主要方便随时查阅,如有版权要求,请及时联系。 0x00 为何需要配置ROS多机通信 众所周知ROS是分布式系统,因此可以将机器人需要处理的复杂、计算量大的任务分解在多台机器上…

python中斐波那契数列_斐波那契数列–在Python,JavaScript,C ++,Java和Swift中进行了解释...

python中斐波那契数列by Pau Pavn通过保罗帕文(PauPavn) The Fibonacci sequence is, by definition, the integer sequence in which every number after the first two is the sum of the two preceding numbers. To simplify:根据定义,斐波那契数列是整数序列&a…

1583. 统计不开心的朋友

1583. 统计不开心的朋友 给你一份 n 位朋友的亲近程度列表,其中 n 总是 偶数 。 对每位朋友 i,preferences[i] 包含一份 按亲近程度从高到低排列 的朋友列表。换句话说,排在列表前面的朋友与 i 的亲近程度比排在列表后面的朋友更高。每个列…

uva 247(floyd传递闭包)

为什么&#xff0c;逗号后面&#xff0c;还有空格........ #include <iostream> #include <cstring> #include <algorithm> #include <cstdio> #include <vector> #include <map> using namespace std; const int maxn50; int d[maxn][max…

VS Code 的常用快捷键和插件

注:文章摘自 风行天下一万号 - 博客园 vs code 的常用快捷键 1、注释&#xff1a; 单行注释&#xff1a;[ctrlk,ctrlc] 或 ctrl/取消单行注释&#xff1a;[ctrlk,ctrlu] (按下ctrl不放&#xff0c;再按k u)多行注释&#xff1a;[altshiftA]多行注释&#xff1a;/**2、移动行&a…

python包numpy_NumPy Python科学计算软件包的终极指南

python包numpyNumPy (pronounced "numb pie") is one of the most important packages to grasp when you’re starting to learn Python.NumPy(读作“麻木派”)是您开始学习Python时要掌握的最重要的软件包之一。 The package is known for a very useful data str…

NGINX原理 之 SLAB分配机制(转)

1 引言 众所周知&#xff0c;操作系统使用伙伴系统管理内存&#xff0c;不仅会造成大量的内存碎片&#xff0c;同时处理效率也较低下。SLAB是一种内存管理机制&#xff0c;其拥有较高的处理效率&#xff0c;同时也有效的避免内存碎片的产生&#xff0c;其核心思想是预分配。其按…

apk之间数据共享的方式

1、四大组件之ContentProvider大法2、shareUserId3、apk均去远端获取配置文件&#xff08;或接口&#xff09;4、AIDL&#xff08;bindService&#xff09;5、SharePreference设置为MODE_WORLD_READABLE|MODE_WORLD_WRITEABLE模式&#xff0c;由于存在安全问题&#xff0c;已被…

蓝桥杯java 基础练习 十六进制转十进制

问题描述从键盘输入一个不超过8位的正的十六进制数字符串&#xff0c;将它转换为正的十进制数后输出。注&#xff1a;十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。样例输入FFFF样例输出65535import java.math.BigInteger; import java.util.Scanner;public …

dynamic web module消失不见

2019独角兽企业重金招聘Python工程师标准>>> 方法1&#xff1a;在project Facets选项中勾选Dynamic Web Module即可 方法2&#xff1a; 我用eclipse对项目进行修改名称&#xff0c;修改成功后。项目就没有Deployment Descriptor&#xff08;如下图红色框中&#xff…

576. 出界的路径数

576. 出界的路径数 给你一个大小为 m x n 的网格和一个球。球的起始坐标为 [startRow, startColumn] 。你可以将球移到在四个方向上相邻的单元格内&#xff08;可以穿过网格边界到达网格之外&#xff09;。你 最多 可以移动 maxMove 次球。 给你五个整数 m、n、maxMove、star…

telnet命令发送邮件

下面的例子是用qq的smtp服务器。 set localecho 本地回显启用 telnet smtp.qq.com 25 220 smtp.qq.com Esmtp QQ Mail Server helo sis 250 smtp.qq.com//服务器返回250 smtp.qq.com STARTTLS 220 Ready to start TLS//服务器返回 220 准备开启TLS通讯 auth login 334 VXNlcm5h…

myelcipse和maven搭建项目

偷懒一下&#xff0c;完了补充 转载&#xff1a;https://www.cnblogs.com/jr1260/p/6438811.html https://www.cnblogs.com/yangmingyu/p/6908519.html https://www.cnblogs.com/henuyuxiang/p/6288476.html 转载于:https://www.cnblogs.com/0914lx/p/8342343.html

551. 学生出勤记录

551. 学生出勤记录 I 给你一个字符串 s 表示一个学生的出勤记录&#xff0c;其中的每个字符用来标记当天的出勤情况&#xff08;缺勤、迟到、到场&#xff09;。记录中只含下面三种字符&#xff1a; ‘A’&#xff1a;Absent&#xff0c;缺勤 ‘L’&#xff1a;Late&#xff…

JavaScript实现职责链模式

什么是职责链模式 职责链模式的定义是&#xff1a;使多个对象都有机会处理请求&#xff0c;从而避免请求的发送者和接收者之间的耦合关系&#xff0c;将这些对象连成一条链&#xff0c;并沿着这条链传递该请求&#xff0c;直到有一个对象处理它为止。举个例子&#xff1a;当你从…

Metrics介绍和Spring的集成

参考&#xff1a; http://colobu.com/2014/08/08/Metrics-and-Spring-Integration/ https://www.cnblogs.com/yangecnu/p/Using-Metrics-to-Profiling-WebService-Performance.html

配置 aws cli_AWS CLI教程–如何安装,配置和使用AWS CLI了解您的资源环境

配置 aws cliHow to get exactly the account and environment information you need to manage your AWS account using just the AWS CLI如何仅使用AWS CLI准确获取管理AWS账户所需的账户和环境信息 Installing the AWS CLI is actually quite simple. The best way to get …

grep递归查找头文件_Grep命令教程–如何使用递归查找在Linux和Unix中搜索文件

grep递归查找头文件grep stands for Globally Search For Regular Expression and Print out. It is a command line tool used in UNIX and Linux systems to search a specified pattern in a file or group of files. grep代表全局搜索正则表达式并打印出来 。 它是UNIX和Li…

C++ 前置声明

&#xff08;一&#xff09;class的前置声明 class的前置声明有两种。 pre.hclass PreA {}; main.hclass PreA; class Main {};//或者 class Main {class PreA* A; }; (二) struct前置声明 struct的前置声明只能用第一种。 &#xff08;三&#xff09; 有typedef的前置声明 Pr…

2.18 特殊权限set_uid 2.19 特殊权限set_gid 2.20 特殊权限stick_bit 2.21 软链接文件 2.22 硬连接文件...

2019独角兽企业重金招聘Python工程师标准>>> 特殊权限set_uid set_uid:该权限针对二进制可执行文件&#xff0c;使文件在执行阶段具有文件所有者的权限&#xff1b; 通俗一点讲就是&#xff0c;普通用户想要访问一个没有其他用户可执行权限的目录时&#xff0c;暂时…