activeMQ JMS标准总结 未完 JMS Java Message Service 是javaEE 中的13个规范之一

  1. MQ主要的作用:削峰,异步,解耦
  2. JMS 的四大对象,(1)provider 实现规范的:activemq :服务器(2)producer 生产者 :客户端对象(3)consumer消费者:客户端对象(4)消息message :也是客户端 其中的关键就是消息,queue和topic不过是怎么传递,真正要用的是消息。

linux jdk地址

消息头

(1)目的地
(2)持久化(如果服务器宕机,消息可以被回复)
(3)过期时间(0 也就是永久有效。)是消息在有效时间内没有发送到目的地。就清除。
(4)优先级 0-4 普通 5-9 加急信息。默认是4, 其实就是两个级别。 高级别比低级的先。
(5)信息的id (最重要:唯一标识)

消息体

  1. Text 就是一个String的字符 ,就保存值
  2. Map key 就是String 类型,就是保存的是键值对
    代码演示
发送
  MapMessage mapMessage = session.createMapMessage();
            mapMessage.setString("abc","uuuuuuu");

获取
  String text = ((MapMessage) message).getString("abc");
                        System.out.println("text = " + text);

消息属性

  1. 归类使用吧 setStringProperty 这个主要是让获取消息的时候,多了一个判断条件。&& 和MapMessage一样,只是 后者是Message体。 用于识别 | 去重 | 过滤 等使用。
赋值
  textMessage.setStringProperty("vip","woqu");


获取
 String text1 = ((TextMessage) message).getStringProperty("vip");
                        System.out.println("text1 = " + text1);

消息的可靠性

topic的持久化 在创建消费者的时候代码不同了

producer.setDeliveryMode(DeliveryMode.PERSISTENT);
connection.start(); 这句话挪到下边来。
以上的这个是在生产者
 TopicSubscriber topicSubscriber = session.createDurableSubscriber(topic, "remark");//以前是session.createConsumer(topic)  因为我们创建的是durable 的Subscriber 订阅者
 connection.setClientID("home");
 connection.start();  放在后边
  1. 持久化 delivery 队列默认就是 持久化的。持久化的设置是在produce.setDeliveryMode(DeliveryMode.PERSISTENT) 如果是持久化。宕机后我们可以回复。 如果是非持久化。宕机后全部是0;用的是queue

  2. 持久化的topic ,也是要设置上面的持久化语句。然后在消费者中,session.createDurableSubscriber(topic, “remark…”); 创建的不是之前的消费者了,而是订阅者,我们要先启动这个订阅者,每一次的receive只是等一条消息。如果订阅者启动过了,然后退出,还是能收到主题的消息。
  3. 事务,其实主要是针对把数据放在队列中。 connection.createSession(false,Session.ACKNOWLEDGE) 第一个参数就是事务,如果我们开启事务,就需要session.commit()。这个是配合使用的才能生效。如果是生产者这边设置了事务,其实这是生产者自己这边有效。对于,使用者来说。如果没有commit就会造成消息的重复消费。
  4. 非事务 签收,默认我们是自动的签收,只能签收一次,如果你改成手动签收,但是没有签收,那么可以一直获取。也就是消息的重复消费。testMessage.acknowledge()手动签收消息,设置了模式,就是说怎么样生效。如果是
  5. 如果是事务true,生产者的签收就不重要了,因为不用,只不过这个是一个通用的方法,没事务的时候,签收才是重要的。消费者的签收也不重要了。也就是如果是true后边就不用看了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值