JMS基本概念

来源:互联网 发布:简述单片机的开发过程 编辑:程序博客网 时间:2024/05/22 07:08

1.JMS作用

      JMS是应用系统或者组件之间相互通信的应用程序接口,利用它,我们可以轻易实现在不同jvm之间互相的远程通信。

      要实现远程通信RPC同样也能做到,但是RPC却不可避免的增加了不同系统之间的耦合度,JMS能极大的降低不同的应用系统之间的耦合

    

2.JMS模型

      (1)PTP点对点

                      

                一个生产者向jms server发送消息,一个消费者从该jms server中读取消息。一条消息只能由多个消费者中的一个消费者来接收

                jms server就是用来暂时存储或中转消息的,在PTP模型中,jms server 就是一个队列

               消息是异步发送和处理的,也就是说,生产者不需要在接收者消费该消息期间处于运行状态,同样,接收者也不需要再消息发送时处于运行状态

               

      (2)发布者/订阅者

                        

                发布者向一个特定的消息主题发布消息,0或对个订阅者可能对特定主题的消息感兴趣。

                jms server在这种模型下,就相当于Topic主题。

               发布者需要建立一个订阅,以便客户能够订阅


3.JMS消息投递方式

      (1)NON_PERSISTENT:最多投递一次

      (2)PERSISTNET:先将消息暂存,然后再转送。如果一个JMS服务离线,那么这种消息不会丢失,但是得等到这个服务恢复联机时才会被传递

        注:默认消息投递方式是非持久的


4.JMS消息正文格式

      (1)StreamMessage:java原始的数据流

      (2)MapMessage:key-value数据

      (3)TextMessage:字符串

      (4)ObjectMessage:一个序列化的java对象

      (5)BytesMessage:字节数据流


5.JMS应用程序接口

      (1)ConnectionFactory

                 连接工厂,用户用来创建到JMS提供者的连接对象。

      (2)Connection

                 连接。代表了应用程序和消息服务器之间的连接。在获得了ConnectionFactory之后,就可以创建一个与jms提供者的连接

      (3)Session

                 会话,通过Connection对象来创建。

                 用来发送和接收消息。由于Session是单线程的,所以消息是连续的,就是说消息是按照发送的顺序一个个接收的。

                 会话的好处是支持事务,如果用户选择了事务支持,session中将保存一组消息,直到事务被提交才一起发送这些消息。在提交事务之前,用户可以回滚取消这些消息

      (4)Destination

                 代表了消息发送和接收的地点,可能是队列或者主题

      (5)MessageProducer

                 由session创建的对象,用于发送消息到目标

      (6)MessageConsumer

                 由session创建的对象,用于接收发送到目标的消息,消费者可以同步也可以异步的接收队列和主题类型的消息

      (7)Message

                 消息。是生产者和消费者之间传递的对象。主要包括消息头、一组消息属性和消息体

0 0
原创粉丝点击