JMS接口API和技术规范

这篇博文我们主要介绍J2EE中的一个重要规范JMS,现在一些常用的MQ中间件比如RocketMQ等都是JMS规范的应用。我们介绍JMS的基本概念和体系结构,消费模型以及JMS编程接口,主要是为了理解常用的MQ服务中间件提供基础理论。

1.JMS基本概念
      JMS(JAVA Message Service,java消息服务)API是Java平台上有关面向消息中间件(MOM)的技术规范,2001年6月25日sun公司发布第一个版本,后经过多次完善。它是一个接口和语义的集合,这些语义定义了应用程序组件基于JavaEE平台创建、发送、接收和读取消息的标准和规范。它使分布式通信耦合度更低,消息服务更加可靠以及异步性。
2.基础架构体系
JMS提供商:消息系统,需要实现JMS以及其他完整消息产品需要的管理和控制功能
JMS生产者:创建并发送消息的JMS客户(JAVA语言程序)。
JMS消费者:接收消息的JMS客户(JAVA语言程序)。
JMS消息:可以在JMS客户之间交换数据
JMS队列:一个容纳那些被发送的等待阅读的消息的区域。
JMS主题:一种支持发送消息给多个订阅者的机制。
3.消息模型
JMS具有两种通信模式
1、Point-to-Point Messaging Domain点对点或队列模型
2、Publish/Subscribe Messaging Domain发布者/订阅者模型
4.消息格式
JMS定义了五种不同的消息正文格式,以及调用的消息类型,允许你发送并接收以一些不同形式的数据,提供现有消息格式的一些级别的兼容性。
· StreamMessage -- Java原始值的数据流,它连续的填充和读取。
· MapMessage--一套名称-值对,条目可以被枚举器连续获取,也可以按名字随机获取。
· TextMessage--一个字符串对象
· ObjectMessage--一个序列化的 Java对象,如果需要可序列化,那么可以使用JDK中集合类
· BytesMessage--一个未解释字节的数据流,目前大多数MQ服务里面都是通过字符流传递的,因为他是一个未定义格式的消息类型。
5.JMS接口
管理对象ConnectionFactory——客户端使用这个被管理对象来创建一个 Connection。
连接对象 Connection——是Session工厂,底层使用对JMS提供商的连接来产生和消费消息。
管理对象 Destination——封装了消息目的地标识的被管理对象。
会话 Session——一个用于发送和接收消息的单线程上下文,用于生产和消费消息,会话提供了应用服务器使用的三个方法。
消息生产者 MessageProducer——一个由 Session 创建用于往目的地发送消息的对象。
消息消费者 MessageConsumer——一个由 Session 创建用于接收发送到目的地的消息的对象。
消息监听者(Message Listeners)——定义消息到达后的处理方式。
6.JMSException JMS 异常处理
    JMS 定义了 JMSException 作为 JMS 方法抛出的异常的根类。JMSException 是一个受检查
异常,捕捉它就可以处理所有 JMS 相关的异常。J
7.JMS不包含的内容
1.负载均衡和容错(Load Balancing/Fault Tolerance)JMS API不要求应用组件一定要为客户端提供。
2.错误和劝告通知(Error/Advisory  Notification)
3.管理:JMS没有定义管理消息产品的API
4.安全:JMS没有 定义用于控制 消息私密性和完整性的API。
5.通讯协议(Wire Protocal)-JMS没有定义消息的通讯协议
6.消息类型存储池-JMS没有定义消息类型池存储池。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值