JMS和AMQP

断鸿 2020年02月10日 119次浏览

JMS: Java消息服务(Java Message Service),是一个Java平台中面向消息中间件的API,用于在两个应用程序之间或分布式系统中发送/接收消息,进行异步通信。

JMS相关概念

  • 提供者:实现JMS规范的消息中间件服务器
  • 客户端:发送或接收消息的应用程序
  • 生产者/发布者:创建并发送消息的客户端
  • 消费者/订阅者:接收并处理消息的客户端
  • 消息:应用程序之间传递的数据内容
  • 消息模式:在客户端之间传递消息的方式,JMS中定义了主题和队列两种模式

JMS消息模式

类型TopicQueue
概要Publish Subscribe messaging 发布订阅消息Point-to-Point 点对点
状态topic数据默认不落地,是无状态的数据默认会在mq服务器上以文件形式保存,也可以配置成DB存储。
完整性并不保证每条数据,Subscriber都能接受到。Queue保证每条数据都能被receiver接收。
是否丢失只有正在监听该topic地址的sub能够收到消息;没有sub监听,该topic就丢失了。Sender发送消息到目标Queue,receiver可以异步接收这个Queue上的消息。Queue上的消息如果暂时没有receiver来取,也不会丢失。
接收策略监听同一个topic地址的多个sub都能收到publisher发送的消息。Sub接收完通知mq服务器一个sender发送的消息,只能有一个receiver接收。receiver接收完后,通知mq服务器已接收,mq服务器对queue里的消息采取删除或其他操作。