Docker运行RabbitMQ并使用SpringAMQP操作

这篇具有很好参考价值的文章主要介绍了Docker运行RabbitMQ并使用SpringAMQP操作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、RabbitMQ运行

拉取docker镜像

docker pull rabbitmq:3-management

基础运行命令

docker run \
	-e RABBITMQ_DEFAULT_USER=rabbitmq \
	-e RABBITMQ_DEFAULT_PASS=rabbitmq \
	--name rabbitmq \
	-p 15672:15672 \
	-p 5672:5672 \
	-d \
	rabbitmq:3-management

15672是网页后台管理系统,5672是给服务用的。

官方入门教程可以看这里RabbitMQ Tutorials — RabbitMQ

二、整合SpringAMQP

1. 引入依赖

		<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-amqp</artifactId>
        </dependency>
spring:
  rabbitmq:
    host: localhost # rabbitMQ的ip地址
    port: 5672 # rabbitMQ服务端口
    username: rabbitmq
    password: rabbitmq

三、测试

这边采用常用的消费者-生产者模型,使用默认的Direct类型exchange。不懂的可以先继续学习rabbitmq再来实践。
Docker运行RabbitMQ并使用SpringAMQP操作,Server架构,# RabbitMQ,docker,rabbitmq,ruby

1. 消费者

在消费者服务随便新建一个listener

@Slf4j
@Component
public class SpringRabbitListener {

    @RabbitListener(bindings = @QueueBinding(
            value = @Queue(name = "simple.queue"),
            exchange = @Exchange(name = "simple.exchange"),
            key = "simple"
    ))
    public void listenSimpleQueue(String msg) {
        log.info("消费者接收到simple.queue的消息:【" + msg + "】");
    }
}

2. 生产者

在生产者服务的Test模块新建一个测试

@Slf4j
@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringAmqpTest {
    @Autowired
    private RabbitTemplate rabbitTemplate;

    @Test
    public void testSendMessage2SimpleQueue() throws InterruptedException {
        String message = "hello, spring amqp!";
        rabbitTemplate.convertAndSend("simple.exchange", "simple", message);
    }
}

3. 运行

先启动消费者。
登录http://localhost:15672/,可以看到simple.exchangesimple.queue已被创建。
Docker运行RabbitMQ并使用SpringAMQP操作,Server架构,# RabbitMQ,docker,rabbitmq,ruby
Docker运行RabbitMQ并使用SpringAMQP操作,Server架构,# RabbitMQ,docker,rabbitmq,ruby
然后启动测试testSendMessage2SimpleQueue,出现类似以下日志,消息发送成功。

12:17:43:771  INFO 21064 --- [           main] o.s.a.r.c.CachingConnectionFactory       : Attempting to connect to: [localhost:5672]
12:17:43:808  INFO 21064 --- [           main] o.s.a.r.c.CachingConnectionFactory       : Created new connection: rabbitConnectionFactory#50f40653:0/SimpleConnection@536d97f8 [delegate=amqp://rabbitmq@127.0.0.1:5672/, localPort= 59641]

消费者出现类似以下日志,收到消息。文章来源地址https://www.toymoban.com/news/detail-798661.html

12:17:31:074  INFO 8924 --- [           main] o.s.a.r.c.CachingConnectionFactory       : Created new connection: rabbitConnectionFactory#2a27cb34:0/SimpleConnection@671facee [delegate=amqp://rabbitmq@127.0.0.1:5672/, localPort= 59634]
12:17:31:141  INFO 8924 --- [           main] cn.itcast.mq.ConsumerApplication         : Started ConsumerApplication in 1.011 seconds (JVM running for 1.462)
12:17:43:848  INFO 8924 --- [ntContainer#0-1] c.i.mq.listener.SpringRabbitListener     : 消费者接收到simple.queue的消息:【hello, spring amqp!】

到了这里,关于Docker运行RabbitMQ并使用SpringAMQP操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • RabbitMQ与SpringAMQP

    MQ,中文是消息队列(MessageQueue),字面来看就是存放消息的队列。也就是事件驱动架构中的Broker。 (经纪人!) 微服务间通讯有同步和异步两种方式 同步(通信):A——C 异步(代理):A——B——C 知识点 同步调用 同步调用的优点: 时效性较强,可以立即得到结果 同步调用

    2024年01月21日
    浏览(35)
  • RabbitMQ原理(二):SpringAMQP编程

    2023年10月30日
    浏览(34)
  • 【微服务】RabbitMQ&SpringAMQP消息队列

    🚩本文已收录至专栏:微服务探索之旅 👍希望您能有所收获 微服务间通讯有同步和异步两种方式: 同步通讯 :就像打电话,可以 立即得到响应 ,但是你却 不能跟多个人 同时通话。 异步通讯 :就像发消息,可以 同时与多个人 发送并接收消息,但是往往 响应会有延迟

    2024年02月16日
    浏览(52)
  • SpringCloud基础4——RabbitMQ和SpringAMQP

     导航: 【黑马Java笔记+踩坑汇总】JavaSE+JavaWeb+SSM+SpringBoot+瑞吉外卖+SpringCloud/SpringCloudAlibaba+黑马旅游+谷粒商城 目录 1.初识MQ 1.1.同步和异步通讯 1.1.1.同步通讯 1.1.2.异步通讯 1.2.为什么要用消息中间件? 1.2.1.异步化提升性能 1.2.2.降低耦合度 1.2.3.流量削峰 1.3.主流MQ技术对比

    2023年04月12日
    浏览(30)
  • rabbitmq基础教程(ui,java,springamqp)

    概述 :安装看我上篇文章Docker安装rabbitmq-CSDN博客 模拟发送数据 发送消息,发现一下信息: 所以得出理论,消息发送是先到交换机,然后由交换机路由到消息队列 交换机是负责路由和转发消息的,并没有存储的功能。 同理绑定queue2 这时,再在交换机中发消息 查看结果:

    2024年01月18日
    浏览(51)
  • RabbitMQ的SpringAMQP的各种模式的案例

    目录 Basic Queue 简单队列模型  任务模型(Work queues,也被称为(Task queues))  发布/订阅的广播(Fanout)模式  发布/订阅的定向(Direct)模式 发布订阅的通配(Topic)模式 导入依赖 配置yml 消息发送  消息接收  消息发送  消息接收  交换机 消息发送  消息接收 交换机  消

    2024年02月04日
    浏览(28)
  • SpringCloud实用篇4——MQ RabbitMQ SpringAMQP

    微服务间通讯有同步和异步两种方式: 同步通讯:就像打电话,需要实时响应。 异步通讯:就像发邮件,不需要马上回复。 两种方式各有优劣,打电话可以立即得到响应,但是你却不能跟多个人同时通话。发送邮件可以同时与多个人收发邮件,但是往往响应会有延迟。 1.

    2024年02月13日
    浏览(35)
  • SpringBoot实现RabbitMQ的简单队列(SpringAMQP 实现简单队列)

    SpringAMQP 是基于 RabbitMQ 封装的一套模板,并且还利用 SpringBoot 对其实现了自动装配,使用起来非常方便。 SpringAmqp 的官方地址:https://spring.io/projects/spring-amqp 说明 : 1.Spring AMQP 是对 Spring 基于 AMQP 的消息收发解决方案,它是一个抽象层,不依赖于特定的 AMQP Broker 实现和客户端

    2024年04月13日
    浏览(33)
  • RabbitMQ - 基于 SpringAMQP 带你实现五种消息队列模型

    目录 一、SpringAMQP 1.1、概念 1.2、前置知识(实现案例前必看!) 1.2.1、创建队列 1.2.2、创建交换机 1.2.3、创建绑定 1.2.4、@RabbitListener 注解 a)情况一:queue 存在 b)情况二:queue 不存在  1.2.5、为什么更建议使用 @Bean 注解创建,而不是 @RabbitListener 注解创建? 1.3、案例实现

    2024年04月12日
    浏览(41)
  • 【Java】微服务——RabbitMQ消息队列(SpringAMQP实现五种消息模型)

    微服务间通讯有同步和异步两种方式: 同步通讯:就像打电话,需要实时响应。 异步通讯:就像发邮件,不需要马上回复。 两种方式各有优劣,打电话可以立即得到响应,但是你却不能跟多个人同时通话。发送邮件可以同时与多个人收发邮件,但是往往响应会有延迟。 1.

    2024年02月08日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包