RabbitMQ 介绍入门

System.out.println(“嗨,大家好,我是代码不会敲的小符,双非大四,Java实习中…”);
System.out.println(“如果文章中有错误的地方,恳请大家指正!共同进步,共同成长✊”);
System.out.println(“如果文章对您有所帮助,希望您可以三连支持一下博主噢”);
System.out.println("正在完成计划中:接下来的三个月里,对梦想的追逐 ");

文章目录

    • RabbitMQ 整体架构
    • 快速入门 控制台演示
    • 数据隔离
    • AMQP 消息通信协议 和Spring AMQP
    • 快速入门
      • 引入依赖
      • 发送者
      • 消费者
    • 最后

RabbitMQ 整体架构

消息发送者发送消息到交换机,交换机路由转发给队列
消费者消费队列中的消息
虚拟主机:数据隔离
RabbitMQ 介绍入门_第1张图片

快速入门 控制台演示

需求:在RabbitMQ的控制台完成下列操作

  1. 新建队列hello.queue1和hello.queue2
  2. 向默认的amp.fanout交换机发送一条消息
  3. 查看消息是否到达hello.queue1和hello.queue2

数据隔离

需求:在RabbitMO的控制台完成下列操作

  1. 新建一个用户hmall
  2. 为hmall用户创建一个virtual host
  3. 测试不同virtualhost之间的数据隔离现象

AMQP 消息通信协议 和Spring AMQP

Adced Message Queuing Protocol,是用于在应用程序之间传递业务消息的开放标准。该协议与语言和平台无关,更符合微股务中独立性的要求。
Spring AMQP是基于AMQP协议定义的一套API规范,提供了模板来发送和接收消息。包含两部分,其中spring-amgp是基础抽象,spring-rabbit是底层的默认实现。
Spring AMQP
Spring AMQP 中文文档

快速入门

需求如下

  1. 利用控制台创建队列simple.queue
  2. 在 publisher 服务中,利用 SpringAMQP 直接向 simple.queue 发送消息
  3. 在 consumer 服务中,利用 SpringAMQP 编写消费者,监听 simple.queue 队列

RabbitMQ 介绍入门_第2张图片
SpringAMQP 提供了 RabbitTemplate 工具类,类似于 RedisTemplate,帮助我们封装好,直接调用api即可。

引入依赖


<dependency>
  <groupId>org.springframework.bootgroupId>
  <artifactId>spring-boot-starter-amqpartifactId>
  <version>2.1.7.RELEASEversion>
dependency>

发送者

@SpringBootTest
public class SpringAmqpTest {
    @Autowired
    private RabbitTemplate rabbitTemplate;

    @Test
    public void testSendMessage2TestQueue() {
        String queueName = "test.queue";
        String msg = "hello, amqp";
        rabbitTemplate.convertAndSend(queueName, msg);
    }
}

消费者

@Component
@Slf4j
public class RabbitListener {

    @RabbitListener(queues = "test.queue")
    public void listenTestQueueMessage(String msg) {
        log.info("consumer accept message: {}", msg);
        log.info("message success!");
    }
}

最后

慢慢的来,别着急!学会有质量的走过每一步


我是代码不会敲的小符,希望认识更多有经验的大佬,也在努力摸索出自己的道路
欢迎添加小符微信:A13781678921,一起加油

你可能感兴趣的:(MQ笔记,rabbitmq,中间件,java)