摘要:交换器和队列是绑定的,用于消息队列和交换器之间的关联。会将消息发送到匹配的队列中去使用号和号。参考资料消息队列之什么是消息队列浅谈消息队列及常见的消息中间件
一、定义
比较官方的说法是是指利用 高效可靠 的 消息传递机制 进行与平台无关的 数据交流,并基于 数据通信 来进行分布式系统的集成。
我们可以理解为将要传输的数据放在一个队列中。
1、解耦
(1)发送者和接收者不必了解对方,只需要确认消息即可
比如在交易系统中,支付系统把支付结果放到消息中间件中,然后通知订单系统修改支付状态,这一过程中支付系统和订单系统是互不关心的,但是可以保证数据的最终一致。
2、异步处理
![图片上传中...]
从图中我们可以看见,A系统将消息发送到消息队列后可以立即返回,然后去处理其他事情,而不用管BCD,让他们自己去拿,这也就实现了异步处理。
3、流量削峰
这一点也很好理解,比如现在是用户使用的高峰期,一秒钟有3000条请求,但是只有两台服务器,每台服务器最多只能处理1000条,那就会造成系统的崩溃,如果说再增加一个服务器,还不够怎么没办,而且这样会花费不少成本,因此如果用一个消息队列,把所有请求都先放到里面,再让服务器自己去拿,就不会造成拥堵了,这就是所谓“削峰”。
![图片上传中...]
4、广播
使用消息队列也可以很好的实现广播,如果想要发送消息给好几个用户,那么如果每个都要发一遍非常浪费效率,但是将消息放在消息队列中,让用户自己去取,就非常的高效。
1、保证高可用性
在使用消息队列的时候需要注意高可用性,最好使用分布式或者集群的消息队列,以为只把消息队列放在一台服务器上,那如果服务器出了问题,整个系统都崩了。
2、防止数据丢失
其实使用消息队列,最需要注意的就是保证数据不丢失,所以可能需要将数据进行备份等。
![图片上传中...]
五、常用消息队列技术——rabbitmqrabbitmq与基本的消息队列模型不完全一样,而是在它的基础上增加了一个“exchange”。
![图片上传中...]
(1)在图中我们可以看到,exchange(交换器)接受生产者的消息并将消息路由给队列。
(2)交换器和队列是Binding 绑定的,用于消息队列和交换器之间的关联。一个绑定就是基于路由键将交换器和消息队列连接起来的路由规则,所以可以将交换器理解成一个由绑定构成的路由表。
(3)在每个消息的消息头中都包含了路由键,交换器就根据路由键转发消息到队列中。
(4)exchange一般有以下4种类型:
① direct:如果路由键和绑定键完全一致,就转发到相应的队列。
② fanout:会将消息转发到所有的队列中去。
③ topic:会将消息发送到匹配的队列中去(使用#号和*号)。
④ header:header不会匹配路由键,而是匹配请求头,这种类型已经很少使用了。
参考资料:https://juejin.im/post/5a67f7... 消息队列之RabbitMQ
https://juejin.im/post/5cb025... 什么是消息队列
https://juejin.im/post/5b41fe... 浅谈消息队列及常见的消息中间件
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/75034.html
摘要:性能调优笔记避免雷区要避免流控机制触发服务端默认配置是当内存使用达到,磁盘空闲空间小于,即启动内存报警,磁盘报警报警后服务端触发流控机制。最佳线程生产者使用多线程发送数据到三到五个线程性能发送最佳,超过它也不能提高生产的发送速率。 RabbitMq 性能调优笔记 [TOC] 避免雷区 要避免流控机制触发 服务端默认配置是当内存使用达到40%,磁盘空闲空间小于50M,即启动内存报警,磁...
摘要:套接字是全双工的。做两件事将未链接的套接字转换为被动套接字,指示内核接受对此套接字的连接请求制定了内核为此套接口排队的最大连接个数对于指定的套接字,内核要维护未连接队列和已连接队列两个队列,完成三路握手的连接将从未连接队列移至已连接队列。 基础 一个套接字由相关五元组构成,协议、本地地址、本地端口、远程地址、远程端口。套接字是全双工的。 listen函数 只用于tcp,listen的原...
摘要:消息持久化控制的属性就是消息的持久化。当生产者发送的消息路由键为时,两个消费者都会收到消息并处理当生产者发送的消息路由键为时,只有消费者可以接收到消息。八的消息确认机制在中,可以通过持久化数据解决服务器异常的数据丢失问题。 一、内容大纲&使用场景 1. 消息队列解决了什么问题? 异步处理 应用解耦 流量削锋 日志处理 ...... 2. rabbitMQ安装与配置 3. Java操...
阅读 859·2021-11-25 09:43
阅读 3691·2021-11-19 09:40
阅读 896·2021-09-29 09:34
阅读 1810·2021-09-26 10:21
阅读 885·2021-09-22 15:24
阅读 4207·2021-09-22 15:08
阅读 3283·2021-09-07 09:58
阅读 2708·2019-08-30 15:55