日常学习--springcloud--SpringAMQP(一)(更新中。。。)

Advanced Message queuing Protocol,是用于在应用程序或之间传递业务消息的开放标准。该协

议与语言和平台无关,更符合微服务中独立性的要求。 

监听器容器,监听消息。

便捷的消息接收,便捷的消息发送。以及自动化的队列声明

  1. BasicQueue简单队列模型

简化消息发送和接收的api

(一)发消息

具备Spring的运行环境了

测试类的注解
@RunWith(SpringRunner.class)
@SpringBootTest

autowired注入 rabbittample工具

类为了让Spring知道要注册成一个Bean

(二)接收消息

@Component

@RabbitListener(声明队列名称)

写完后运行整个项目 

springAMQP如何接收消息?

  1. 引入amqp的starter依赖
  2. 配置RabbitMQ地址
  3. 定义类,添加@Component注解
  4. 类中声明方法,添加@RabbitListener注解,方法参数就时消息

注意:消息一旦消费就会从队列删除,RabbitMQ没有消息回溯功能 

  1. Work Queue 工作队列模型

提高消息处理速度,避免队列消息堆积。

fori(for循环)

 阅后即焚,

模拟WorkQueue,实现一个队列绑定多个消费者
基本思路如下:
1.在publisher服务中定义测试方法,每秒产生50条消息,发送到simple.queue

2.在consumer服务中定义两个消息监听者,都监听simple.queue队列

3.消费者1每秒处理50条消息,消费者2每秒处理10条消息

        休眠:Thread.sleep(20) 

当前时间:LocalTime.now()

处理是奇数偶数,消息预取,早就取出来了。

消息预取机制

work模型的使用

  1. 多个消费者绑定到一个队列,同一条消息只会被一个消费者处理。
  2. 通过设置prefetch来控制消费者预取的消息数量 。
  3. 提高速度避免堆积。
  1. 发布、订阅模型-Fanout

 

 

 @Configuration,配置类,可以声明多个bean

交换机的作用是什么?

  1. 接收publisher发送的消息
  2. 将消息按照规则路由到与之绑定的队列
  3. 不能缓存消息,路由失败,消息丢失
  4. FanoutExchange的会将消息路由到每个绑定的队列

声明队列(que)、交换机(exchange)、绑定关系(binding)的Bean是什么? 

  1. 发布、订阅模型-Direct

  2. 发布、订阅模型-Topic

  3. 消息转换器

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值