JMS接口API和技术规范

时间:2025-03-22 08:38:21
基本概念
      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服务里面都是通过字符流传递的,因为他是一个未定义格式的消息类型。
接口
管理对象ConnectionFactory——客户端使用这个被管理对象来创建一个 Connection。
连接对象 Connection——是Session工厂,底层使用对JMS提供商的连接来产生和消费消息。
管理对象 Destination——封装了消息目的地标识的被管理对象。
会话 Session——一个用于发送和接收消息的单线程上下文,用于生产和消费消息,会话提供了应用服务器使用的三个方法。
消息生产者 MessageProducer——一个由 Session 创建用于往目的地发送消息的对象。
消息消费者 MessageConsumer——一个由 Session 创建用于接收发送到目的地的消息的对象。
消息监听者(Message Listeners)——定义消息到达后的处理方式。
JMS 异常处理
    JMS 定义了 JMSException 作为 JMS 方法抛出的异常的根类。JMSException 是一个受检查
异常,捕捉它就可以处理所有 JMS 相关的异常。J
不包含的内容
1.负载均衡和容错(Load Balancing/Fault Tolerance)JMS API不要求应用组件一定要为客户端提供。
2.错误和劝告通知(Error/Advisory  Notification)
3.管理:JMS没有定义管理消息产品的API
4.安全:JMS没有 定义用于控制 消息私密性和完整性的API。
5.通讯协议(Wire Protocal)-JMS没有定义消息的通讯协议
6.消息类型存储池-JMS没有定义消息类型池存储池。