`
cesymm
  • 浏览: 30116 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ActiveMq集群 JDBCMaster Slave 出现的问题,欢迎讨论

 
阅读更多
在做ActiveMq集群 JDBCMaster Slave遇到几个问题。

有三个broker,bk1,bk2,bk3共离同一数据库db

操作步聚.

1.启动bk1,bk2,bk3.不连入任何客户端,如果我停止bk1,怎么确认现在的mater是哪个bk???????????



2.如果一个客户端连上bk1,一直发送消息,此时down掉bk1,共发送10条消息,数据库中就有10条记录,最大的ID为10.
由于bk1down掉,请求转到bk2数据库继续持久化,此时如果down掉bk2时,又发送的10条消息,那么数据库中的消息最大id为20,共20条消息 。

bk2down 掉之后转到bk3,又增加了10条消息 最大id为30,共20条消息 。

此时我又启动了BK1,down掉bk3,此时再存入消息 时,id值为11,为上次bk1down掉时的最大消息 ID值。

存入数据时报错
va.lang.Throwable: org.h2.jdbc.JdbcBatchUpdateException: Unique index or primary key violation: "PRIMARY KEY ON PUBLIC.ACTIVEMQ_MSGS(ID)"; SQL statement:
INSERT INTO ACTIVEMQ_MSGS(ID, MSGID_PROD, MSGID_SEQ, CONTAINER, EXPIRATION, PRIORITY, MSG, XID) VALUES (?, ?, ?, ?, ?, ?, ?, ?) [23505-172]
at org.h2.jdbc.JdbcPreparedStatement.executeBatch(JdbcPreparedStatement.java:1167) ~[h2-1.3.172.jar:1.3.172]
at org.apache.commons.dbcp.DelegatingStatement.executeBatch(DelegatingStatement.java:297) ~[na:na]
at org.apache.commons.dbcp.DelegatingStatement.executeBatch(DelegatingStatement.java:297) ~[na:na]
at org.apache.commons.dbcp.DelegatingStatement.executeBatch(DelegatingStatement.java:297) ~[na:na]



请问有什么好的解决方案吗?????????????????
分享到:
评论
1 楼 cesymm 2013-07-26  
终于知道什么问题了,是数据库不支持锁。

我用的是h2数据库,不支持数据的各种特性

重复上面步聚,再当bk1启动时,由于数据库不支持,锁级别,bk1马上从数据库load最大值。

但切换到bk1时,bk1保存最大值,已是旧值 ,再保存数据库消息时,就会报主键重复的错误 !!!!!!

相关推荐

    ActiveMQ 集群——JDBC Master Slave + Broker Cluster

    ActiveMQ 集群——JDBC Master Slave + Broker Cluster ActiveMQ 集群是指将多个 ActiveMQ 服务器组合在一起,以提高系统的可扩展性和可靠性。在这个集群中,我们可以使用 JDBC Master Slave 模式和 Broker Cluster...

    activemq_master-slave集群安装文档

    ActiveMQ Master-Slave集群是一种高可用性和容错性的解决方案,确保即使主节点(Master Broker)发生故障,消息也不会丢失,因为它们已经被复制到从节点(Slave Broker)。这种配置是ActiveMQ推荐的策略之一,提供了...

    activemq-master-slave集群安装文档.doc

    这里主要讨论的是JDBC Master Slave模式,它依赖于数据库来确定哪个Broker是Master,哪个是Slave。 在JDBC Master Slave模式中,Master Broker和Slave Broker都尝试获取数据库的锁,成功获取的Broker将成为Master,...

    ActiveMQ Master/Slave 主从配置

    ActiveMQ支持多种高可用的主从配置模式,包括Shared File System Master/Slave、JDBC Master/Slave和Replicated LevelDB Store。文章主要介绍了使用JDBC Master/Slave模式来实现ActiveMQ的高可用配置。 在JDBC ...

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

    本示例主要讨论了如何通过配置和代码实现ActiveMQ集群中的`conduitSubscriptions`策略,以及结合`jdbc`存储,来确保消息的高可用性和消费的均衡。 首先,`conduitSubscriptions`是ActiveMQ中的一种订阅策略,它允许...

    ActiveMQ JDBC集群总结

    JDBCMasterSlave 是一种利用数据库系统来实现ActiveMQ集群的方式。该模式允许多个ActiveMQ实例通过竞争数据库锁的方式来确定主节点(Master)与从节点(Slave)。具体来说: - 当一个ActiveMQ实例首先获取到数据库...

    activemq集群方案.doc

    - JDBC Master Slave (File & DB):结合文件系统和数据库,利用 c3P0 数据源提高性能和可靠性。 - 单点非集群模式:无故障转移能力,适合小型、低负载应用。 3. **测试环境与配置**: - 硬件环境:双服务器...

    ActiveMQ使用手册(中文版)

    - **数据库主备(JDBC Master Slave):** 通过数据库实现数据同步。 #### 九、ActiveMQ + MongoDB 集群实践 **9.1 AMQ + MongoDB 集群:** - **定义:** 将ActiveMQ与MongoDB结合使用的集群配置。 - **特点:** 利用...

    linux版本ActiveMQ 5.15.8

    - **Master-slave配置**:实现ActiveMQ的主备切换,确保服务的连续性。 - **集群**:通过多节点集群提高可用性,消息在集群内自动复制。 10. **监控与日志** - **JMX监控**:通过Java Management Extensions...

    ActiveMQ快速上手 PDF

    - **Master-Slave**:一种简单的集群模式,其中一个 Broker 为主节点,其他为从节点。 #### 九、Destination高级特性 - **通配符**:使用通配符来匹配多个 Topic 或 Queue。 - **组合队列**:将多个 Queue 组合成一...

    【BAT必备】activeMQ面试题

    **4.2 ActiveMQ集群的几种模式及其区别是什么?** - **Master-Slave**: 主从模式下,一台服务器作为主节点,其他服务器作为从节点。当主节点故障时,从节点可以自动接管服务。 - **Multicast**: 多播模式下,所有...

    ActiveMQ.rar

    包括: 队列消费者集群、Broker的集群、 Master Slave等 n 九: Destination高级特性 包括: 通配符、组合队列、配置启动的Destinations、 删除不活动的 Destinations、 Destination选项、虚拟Destinations、镜像...

    apache-activemq-5.13.2.rar

    9. **高可用性和故障转移**:通过使用Master-Slave配置或者Network of Brokers,ActiveMQ能够提供高可用性和故障转移能力,确保服务的连续性。 10. **消息分发策略**:ActiveMQ支持多种消息分发策略,如公平分发、...

    ActiveMQ配置

    2. **Master-Slave配置**: 通过配置,可以使ActiveMQ实现主备模式,当主节点故障时,备份节点自动接管。 3. **网络负载均衡**: 可以通过网络负载均衡器(如HAProxy或Nginx)分发到多个ActiveMQ节点,提高系统可用性...

    activemq-5.9

    1. Master-slave配置:通过复制策略,可以创建主从复制的集群,当主节点故障时, slave节点可以无缝接管。 2. Network of Brokers:多台Broker可以组成网络,实现消息的跨Broker路由,提高系统的可扩展性和容错性。 ...

    ActiveMQ快速上手

    **8.3 Master-Slave模式** - **工作原理**:一个主Broker负责处理消息,多个从Broker用于备份数据。 - **故障转移**:主Broker故障时,自动将服务转移到从Broker上。 #### 九、Destination高级特性 **9.1 通配符*...

    Web网站架构演变趋势.docx

    主数据库负责写操作,从数据库负责读操作,通过数据库复制技术(如MySQL的Master-Slave模式)保持数据同步。这提高了数据库的读取性能,降低了主库压力。 ### 阶段五:用搜索引擎缓解读库压力 对于大量查询操作,...

    单点登录源码

    ActiveMQ | 消息队列 | [http://activemq.apache.org/](http://activemq.apache.org/) JStorm | 实时流式计算框架 | [http://jstorm.io/](http://jstorm.io/) FastDFS | 分布式文件系统 | ...

    java开源包1

    缓存读取自redis的slave节点,写入到redis的master节点。 Java对象的SQL接口 JoSQL JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java...

    java开源包11

    缓存读取自redis的slave节点,写入到redis的master节点。 Java对象的SQL接口 JoSQL JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java...

Global site tag (gtag.js) - Google Analytics