版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yan12422/article/details/84768491
大家需要十次方项目的视频可以关注我的微信公众号,
消息中间件RabbitMQ
win环境下的下载与安装
- 下载并安装Eralng 因为RabbitMQ是由Eralng语言开发的,所有要有这个环境
http://erlang.org/download/
- 下载并安装RabbitMQ
http://www.rabbitmq.com/install-windows.html
安装的过程中文件夹不能有中文和空格,安装后window服务中就存在了RabbitMQ了,并且是启动状态
- 安装管理界面(插件) 进入RabbitMQ安装目录的sbin目录,输入命令
rabbitmq-plugins enable rabbitmq_management
- 打开浏览器;
http://127.0.0.1:15672
docker环境下的下载与安装
- 下载镜像
docker search rabbitmq.
docker pull rabbitmq:management
- 创建容器
docker run -di --name=tensquare_rabbitmq -p 5671:5671 -p 5672:5672 -p 4369:4369 -p 15671:15671 -p 15672:15672 -p 25672:25672 rabbitmq:management
- 访问
htp://你的ip:15672/#/
直接模式(Direct)
就是直接走默认的交换器,意思就是没有交换器,是一个空字符串的交换器
创建一个队列
name : itcast
Duribility : 是否持久化
Auto delete : 是否自动删除
- 通过代码测试,创建一个maven模块,导入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
配置相应的配置文件和启动类
- 编写测试类(生产者)
@RunWith(SpringRunner.class)
@SpringBootTest(classes = RabbitApplication.class)
public class ProductTest {
@Autowired
private RabbitTemplate rabbitTemplate;
@Test
public void sendMsg(){
rabbitTemplate.convertAndSend("itcast","直接模式测试");
}
}
- 消费者
@Component
@RabbitListener(queues = "itcast")
public class Customer1 {
@RabbitHandler
public void getMsg(String msg){
System.out.println("直接模式消费" + msg);
}
}
分裂模式(Fanout)
当我们需要把一个消息发到多个队列时,需要使用这种模式,这个用的不是很多
- 首先先创建一个队列,类型是fanout,名字是chuanzhi
- 绑定之前定义好的队列,再添加几个队列,方便测试
- 测试代码
@Test
public void senFanOutdMsg(){
rabbitTemplate.convertAndSend("chuanzhi","","分裂模式测试");
}
主题模式模式(topic)
主题模式和分裂模式的区别就是多了routing key(匹配规则)
- 测试代码
@Test
public void senTopicdMsg(){
rabbitTemplate.convertAndSend("topictest","good.abc","主题模式测试");
}
大家需要十次方项目的视频可以关注我的微信公众号,
大家有需要项目视频的可以加我微信yan1242269186
扫描二维码关注公众号,回复:
4696275 查看本文章