`
kimmking
  • 浏览: 546630 次
  • 性别: Icon_minigender_1
  • 来自: 中华大丈夫学院
社区版块
存档分类
最新评论

两个activemq用一个mysql

阅读更多

 

发现一个activemq好玩的地方。
  两个activemq的broker实例persistence共用一个mysql数据库。会怎么样?
 
 答案是运行中的两个activemq,是没有问题的。
 一个重启的activemq,会加载数据库中存的消息,这个时候就分不清楚了,全部都加载了。
 猜想,如果消费的比生产的慢,一样会出现消息混淆的问题。
  因为正常情况下,其实存的这份消息和发出去的这份消息,从分出来以后就没有什么关系了。
 
所以,正常的流程里不会相互影响。
 
一个正常发过来的持久化的消息, 一般情况下则会变成两份,一份在内存,一份存入数据库。内容中的成功发送给消费者,就去把数据库里这条记录删掉。整个过程没有从数据库加载数据,所以不会混淆。
 
一重启或者内存放不下了,可能会出问题。
3种测试情况
先后启动两个broker A:61616和broker B:61617,配置同一个mysql数据库。
1、向A中发送数据a,B中发送数据b,数据库msgs表中存在两条记录。
     从A receive消息,得到a,从B得到消息b。msgs表清空。
2、向A中发送数据a,数据库msgs表中存在1条记录。关闭A,重启B,从B中接收一条消息a。
3、向A中发送数据a1、a2,数据库msgs表中存在2条记录。重启B。
     从B中接收一条消息a1。从A中接收一条消息a1。
     从A中接收一条消息a2。从B中接收一条消息a2。
    
   
   
分享到:
评论

相关推荐

    自己写的ActiveMQ的Demo例子

    ActiveMQ 是一个开源的消息中间件,它是 Java Message Service(JMS)规范的一个实现,用于在分布式系统中传输消息。ActiveMQ 支持多种协议,如 OpenWire、STOMP、AMQP 和 MQTT,允许不同平台的应用程序进行通信。它...

    activemq的简单配置

    ActiveMQ是Apache软件基金会提供的一个开源消息中间件项目,其主要功能是作为一个消息的接收和转发容器,用于实现消息队列服务。ActiveMQ支持两种基本的角色模型:**生产者(Producer)**和**消费者(Consumer)**。...

    ActiveMQ Master/Slave 主从配置

    在JDBC Master/Slave模式下,ActiveMQ通过使用外部数据库存储持久消息,从而可以在多个ActiveMQ实例之间同步消息状态,保证数据的一致性。这种模式下,通常会有一个Master节点和一个或多个Slave节点。Master节点负责...

    apache-activemq-5.16.1.rar

    ActiveMQ 5.16.1 是该软件的一个版本,它包含了多种特性和服务,使得它成为企业级应用开发的重要组件。 在ActiveMQ 5.16.1中,你可以找到以下关键知识点: 1. **消息模型**:ActiveMQ支持点对点(Queue)和发布/...

    管理系统系列--基于SSH+easyUI+ActiveMQ+MySQL的校园宿舍管理系统。 分为系统管理员、楼宇管理.zip

    系统分为“系统管理员”和“楼宇管理”两个部分,这表明该系统具有不同的权限级别和功能划分。系统管理员可能拥有全面的管理权限,包括用户管理、系统设置等,而楼宇管理则专注于具体的宿舍楼及其相关事务,如宿舍...

    ActiveMQ+zookeeper实现高可用和负载均衡(代码和测试)

    - **角色**:其中一个实例被设置为主节点(Master),其余两个为从节点(Slaves)。正常情况下,只有主节点对外提供服务。 ##### 2.2 高可用性 - **定义**:即使主节点发生故障,系统也能够自动切换到备用节点继续...

    4.7、activemq 集群 conduitSubscriptions 均衡消费和master slave,jdbc存储1

    在ActiveMQ集群环境中,实现消息均衡消费和主备切换是一个重要的功能。本示例主要讨论了如何通过配置和代码实现ActiveMQ集群中的`conduitSubscriptions`策略,以及结合`jdbc`存储,来确保消息的高可用性和消费的均衡...

    dom4j、jdom、mysql-connector相关jar包

    在Java开发中,DOM4J和JDOM是两种流行的XML处理库,而`mysql-connector`则是连接MySQL数据库的关键组件。下面将详细讲解这三个库及其在实际开发中的应用。 首先,DOM4J是一个非常强大的Java XML API,它提供了丰富...

    Java 高仿QQ聊天即时通软件+mysql数据库 完整运行!!

    一个线程用于接收客户端的请求,另一个线程则负责处理和回应这些请求,保证了聊天的并发性。 3. **用户界面(UI)**:Java Swing或JavaFX库可用于创建用户友好的图形界面,包括登录窗口、好友列表、聊天窗口等。事件...

    3.1 JDBC消息存储持久化jdbc persistenceFactory高速缓存1

    - **数据库准备**:创建一个名为`activemq`的数据库,以便ActiveMQ使用。 - **启动与验证**:重新启动ActiveMQ后,数据库会自动生成三张表:`activemq_acks`(用于存储消息签收信息),`activemq_lock`(存储锁...

    java多个数据库实现数据同步

    数据同步是指在两个或多个数据库之间,当某个数据库中的数据发生改变时,这些变化能够被实时或者近实时地反映到其他数据库中。这有助于防止数据丢失和减少数据冲突,保证各个节点的数据一致性。 在Java中,实现多...

    JAVA-项目面试题.docx

    * 在数据库中,使用游标(Cursor)来实现批量更新操作,例如声明一个游标 emp_cur 来更新员工的薪水。 * 数据库设计的重要性,通常是由架构师或工程经理设计的,但自己模块的设计也需要自己来完成。 二、Linux 命令...

    NewPNW网络RTK系统使用手册20200506.doc

    Navicat是一款常用的数据库管理工具,用于连接和管理MySQL数据库。 2.2.4 配置MySQL ODBC 配置ODBC数据源,使得NewPNW软件可以通过ODBC访问MySQL数据库。 2.3 启动软件 完成上述配置后,可以启动NewPNW软件,开始...

    学习总结 包括Java JVM MySQL NoSQL UML 缓存 消息 分布式事务-StudySummary.zip

    MySQL是一款开源的关系型数据库管理系统,广泛应用于Web应用开发。掌握SQL语言,理解数据库设计的基本原则(如范式理论),熟悉MySQL的存储引擎(InnoDB、MyISAM等)及其特性,以及索引的创建与优化,对提升数据库...

    单点登录权限系统-部署1

    总之,Smart框架提供了一个集成的单点登录和权限管理解决方案,通过Eclipse、Maven、Tomcat和MySQL的组合,开发者可以快速搭建起安全的分布式应用环境。同时,ActiveMQ作为可选组件,可增强系统的消息处理能力。

    PHP+MySQL实现消息队列的方法分析

    在使用PHP和MySQL构建消息队列时,第一步是创建一个消息表来存储需要发送的消息。在给出的例子中,创建了名为sms的表,其中包含id、phone和content三个字段,分别用于存储消息的唯一标识、接收手机号和短信内容。 ...

    面经-阿里一面1

    - 题目要求找到链表倒数第k个节点,这是一个常见的链表问题,可以通过双指针法解决,一个指针先走k步,然后两个指针同步移动,当先走的指针到达末尾时,另一个指针就指向倒数第k个节点。 2. **交叉链表**: - ...

    从0开始带你成为xxx专栏.rar

    总结来说,这个压缩包提供了一个全面的Java学习路径,从基础知识到高级实践,再到面试准备,涵盖了Java开发的关键领域,包括消息中间件的使用和数据库优化,为成为一个全面的Java开发者奠定了坚实的基础。...

    华为微服务

    RABBITMQ和ACTIVEMQ是两个广泛使用的消息中间件,它们在微服务间提供异步通信,解耦服务之间的依赖,确保系统的高可靠性和可扩展性。KAFKA是LinkedIn开源的一款分布式流处理平台,适用于大规模实时数据处理和日志...

    java工程师简历_java简历.doc

    第一个项目是淘嘟嘟网上商城,他参与了需求分析和项目构建,负责商品管理、广告管理和搜索展示。项目采用了SpringMVC、MyBatis、jQuery、FastDFS、Redis、Solr、Maven等技术。他利用Maven提高了开发效率,使用Solr...

Global site tag (gtag.js) - Google Analytics