activemq 复习一

1. activemq原理

  1. 生产者通过和activemq建立好的TransportConnection发送消息
  2. TransportConnection找到对应的RegionBroker
  3. RegionBroker根据消息类型找到消息对应的区域Region
  4. Region会找到消息的目的地
  5. 目的地会判断该消息是否需要持久化
  6. 将消息发送给对应的订阅者或消费者
  7. 通过消费者对应的TransportConnection发送消息

在这里插入图片描述

2. activemq消息持久化方式

消息持久化会降低消息传递的效率

  • AMQ:文件存储,文件大小默认32M
  • KahaDB:基于文件的本地数据库存储,速度没有AMQ快,但扩展性强
  • JDBC:可以配置数据库的连接,将持久化信息存储到数据库中
  • LevelDB:本地数据库储存形式,基于索引

3. JMS的可靠性机制

  • 事务性会话

    • 创建方式:通过创建session时,第一个参数设置为true,则为事务性会话

       Session session=connection.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE);
      
    • 消息确认方式:通过session.commit();该方法调用后,自动签收

    • 重发:未调用session.commit();该方法,或者调用session.rollback();方法消息会被重发

  • 非事务性会话

    • 创建方式:通过创建session时,第一个参数为false,第二个参数分为三类应答模式

      Session session=connection.createSession(Boolean.FALSE, Session.AUTO_ACKNOWLEDGE);
      Session session=connection.createSession(Boolean.FALSE, Session.CLIENT_ACKNOWLEDGE);
      Session session=connection.createSession(Boolean.FALSE, Session.DUPS_OK_ACKNOWLEDGE);
      
      • AUTO_ACKNOWLEDGE

        • 消息确认方式:当receive方法或者onMessage方法返回后,自动签收
        • 重发:方法未成功调用的消息会重发
      • CLIENT_ACKNOWLEDGE

        • 消息确认方式:通过textMessage.acknowledge();该方法调用后,之前收到的消息会被确认
        • 重发:未调用session.commit();该方法,消息会被重发
      • DUPS_OK_ACKNOWLEDGE

        • 消息确认方式:延迟签收与AUTO_ACKNOWLEDGE方式类似,是自动签收,区别在于,会延迟一段时间,批量确认多条消息的签收成功,这也就导致了可能存在客户端实际已经签收,但是由于延迟时间而未被标记签收成功,服务会进行重复消息的发送,所以客户端需要保证客户端能够保证幂等
        • 重发:未被自动签收的消息会被重发

        JMS消息传送机制

4. activemq的高性能方案

  • 静态网络连接:

    • 概念:通过配置两个activemq中的broker的tcp连接以及允许消息回流的机制,保证两个activemq之间的消息能够进行消息的流转

    • 原理:静态网络连接实际是将brokerA作为一个消费者订阅另一个brokerB的消息,但前提条件是brokerA有该条消息的消费者,这样消息才会被转发到brokerA,而消息回流是防止消息流转后的丢失。

      静态网络连接:

      在这里插入图片描述

      消息回流:

    在这里插入图片描述

  • 动态网络连接:

    • 概念:通过multilcast,配置一个主播的IP地址,所有的Broker都会去连接主播的IP地址

5. activemq的高可用方案

  • zookeeper+activemq:

    • 实现方式:

      1. 配置kahaDB的持久化方式

        在这里插入图片描述

      2. 启动zookeeper服务器

      3. 启动activeMQ

    • 参数说明:

      • directory: levelDB数据文件存储的位置
      • replicas:计算公式(replicas/2)+1 , 当replicas的值为2的时候, 最终的结果是2. 表示集群中至少有2台是启动的
      • bind: 用来负责slave和master的数据同步的端口和ip
      • zkAddress: 表示zk的服务端地址
      • hostname:本机ip
  • jdbc存储的主从方案

    • 通过LOCK锁表的方式实现master/slave

6. activemq与其他mq比较

  • Activemq:采用Java实现,相对稳定,版本更新缓慢,支持持久化事务,但并发量支持较差
  • RabbitMQ:文档较全,社区活跃,支持事务和持久化
  • Kafaka:对高并发支持较好,但对事务和持久化不支持,会出现事件丢失适用于日志和数量统计等场景
    在这里插入图片描述

ActiveMQ详解

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 智慧社区背景与挑战 随着城市化的快速发展,社区面临健康、安全、邻里关系和服务质量等多方面的挑战。华为技术有限公司提出智慧社区解决方案,旨在通过先进的数字化技术应对这些问题,提升城市社区的生活质量。 2. 技术推动智慧社区发展 技术进步,特别是数字化、无线化、移动化和物联化,为城市社区的智慧化提供了可能。这些技术的应用不仅提高了社区的运行效率,也增强了居民的便利性和安全性。 3. 智慧社区的核心价值 智慧社区承载了智慧城市的核心价值,通过全面信息化处理,实现对城市各个方面的数字网络化管理、服务与决策功能,从而提升社会服务效率,整合社会服务资源。 4. 多层次、全方位的智慧社区服务 智慧社区通过构建和谐、温情、平安和健康四大社区模块,满足社区居民的多层次需求。这些服务模块包括社区医疗、安全监控、情感沟通和健康监测等。 5. 智慧社区技术框架 智慧社区技术框架强调统一平台的建设,设立数据中心,构建基础网络,并通过分层建设,实现平台能力及应用的可持续成长和扩展。 6. 感知统一平台与服务方案 感知统一平台是智慧社区的关键组成部分,通过统一的RFID身份识别和信息管理,实现社区服务的智能化和便捷化。同时,提供社区内外监控、紧急救助服务和便民服务等。 7. 健康社区的构建 健康社区模块专注于为居民提供健康管理服务,通过整合医疗资源和居民接入,实现远程医疗、慢性病管理和紧急救助等功能,推动医疗模式从治疗向预防转变。 8. 平安社区的安全保障 平安社区通过闭路电视监控、防盗报警和紧急求助等技术,保障社区居民的人身和财产安全,实现社区环境的实时监控和智能分析。 9. 温情社区的情感沟通 温情社区着重于建立社区居民间的情感联系,通过组织社区活动、一键呼叫服务和互帮互助平台,增强邻里间的交流和互助。 10. 和谐社区的资源整合 和谐社区作为社会资源的整合协调者,通过统一接入和身份识别,实现社区信息和服务的便捷获取,提升居民生活质量,促进社区和谐。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值