美文网首页
消息中间件介绍 RabbitMq Docker上安装

消息中间件介绍 RabbitMq Docker上安装

作者: 神豪VS勇士赢 | 来源:发表于2019-03-12 12:20 被阅读0次

消息队列中间件简介

image.png

什么是rabbitMq

image.png
image.png
image.png

架构图

image.png

主要概念

image.png
image.png

Docker下安装

下载镜像

image.png

创建容器

image.png
image.png

打开网址: 进入 可以 看到下面的图片

image.png

rabbitMq 的模式介绍:

Direcrt 模式

我们需要讲消息发送给唯一一个节点时候使用这种模式 这是最简单的一个模式:


image.png

但是这种模式需要注意下面几点:

image.png

我们来创建 一个队列: 创建 test 队列


image.png

其中的参数是:


image.png
接下来我们先写一个简单的Direct模式:
1.首先创建一个模块 rabbitmq_demo
2.pom引入依赖

<dependency>
<groupId>com.tensquare</groupId>
<artifactId>tensquare_common</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
3.配置application.yml 加入配置文件
spring:
rabbitmq:
host: 192.168.1.123
server:
port: 9008
4.接下来创建 启动类


image.png
5.接下来创建 消费者
image.png
6.最后我们写一个测试类
@RunWith(SpringRunner.class)
@SpringBootTest(classes = RabbitMqDemoApplication.class)
public class MqTest {
@Autowired
private RabbitTemplate rabbitTemplate;
@Test

public void testSend() {
rabbitTemplate.convertAndSend("test","我是测试信息");
}
}
7.测试 先启动程序 后启动测试类
观察打印输出


image.png

分裂模式 fanout

当我们需要讲消息一次发送给多个队列的时候需要使用到这个模式


image.png

但是需要注意下面的几点:


image.png

接下来我们需要 创建交换器 名字是testexchange

image.png

之后你会发现 在交换器列表出现了此交换器


image.png

接下来我们要创建两个队列


image.png
进入 交换机的配置页面
image.png

将我们想要配置的那两个队列配置到交换器上面


image.png

接下来我们写代码 :

第一个队列 消费者
@Component
@RabbitListener(queues = "testexchangequeue")
@Slf4j
public class Customer2 {
@RabbitHandler
public void showMessage(String message) {
log.info("testexchangequeue队列收到的消息"+message);
}
}
第二个队列 消费者
@Slf4j
@Component
@RabbitListener(queues ="xxx" )
public class Customer3 {
@RabbitHandler
public void showMessage(String msg) {
log.info("xxx队列收到的消息" + msg);
}
}
测试类发送消息:
@Test
public void testSendFanout() {
System.out.println("fanout已经分发");
rabbitTemplate.convertAndSend("testexchange",null,"fanout模式发送的消息");
}
测试结果如下: 两个队列都收到了消息。


image.png

主题模式 topic

image.png

主题模式很复杂 有很多注意点 需要我们注意:

image.png
image.png

我们先来创建一个交换器 类型选择 tocpic

image.png

进入设置 进行配置 记得要配置 规则 routingKey


image.png

如上图 一共绑定了三个队列 并定了三个规则

编写测试类 也就是发送消息的 测试类 :
@Test
public void testSendTop1() {
rabbitTemplate.convertAndSend("topictest","goods.aaa","test 。。 goods.# 。。 topic");
}
@Test
public void testSendTop2() {
rabbitTemplate.convertAndSend("topictest","xx.log"," testexchangequeue 。。 #.log .. topic ");
}
@Test
public void testSendTop3() {
rabbitTemplate.convertAndSend("topictest", "goods.log", "xxx 。。goods.log 。。 topic ");
}
分别测试 结果如下所示:
testSendTop1 :


image.png

testSendTop2:


image.png

testSendTop3 结果 三个队列都收到消息了


image.png

相关文章

网友评论

      本文标题:消息中间件介绍 RabbitMq Docker上安装

      本文链接:https://www.haomeiwen.com/subject/ofvmpqtx.html