ActiveMq 学习笔记

1、JMS开发的基本步骤

  1. 创建一个ConnectionFactory
  2. 通过ConnectionFactory来创建JSM connection
  3. 启动JMS connection
  4. 通过connection创建JMD connection
  5. 创建JMS destination
  6. 创建JMS producer 或者创建JMS message并设置destination
  7. 创建JMS consumer或者注册一个JMS message listener
  8. 发送或者接受JMS message(s)
  9. 关闭所有的JMS资源
  10. (connection、session、producer、consumer等)

2、两种消费模式

同步堵塞方式(receive())

订阅者或者接受者调用messageconsumer的setmessageListener(MessageListener listener)注册一个消息监听器

当消息到达之后,系统自动调用监听器MessageListener的onMessage(Message message)方法。

3、topic和queen的区别

比较Topic模式队列Queue模式队列
工作模式“订阅-发布”模式,如果当前没有订阅者,消息将会被丢弃,如果有多个订阅者,那么这些订阅者都会受到消息“负载均衡”模式,如果当前乜有消费者,消息也不会被丢弃;如果有多个消费者,那么一条消息只会发送给其中一个消费者,并且要求消费者ack消息
有无状态无状态queue数据默认会在mq服务器上以文件形式保存,比如ActiveMq一般保存在$AMQ_HOME\data\kr-store\data下面。也可以配置成DB村建
传递完整性如果没有订阅者,消息将会被丢弃消息不会被丢弃
处理效率由于消息要按照订阅者的数量进行复制,所以处理性能会随着订阅的增加而明显降低,并且还要结合不同的消息协议自身的性能差异由于一条消息只能发送给一个订阅者,所以就算消费者再多,性能也不会有明显降低。当然不同的消息协议的具体性能也是由差异的

ActiveMq 应用场景:

https://blog.csdn.net/qinweili751/article/details/80620104

ActiveMq投递:

1、异步投递;2、延时投递;3、定时投递;

producer.jmsTemplate.send((Session session) -> {
            TextMessage textMessage = session.createTextMessage("**********spring和ActiveMQ整合的case333*********");
            //延时投递 --> 延时时间 --> 3S
            textMessage.setLongProperty(ScheduledMessage.AMQ_SCHEDULED_DELAY, 3000);
            //延时投递 --> 重复投递的时间间隔
            textMessage.setLongProperty(ScheduledMessage.AMQ_SCHEDULED_PERIOD, 4000);
            //延时投递 --> 投递次数
            textMessage.setLongProperty(ScheduledMessage.AMQ_SCHEDULED_REPEAT, 5);
            return textMessage;
        });

ActiveMq的重试机制:

https://blog.csdn.net/qq_20597727/article/details/81416812

ActiveMq防止重试:

可用redis、数据库主键

ActiveMq异步投递:

https://blog.csdn.net/qq_36761831/article/details/99956613

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值