JMS入门:一、基本构件

来源:互联网 发布:网络播放系统 编辑:程序博客网 时间:2024/06/05 20:17

1.1、JMS的基本构件

1.1.1 连接工厂

    连接工厂是客户用来创建连接对象的,例如ActiveMQ提供的ActiveMQFactoryConnection

1.1.2 连接

    JMS Connection 封装了客户与JMS 提供者(即 JMS provider 即jms服务端)之间的一个虚拟的连接。


1.1.3  会话


    JMS Session 是生产和消费的一个单线程上下文。会话用于创建消息生产者(Producer)、消息消费者(Consumer)、消息(Message)等。会话提供了一个事务性的上下文,在这个上下文中一组发送和接收被组合到了一个原子操作中。


1.1.4 目的地

    目的地:客户用来指定它生产的消息的目标和它消费的消息的来源的对象。
    

1.1.5 消息生产者

    由会话对象产生

1.1.6 消息消费者

    消息消费者是由会话产生的一个对象,它用于接收发送到目的地的消息。消息的消费分以下两种方式:

       1、同步消费,通过调用消费者的receive方法从目的地中显示提取消息。receive可以一直阻塞直到消息到达(消息的接受者会一直等待,知道有消息达到或者超时)       
                     while (true) {TextMessage textMessage = (TextMessage) consumer.receive(1000);if (textMessage != null) {System.out.println("收到的消息是:" + textMessage.getText());} else {break;}}


       2、异步消费,客户可以为消费者注册一个消息监听器(MessageListener),以定义在消息到达时候所采取的行动.

 
consumer.setMessageListener(new MessageListener() {public void onMessage(Message message) {TextMessage textMessage = (TextMessage) message;try {System.out.println("接收到的文字消息为:" + textMessage.getText());} catch (JMSException e) {// TODO Auto-generated catch blocke.printStackTrace();}}    });

1.1.7 消息(可参考:http://www.cnblogs.com/guthing/archive/2010/06/12/1757158.html)

    JMS消息由三部分组成:
           1、消息头:每个消息头字段都有一个setter和getter方法
           2、消息属性:如果需要除消息头以外的值,那么可以使用消息属性
           3、消息体:JMS定义的消息类型有:TextMessage,MapMessage,BytesMessage,StreamMessage,ObjectMessage
  

1.1.8 消息的传递

     消息传递域的两种形式:1、点对点(queue):简单点说,就是一对一的过程,一条消息只能被一个消费者消费
                                                 2、发布订阅(topic):类似于邮局发布报纸,凡是订阅了这个topic的消费者,均可以消费


0 0
原创粉丝点击