activeMQ(二)JMS

1、 JMS:     
     JMS即Java消息服务(Java Message Service)应用程序接口规范,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持。

创建
创建
创建
send
创建
创建
receive
ConnectionFactory
connection
session
MessageProduct
Destination
消息类型
MessageCustomer
Destination
JMS 部件 JMS provider JMS producer JMS consumer JMS message
含义 实现JMS 的消息中间件,也就是MQ服务器 消息生产者,创建和发送消息的客户端 消息消费者,接收和处理消息的客户端 JMS 消息 分为消息头、消息属性、消息体

消息发送生命类型,接收也是什么类型

JMS message
消息头
消息体
消息属性
消息头:JMS消息头预定义了若干字段用于客户端与JMS提供者之间识别和发送消息,预编译头如下:
//textMessage.setJMSMessageID();选择类型然后设置消息头信息
	– JMSDestination:设置目标位置Queue或topic
	– JMSDeliveryMode:设置持久化模式
	– JMSMessageID:唯一性id
	– JMSTimestamp:
	– JMSCorrelationID
	– JMSReplyTo
	– JMSRedelivered
	– JMSType
	– JMSExpiration:设置过期时间,默认永久(0)
	– JMSPriority:设置优先级(0-9),默认4,高优先级优先低优先级
	
消息体:在消息体中,JMS API定义了五种类型的消息格式(session.creatTextMessage();)
	TextMessage : javax.jms.TextMessage,表示一个文本对象
	ObjectMessage : javax.jms.ObjectMessage,表示一个序列化的JAVA对象。
	BytesMessage : javax.jms.BytesMessage,表示二进制字节数据。
	StreamMessage :javax.jms.StreamMessage,表示java原始值数据流。
	MapMessage : javax.jms.MapMessage,表示键值对

消息属性:消息头的扩展,以键值对形式设置;可以实现过滤、去重或重点标注

public class Product {
    
    

    public static final String ACTIVEMQ_URL = "tcp://192.168.25.25:61616";
    public static final String TOPIC_NAME = "topic";

    public static void main(String[] args) throws JMSException {
    
    

        ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory(Product.ACTIVEMQ_URL);
        Connection connection = factory.createConnection(ActiveMQConnectionFactory.DEFAULT_USER, ActiveMQConnectionFactory.DEFAULT_PASSWORD);
        connection.start();
        Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
        Topic topic = session.createTopic(TOPIC_NAME);
        MessageProducer producer = session.createProducer(topic);

        for (int i = 1; i < 4; i++) {
    
    
            TextMessage textMessage = session.createTextMessage("hello activeMQ"+i);
            textMessage.setJMSMessageID("5645655");//设置消息头
            textMessage.setBooleanProperty("isVip",false);//消息属性
            producer.send(textMessage);//也可以设置部分消息头信息,例如目标位置
        }
        producer.close();
        session.close();
        connection.close();
    }
}

JMS(Java消息服务)入门教程

猜你喜欢

转载自blog.csdn.net/jue6628/article/details/97553605