赞
踩
RabbitMQ是基于AMQP(Advanced Message Queuing Protocol)协议标准开发规范的一种消息投递服务,主要应用场景 异步处理、应用解耦、流量削峰。
Direct Exchange
处理路由键。需要将一个队列绑定到交换器上,要求该消息与一个特定的路由键完全匹配。这是一个完整的匹配。如果一个队列绑定到该交换器上要求路由键 “abc”,则只有被标记为“abc”的消息才被转发,不会转发abc.def,也不会转发dog.ghi,只会转发abc。
【包含一个空白字符串名称的默认交换器。当声明一个队列时,它会自动绑定到默认交换器,并以队列名称作为路由键。】
Fanout Exchange
不处理路由键。你只需要简单的将队列绑定到交换器上。一个发送到交换器的消息都会被转发到与该交换器绑定的所有队列上。很像子网广播,每台子网内的主机都获得了一份复制的消息。Fanout交换器转发消息是最快的。
【这种类型的交换器,会将消息广播到绑定的队列上。消息通信模式很简单:当你发送一条消息到fanout交换器时,它会把消息投递给所有附加在此交换器上的队列,允许你对单挑信息做不同反应的方式。】
Topic Exchange
将路由键和某模式进行匹配。此时队列需要绑定要一个模式上。符号“#”匹配一个或多个词,符号‘*’匹配不多不少一个词。因此“abc.#”能够匹配到“abc.def.ghi”,但是“abc.*” 只会匹配到“abc.def”。
【这类交换器允许你实现有趣的消息通信场景,它使得来自不同源头的消息能够到达同一队列。】
官网地址:https://www.rabbitmq.com/news.html
可以看到支持RabbitMQ的Erlang版本,安装版本支持的环境
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
SpringBoot 可读取application中的配置数据,也可以自定义RabbitMQ连接连接工厂,重写RabbitTemplate的bean对象,如果业务复杂可以建多个链接工厂,细节化配置,这里使用配置文件设置参数。
spring: rabbitmq: host: 127.0.0.1 port: 5672 username: guest password: guest virtual-host: / # 虚拟机地址 默认/ publisher-returns: true publisher-confirm-type: simple # 发布确认类型 listener: simple: retry: # 重试 enabled: true # 是否开启重试 multiplier: 1 # 每次重试间隔时间比例 max-attempts: 3 # 最大重试次数 initial-interval: 3000ms # 初始间隔时间 max-interval: 5000ms # 最大间隔时间
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。