SpringBoot—消息Message相关学习

消息
MQ(MessageQueue)消息队列/消息中间件,“先进先出”

企业级三种 异步消息传递技术规范:JMS、AMQP、MQTT

JMS(Java Message Service):等同jdbc,提供与消息服务相关的API接口,
JMS消息模型:
1.peer-2-peer:点对点模型,1个生产者对应1个消费者
2.publish-subscribe: 发布订阅模型,类似Redis,多个生产者对应多个消费者
JMS消息种类:Text,Map,Bytes,Stream,Stream,Object,Message(只有消息头和属性)
JMS实现产品:ActiveMQ、Redis、HornetMQ、RabbitMQ、RocketMQ(没有完全遵守JMS规范)

AMQP(advanced message queuing protocol):高级消息队列协议,规范了网络交换的数据格式,兼容JMS
优点:跨平台、服务器供应商,生产者,消费者无语言隔阂
AMQP消息模型:direct exchange、fanout exchange、topiic exchange、headers exchange、system exchange.
统一消息种类:byte[]
AMQP实现产品:RabbitMQ、StormMQ、RocketMQ

MQTT(Message Queueing Telemetry Transport):消息队列遥测传输,专为 小设备设计,应用于物联网

Kafka:,一种高吞吐量的分布式发布订阅消息系统,提供实时消息功能。


ActiveMQ
下载地址:https://activemq.apache.org/components/classic/download/
启动:activemq.bat
访问服务器:http://127.0.0.1:8161
服务端口:61616,管理后台端口:8161
用户名&密码:admin

  1. 依赖:spring-boot-starter-activemq
  2. 导入api:(自定义类实现MessageService) @Autowired private JmsMessagingTemplate messagingTemplate;

放入消息:(需要指定放入的位置)
方式1:convertAndSend(String destinationName, Object payload) //destinationName:规格命名:所属业务.队列名称.
方式2:
配置文件

server:
  port: 80

spring:
  activemq:
    #代理地址
    broker-url: tcp://localhost:61616
  jms:
    #打开发布订阅模型
    pub-sub-domain: true
    template:
      default-destination: itheima

取出消息:

messagingTemplate.receiveAndConvert("queue.id",String.class);

自动监听取出消息

public class MessageListener {
   
    @JmsListener(destination = "order.queue.id")
    @SendTo("newqueue.id")  //将返回结果发送到指定队列
    public String receive(String<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值