activeMQ集群配置.doc_第1页
activeMQ集群配置.doc_第2页
activeMQ集群配置.doc_第3页
activeMQ集群配置.doc_第4页
activeMQ集群配置.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

3 20 2020Page 13 20 20202008 12 01版权所有 侵权必究All rights reserved第1页 共8页Page 1 Total8 activeMQ集群配置集群配置 3 20 2020Page 23 20 20202008 12 01版权所有 侵权必究All rights reserved第2页 共8页Page 2 Total8 目录目录 ACTIVEMQ集群配置集群配置 1 1ACTIVEMQ集群简介集群简介 2 2MASTER SLAVE模式简介模式简介 3 2 1安装环境 3 2 2测试服务器描述 3 3JDK安装安装 略略 4 4ACTIVEMQ安装安装 PURE MASTER SLAVE模式模式 4 4 1主ACTIVEMQ安装 4 4 2备ACTIVEMQ配置 4 5ACTIVEMQ的的BROKER CLUSTER模式模式 6 5 1软件安装 略 6 5 2配置文件修改 6 1 activeMQ集群简介集群简介 ActiveMQ可以做broker的集群 broker cluster 也可以做master slave方式的集群 前者能在多个 broker之前fail over和load balance 但是在某个节点出故障时 可能导致消息丢失 而后者能实时备份 消息 和fail over 但是不能load balance broker cluser的方式 在一个broker上发送的消息可以在其它 的broker上收到 当一个broker失效时 客户端可以自动的转到别的broker上运行 多个broker可以同时 提供服务 但是消息只存储在一个broker上 如果那个broker失效了 那么客户端直到它重新启动后才 能收到该broker上的消息 假如很不幸 那个broker的存储介质坏了 那么消息就丢失掉了 3 20 2020Page 33 20 20202008 12 01版权所有 侵权必究All rights reserved第3页 共8页Page 3 Total8 Master slave方式中 只有master提供服务 slave只是实时的备份master的数据 所以消息不会丢失 当master失效时 slave会自动升为master 客户端会自动转到slave上工作 所以能fail over 由于只有 master提供服务 所以不能将负载分到多个broker上 其实单个broker的性能已经是相当的惊人了 足够 公司目前的需要了 而公司并不希望丢失任何数据 所以我们选择使用master slave模式 本文将两种集 群方式都添加进来 作为后期参考 2 Master slave模式简介模式简介 多种master slave模式 master slave也有多种实现方式 它们的不同只是在共享数据和锁机制上 Pure master slave 显示的在配置文件中指定一个broker做为另一个broker的slave 运行时 slave同过网络自动从master出复制数据 同时在和master失去连接时自动升级为master 当 master失效 slave成为master后 如果要让原先的master重新投入运行 需要停掉运行中的 slave 现在升级为master了 手动复制slave中的数据到master中 再重新启动master和slave 这 种方式最简单 效率也不错 但是只能有两台做集群 只能fail over一次 而且需要停机恢复 master slave结构 JDBC master slave这种方式不需要特殊的配置 只要让所有的节点都把数据存储到同一个 数据库中 先拿到数据库表的锁的节点成为master 一旦它失效了 其它的节点获得锁 就可以 成为master 因为数据通过数据库共享 放在一个地方 不需要停机恢复master slave 这种方式 需要额外的数据库服务器 如果数据库失效了 那么就全失效了 而且速度不是很快 Share file master slave这种方式类似于前者 也不需要特别的配置 只是通过共享文件系统 来共享数据 靠文件锁实现只有一台成为master 共享文件系统的方式有很多 nfs v4 v3有 bug 不行 在稳定性 效率等方面不是很满意 可能是通过网络太慢了 我这边整理的是Pure master slave模式 2 1安装环境 2 2测试服务器描述 1 两台vmware虚拟机 内存均为1G 2 操作系统 rhel5 4 3 IP规划 masterslave 3 20 2020Page 43 20 20202008 12 01版权所有 侵权必究All rights reserved第4页 共8页Page 4 Total8 eth0192 168 88 130192 168 88 131 4 软件 包名简介版本 apache activemq 队列程序apache activemq 5 7 0 bin tar gz JDKjava version 1 6 0 38 jdk 6u38 linux i586 bin 3JDK安装 略 4activeMQ安装 Pure master slave模式模式 4 1主activeMQ安装 执行如下命令 root MYSQL opt tar zxvf apache activemq 5 7 0 bin tar gz C usr local root MYSQL conf vi bashrc export ACTIVEMQ HOME usr local apache activemq 5 7 0 export JAVA HOME usr local jdk1 6 0 38 export CLASSPATH CLASSPATH JAVA HOME lib JAVA HOME jre lib export PATH ACTIVEMQ HOME bin JAVA HOME bin JAVA HOME jre bin PATH HOME bin 主库配文件修改 root MYSQL conf vi usr local apache activemq 5 7 0 conf activemq xml 配置broker名即可 root MYSQL conf activemq setup etc default activemq 初始化生成activemq初始文件 root MYSQL conf activemq start 启动activemq 4 2备activemq配置 1 安装 略 2 修改配置文件 3 20 2020Page 53 20 20202008 12 01版权所有 侵权必究All rights reserved第5页 共8页Page 5 Total8 注意 5 8及以后的版本已经不支持 Pure master slave模式 此参数只能在5 7及以前版本使用 3 启动activemq并查看主日志 这就表示我们的环境已经搭建完成 附 Pure 模式的 M S 部署 相当于部署了两套相互独立的 ActiveMQ 实例 它们拥有各自的存储系统 这也是提供 HA 的最简单的一种方式 此种方式只有两个 MQ 实例 此种配置方式的话 Master 端不用做任何配置 只要在 Slave 端指定 Master 即可 这种配置的话 Master 的所有数据和消息都会被复制一份 到 Slave 这些复制发生在 Master 处理这些消息之前 如下图所示 Slave 会在启动的时候连接到 Master 因此 先要运行 Master 然后才能启动 Slave 启动后的 Salve 是不会处理任何消息分发的 它自身也 不会初始化任何网络连接 知道 master 失败 一个失败的 master 可以被 Salve 的连通性检测到 这种模式下 生产者在发送消息后处于一种等待状态 只有在 master 确认收到消息后 生产者才可以发送下一条消息给 master 然而 3 20 2020Page 63 20 20202008 12 01版权所有 侵权必究All rights reserved第6页 共8页Page 6 Total8 master 并不是一收到消息后 就立刻发送一个收条给生产者 而是当将此消息成工复制到 slave 后才 并且 master 处理了此消息后才发送给 生产者 上面翻译的比较绕口 简单来说就是这样子 P producer 发送一条消息到 M master M 会复制一份消息到 S slave 同时 M 会对消息进行相应的处理 例如保存消息到数据库 分发 消息到相应的订阅者 只有完成这些操作之后 M 才会发送一个 收条 给 P 这时候 P 才可以继续发送下一条消息给 M 当 Master 失败后 Slave 有以下两种选择 1 关闭自己 Slave 因此 这种情况下 Slave 仅仅是对 Master 的状态进行了一个保存 在这种情况下 管理员需要手动将 slave 配 置成 master 同时配置另外一个新的实例作为 slave 这样做貌似没有什么太大的意思 2 Slave 可以启动自身的 transports 和 network connection 这时候 Slave 会自动承担起处理消息的任务 成为新的 Master 此种方式的配置 客户端需要通过以下方式去链接 MQ failover tcp masterhost 61616 tcp slavehost 61616 randomize falsefailover tcp masterhost 61616 tcp slavehost 61616 randomize false 这种配置是有一定缺陷的 这种配置是有一定缺陷的 A A mastermaster 只会复制只会复制 slaveslave 链接上链接上 mastermaster 以后的消息到以后的消息到 slaveslave 如果在 如果在 slaveslave 没有连接到没有连接到 mastermaster 之前 有消息没有处理 这样子是不会被之前 有消息没有处理 这样子是不会被 mastermaster 复制到复制到 slaveslave 的 你可以使用的 你可以使用 waitForSlavewaitForSlave 属性去设置 这个属性会强迫属性去设置 这个属性会强迫 mastermaster 在在 slaveslave 没有连接上之前不要接受任何客户端的链没有连接上之前不要接受任何客户端的链 接 接 这种做法貌似很不地道哈 这种做法貌似很不地道哈 B B 另外一个限制就是 另外一个限制就是 MasterMaster 只允许有一个只允许有一个 SlaveSlave 而 而 SlaveSlave 自身不可能有一个其它的自身不可能有一个其它的 SlaveSlave 这样当 这样当 MasterMaster 倒下之后 倒下之后 SlaveSlave 就成了就成了 MasterMaster 了 这样 当你配置好了 这样 当你配置好 MasterMaster 之后 你需要关闭你的之后 你需要关闭你的 SlaveSlave 并且从 并且从 SlaveSlave 中拷贝一份中拷贝一份 datadata 到到 MasterMaster 然后启动 然后启动 MasterMaster 然后启动 然后启动 SlaveSlave 以重新恢复以重新恢复 master slavemaster slave 的结构 这样就需要停机 不能完全在不停机的情况下进行处理了 的结构 这样就需要停机 不能完全在不停机的情况下进行处理了 如果你的应用停机是可以接受的 那么就可以选用这种方式 如果你的应用停机是可以接受的 那么就可以选用这种方式 其实上面的做法有些复杂 简单的实践是 在其实上面的做法有些复杂 简单的实践是 在 mastermaster 宕机后 宕机后 slaveslave 成了新的成了新的 mastermaster 这时候 将旧的 这时候 将旧的 mastermaster 配置成一个配置成一个 slaveslave 将旧的 将旧的 slaveslave 配置成新的配置成新的 mastermaster 然后重新启动新的 然后重新启动新的 mastermaster 和新的和新的 slaveslave 即可 即可 只需事先写好两份配置文件 在需要的时候重命名一下即可 当只需事先写好两份配置文件 在需要的时候重命名一下即可 当 然这种做法也是少不了停机的 只是相对复制然这种做法也是少不了停机的 只是相对复制 datadata 数据来说简单多了数据来说简单多了 5 Activemq的的broker cluster模式模式 5 1软件安装 略 5 2配置文件修改 1 创建集群配置文件 root MYSQL conf cd usr local apache activemq 5 7 0 conf root MYSQL conf cp activemq static network broker1 x

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论