(二) ActiveMQ之JMS介绍与组成的四大元素

ActiveMQ之JMS介绍、落地产品与组成的四大元素

JMS

JavaEE是一套使用Java进行企业级应用开发的大家一致遵循的13个核心规范工业标准。JavaEE平台提供了一个基于组件的方法来加快设计、开发、装配及部署企业应用程序。

  1. JDBC(java Database Connectivity)
  2. JNDI(Java Name and Directory Interface)
  3. EJB(Enterprise JavaBean)
  4. RMI(RemoteMethod Invoke)
  5. Java IDL(接口定义语言)/CORBA
  6. JSP(Java Server Pages)
  7. Java Servlet
  8. XML(Extensible Markup Language)
  9. JMS(Java Message Service)
    JMS是用于和面向消息的中间件相互通信的应用程序接口(API)。它既支持点对点的域,也支持发布/订阅类型的域,并且提供对下列类型的支持:经认可的消息传递,事务性消息传递,一致性消息和具有持久性的订阅者的支持。
  10. JTA(Java Transaction Architecture)
  11. JTS(Java Transaction Service)
  12. JavaMail
  13. JAF(JavaBeans Activation Framework)

JMS(Java Message Service)Java消息服务,就是指两个应用程序之间进行异步通信的接口(API),它为标准消息协议和消息服务提供了一组通用的接口,包括创建、发送、读取消息等,用于支持Java应用程序开发。

JMS组成的四大元素

JMS provider

实现JMS接口和规范的消息中间件,也就是我们说的MQ服务器。

JMS producer

消息生产者,创建和发送JMS消息的客户端应用

JMS consumer

消息消费者,接收和处理JMS消息的客户端应用

JMS message

消息头

  • JMSDestination
    消息发送的目的地,主要指Queue同Topic

  • JMSDeliveryMode
    设置持久和非持久模式。
    一条持久性消息:应该被传送“一次仅仅一次”,这就意味着如果JMS提供者出现故障,该消息并不会丢失,它会在服务器回复之后再次被传递。
    一条非持久消息:最多会传送一次,这意味着服务器出现故障,该消息将永远丢失。

  • JMSExpiration
    可以设定消息在一定时间后过期,默认永不过期。
    消息过期时间,等于Destination的send方法中的timeToLive值加上发送时刻的GMT时间值。
    如果timeToLive值等于0,则JMSExpiration被设置为0,表示消息永不过期。如果发送后,在消息过期时间之后消息还没有被发送到目的地,则消息被清除。

  • JMSPriority
    消息优先级,从0-9十个级别,0到4普通消息,5到9是加急消息。
    JMS不要求MQ严格按照这十个优先级发送消息,但必须保证加急消息要先于普通消息到达,默认是4级。
    JMSMessageID
    唯一识别每个消息的标识,由MQ产生。

消息体

  • 封装具体的消息数据。
  • 发送和接受的消息体类型必须一致对应.
  • 5种消息体格式:

TextMessage : 普通字符串消息,包含一个string。
MapMessage : 一个Map类型的消息,key为string类型,而值为Java的基本类型。
BytesMessage : 二进制数组消息,包含一个byte[]。
StreamMessage : Java数据流消息,用标准流操作来顺序的填充和读取。
ObjectMessage : 对象消息,包含一个可序列化的Java对象。

消息属性

如果需要除消息头字段以外的值,那么可以使用消息属性。
识别/去重/重点标注等操作非常有用的方法

是什么?
他们时异属性名和属性值对的形式定制的。可以将属性视为消息的扩展,属性指定一些消息头没有包括的附加信息,比如可以在属性里指定消息选择器。

消息的属性就像可以分配给一条消息的附加消息头一样。他们允许开发者添加有关消息的不透明附加消息。
他们还用于暴漏消息选择器在消息过滤时使用的数据。

猜你喜欢

转载自blog.csdn.net/Zhangxg0206/article/details/109698644