在做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]
请问有什么好的解决方案吗?????????????????
分享到:
相关推荐
ActiveMQ 集群——JDBC Master Slave + Broker Cluster ActiveMQ 集群是指将多个 ActiveMQ 服务器组合在一起,以提高系统的可扩展性和可靠性。在这个集群中,我们可以使用 JDBC Master Slave 模式和 Broker Cluster...
ActiveMQ Master-Slave集群是一种高可用性和容错性的解决方案,确保即使主节点(Master Broker)发生故障,消息也不会丢失,因为它们已经被复制到从节点(Slave Broker)。这种配置是ActiveMQ推荐的策略之一,提供了...
这里主要讨论的是JDBC Master Slave模式,它依赖于数据库来确定哪个Broker是Master,哪个是Slave。 在JDBC Master Slave模式中,Master Broker和Slave Broker都尝试获取数据库的锁,成功获取的Broker将成为Master,...
ActiveMQ支持多种高可用的主从配置模式,包括Shared File System Master/Slave、JDBC Master/Slave和Replicated LevelDB Store。文章主要介绍了使用JDBC Master/Slave模式来实现ActiveMQ的高可用配置。 在JDBC ...
本示例主要讨论了如何通过配置和代码实现ActiveMQ集群中的`conduitSubscriptions`策略,以及结合`jdbc`存储,来确保消息的高可用性和消费的均衡。 首先,`conduitSubscriptions`是ActiveMQ中的一种订阅策略,它允许...
JDBCMasterSlave 是一种利用数据库系统来实现ActiveMQ集群的方式。该模式允许多个ActiveMQ实例通过竞争数据库锁的方式来确定主节点(Master)与从节点(Slave)。具体来说: - 当一个ActiveMQ实例首先获取到数据库...
- JDBC Master Slave (File & DB):结合文件系统和数据库,利用 c3P0 数据源提高性能和可靠性。 - 单点非集群模式:无故障转移能力,适合小型、低负载应用。 3. **测试环境与配置**: - 硬件环境:双服务器...
- **数据库主备(JDBC Master Slave):** 通过数据库实现数据同步。 #### 九、ActiveMQ + MongoDB 集群实践 **9.1 AMQ + MongoDB 集群:** - **定义:** 将ActiveMQ与MongoDB结合使用的集群配置。 - **特点:** 利用...
- **Master-slave配置**:实现ActiveMQ的主备切换,确保服务的连续性。 - **集群**:通过多节点集群提高可用性,消息在集群内自动复制。 10. **监控与日志** - **JMX监控**:通过Java Management Extensions...
- **Master-Slave**:一种简单的集群模式,其中一个 Broker 为主节点,其他为从节点。 #### 九、Destination高级特性 - **通配符**:使用通配符来匹配多个 Topic 或 Queue。 - **组合队列**:将多个 Queue 组合成一...
**4.2 ActiveMQ集群的几种模式及其区别是什么?** - **Master-Slave**: 主从模式下,一台服务器作为主节点,其他服务器作为从节点。当主节点故障时,从节点可以自动接管服务。 - **Multicast**: 多播模式下,所有...
包括: 队列消费者集群、Broker的集群、 Master Slave等 n 九: Destination高级特性 包括: 通配符、组合队列、配置启动的Destinations、 删除不活动的 Destinations、 Destination选项、虚拟Destinations、镜像...
9. **高可用性和故障转移**:通过使用Master-Slave配置或者Network of Brokers,ActiveMQ能够提供高可用性和故障转移能力,确保服务的连续性。 10. **消息分发策略**:ActiveMQ支持多种消息分发策略,如公平分发、...
2. **Master-Slave配置**: 通过配置,可以使ActiveMQ实现主备模式,当主节点故障时,备份节点自动接管。 3. **网络负载均衡**: 可以通过网络负载均衡器(如HAProxy或Nginx)分发到多个ActiveMQ节点,提高系统可用性...
1. Master-slave配置:通过复制策略,可以创建主从复制的集群,当主节点故障时, slave节点可以无缝接管。 2. Network of Brokers:多台Broker可以组成网络,实现消息的跨Broker路由,提高系统的可扩展性和容错性。 ...
**8.3 Master-Slave模式** - **工作原理**:一个主Broker负责处理消息,多个从Broker用于备份数据。 - **故障转移**:主Broker故障时,自动将服务转移到从Broker上。 #### 九、Destination高级特性 **9.1 通配符*...
主数据库负责写操作,从数据库负责读操作,通过数据库复制技术(如MySQL的Master-Slave模式)保持数据同步。这提高了数据库的读取性能,降低了主库压力。 ### 阶段五:用搜索引擎缓解读库压力 对于大量查询操作,...
ActiveMQ | 消息队列 | [http://activemq.apache.org/](http://activemq.apache.org/) JStorm | 实时流式计算框架 | [http://jstorm.io/](http://jstorm.io/) FastDFS | 分布式文件系统 | ...
缓存读取自redis的slave节点,写入到redis的master节点。 Java对象的SQL接口 JoSQL JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java...
缓存读取自redis的slave节点,写入到redis的master节点。 Java对象的SQL接口 JoSQL JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java...