网上的教程真的是凤毛麟角,就不想说啥了,一次一次把我带入坑。

好了关于Zookeeper的搭建已经说好了,本文说说基于Zookeeper的MQ集群。

第一步、将mq安装包上传到CentOS7,并解压

我这里有个   /mysoft   的路径,用来存放安装包的。执行命令:

  1. [root@localhost mysoft]# ll
  2. total
  3. -rw-r--r--. root root Jul : apache-activemq-5.15.-bin.tar.gz
  4. -rw-r--r--. root root Jul : jdk-8u131-linux-x64.gz
  5. -rw-r--r--. root root Jul : zookeeper-3.4..tar.gz
  6. [root@localhost mysoft]# tar -zxvf apache-activemq-5.15.-bin.tar.gz -C /usr/local

我这里解压到了/usr/local 目录下。

第二步、修改配置文件

  1. 小插曲:
  2.  
  3. 当我没有配置ActiveMQ的环境变量时,会出现(两个/)
  4. [root@localhost conf]# cd ../
  5. [root@localhost apache-activemq-5.15.]# cd bin
  6. [root@localhost bin]# ./activemq start
  7. INFO: Loading '/usr/local/apache-activemq-5.15.0//bin/env'
  8. INFO: Using java '/usr/local/java/jdk/jdk1.8.0_131/bin/java'
  9. INFO: Starting - inspect logfiles specified in logging.properties and log4j.properties to get details
  10. INFO: pidfile created : '/usr/local/apache-activemq-5.15.0//data/activemq.pid' (pid '')
  11.  
  12. 所以我就配了个环境变量,
  13.  
  14. vi /etc/profile
  15.  
  16. export ACTIVEMQ_HOME=/usr/local/apache-activemq-5.15.0
  1. 之后就没有两个/了

找到配置文件

  1. cd /usr/local/apache-activemq-5.15./conf
  2.  
  3. vi activemq.xml

1. 先修改节点名称,这里三台机器一致

2. 修改persistenceAdapter

节点一:

节点二:

节点三:

3. 提个醒

第三步、开放端口

2. 端口说明

  1. Zookeeper
  2. the port that clients will use to connect to the ZK ensemble
  3. port used by ZK for quorum election
  4. port used by ZK for leader election
  5. ActiveMQ
  6. 消息端口(服务端口)  # 默认的
  7. 控制台端口       # 默认的
  8. 集群通信端口

centos7命令开放端口--重启防火墙--查看端口:

  1. [root@localhost conf]# firewall-cmd --zone=public --add-port=/tcp --permanent
  2. success
  3. [root@localhost conf]# firewall-cmd --zone=public --add-port=/tcp --permanent
  4. success
  5. [root@localhost conf]# firewall-cmd --zone=public --add-port=/tcp --permanent
  6. success
  7. [root@localhost conf]# firewall-cmd --zone=public --add-port=/tcp --permanent
  8. success
  9. [root@localhost conf]# firewall-cmd --zone=public --add-port=/tcp --permanent
  10. success
  11. [root@localhost conf]# firewall-cmd --zone=public --add-port=/tcp --permanent
  12. success
  1. [root@localhost conf]# systemctl restart firewalld
  1. [root@localhost conf]# firewall-cmd --zone=public --list-ports
    /tcp /tcp /tcp /tcp /tcp /tcp

第四步、启动Zookeeper,启动MQ

Zookeeper的启动我就不说了,我写的那篇文章有。

  1. 先定位到ActiveMQbin目录。然后
  2.  
  3. ./activemq start

节点一:

节点二:

节点三:

那么有没有启动成功呢?

先看看ActiveMQ的启动日志,有没有异常的东西

  1. [root@localhost conf]# cd ../
  2. [root@localhost apache-activemq-5.15.]# cd data/
  3. [root@localhost data]# tail activemq.log
  4. -- ::, | WARN | unprocessed event state: AuthFailed | org.apache.activemq.leveldb.replicated.groups.ZKClient | main-EventThread
  5. -- ::, | INFO | Socket connection established to 192.168.127.131/192.168.127.131:, initiating session | org.apache.zookeeper.ClientCnxn | main-SendThread(192.168.127.131:)
  6. -- ::, | INFO | Session establishment complete on server 192.168.127.131/192.168.127.131:, sessionid = 0x25d71f9f3ed0000, negotiated timeout = | org.apache.zookeeper.ClientCnxn | main-SendThread(192.168.127.131:)
  7. -- ::, | WARN | listeners are taking too long to process the events | org.apache.activemq.leveldb.replicated.groups.ChangeListenerSupport | main-EventThread
  8. -- ::, | WARN | listeners are taking too long to process the events | org.apache.activemq.leveldb.replicated.groups.ChangeListenerSupport | main-EventThread
  9. -- ::, | INFO | Using the pure java LevelDB implementation. | org.apache.activemq.leveldb.LevelDBClient | ActiveMQ BrokerService[activemqCluster] Task-
  10. -- ::, | INFO | Attaching to master: tcp://192.168.127.129:62621 | org.apache.activemq.leveldb.replicated.SlaveLevelDBStore | ActiveMQ BrokerService[activemqCluster] Task-1
  11. -- ::, | INFO | Slave started | org.apache.activemq.leveldb.replicated.MasterElector | ActiveMQ BrokerService[activemqCluster] Task-
  12. -- ::, | INFO | Attaching... Downloaded 0.00/0.00 kb and / files | org.apache.activemq.leveldb.replicated.SlaveLevelDBStore | hawtdispatch-DEFAULT-
  13. -- ::, | INFO | Attached | org.apache.activemq.leveldb.replicated.SlaveLevelDBStore | hawtdispatch-DEFAULT-

可以看出并没有。

再执行一下zkCli.sh ,看看有没有我们配的节点。

  1. [root@localhost data]# cd /usr/local
  2. [root@localhost local]# zkCli.sh
  3. Connecting to localhost:
  4. -- ::, [myid:] - INFO [main:Environment@] - Client environment:zookeeper.version=3.4.-39d3a4f269333c922ed3db283be479f9deacaa0f, built on // : GMT
  5. -- ::, [myid:] - INFO [main:Environment@] - Client environment:host.name=localhost
  6. -- ::, [myid:] - INFO [main:Environment@] - Client environment:java.version=1.8.0_131
  7. -- ::, [myid:] - INFO [main:Environment@] - Client environment:java.vendor=Oracle Corporation
  8. -- ::, [myid:] - INFO [main:Environment@] - Client environment:java.home=/usr/local/java/jdk/jdk1..0_131/jre
  9. -- ::, [myid:] - INFO
  10.  
  11. ...省略
  12.  
  13. -- ::, [myid:] - INFO [main:Environment@] - Client environment:java.io.tmpdir=/tmp
  14. -- ::, [myid:] - INFO [main:Environment@] - Client environment:java.compiler=<NA>
  15. -- ::, [myid:] - INFO [main:Environment@] - Client environment:os.name=Linux
  16. -- ::, [myid:] - INFO [main:Environment@] - Client environment:os.arch=amd64
  17. -- ::, [myid:] - INFO [main:Environment@] - Client environment:os.version=3.10.-.el7.x86_64
  18. -- ::, [myid:] - INFO [main:Environment@] - Client environment:user.name=root
  19. -- ::, [myid:] - INFO [main:Environment@] - Client environment:user.home=/root
  20. -- ::, [myid:] - INFO [main:Environment@] - Client environment:user.dir=/usr/local
  21. -- ::, [myid:] - INFO [main:ZooKeeper@] - Initiating client connection, connectString=localhost: sessionTimeout= watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@506c589e
  22. -- ::, [myid:] - INFO [main-SendThread(localhost:):ClientCnxn$SendThread@] - Opening socket connection to server localhost/127.0.0.1:. Will not attempt to authenticate using SASL (unknown error)
  23. Welcome to ZooKeeper!
  24. JLine support is enabled
  25. -- ::, [myid:] - INFO [main-SendThread(localhost:):ClientCnxn$SendThread@] - Socket connection established to localhost/127.0.0.1:, initiating session
  26. -- ::, [myid:] - INFO [main-SendThread(localhost:):ClientCnxn$SendThread@] - Session establishment complete on server localhost/127.0.0.1:, sessionid = 0x15d71f9f3e00000, negotiated timeout =
  27.  
  28. WATCHER::
  29.  
  30. WatchedEvent state:SyncConnected type:None path:null
  31. [zk: localhost:(CONNECTED) ] ls /
  32. [activemq, zookeeper]
  33. [zk: localhost:(CONNECTED) ] ls /activemq
  34. [leveldb-stores]
  35. [zk: localhost:(CONNECTED) ] ls /activemq/leveldb-stores
  36. [, , ]
  37. [zk: localhost:(CONNECTED) ] quit
  38. Quitting...
  39. -- ::, [myid:] - INFO [main:ZooKeeper@] - Session: 0x15d71f9f3e00000 closed
  40. -- ::, [myid:] - INFO [main-EventThread:ClientCnxn$EventThread@] - EventThread shut down for session: 0x15d71f9f3e00000
  41. [root@localhost local]#

可以看到

  1. [00000000006, 00000000007, 00000000005]

,之所以不是1,2,3,可能是我前几次没成功导致的吧,毕竟掉了几次坑。。。

你在这三台机器上都可以看到这三个,就证明ok了。

最后直观一点:打开浏览器。分别访问

http://192.168.127.129:8161/admin/

http://192.168.127.130:8161/admin/

http://192.168.127.131:8161/admin/

会发现只有一个提供服务。

------------------------------

-----------------------------------

现在我们停掉129的MQ

  1. [root@localhost local]# cd apache-activemq-5.15./bin/
  2. [root@localhost bin]# ./activemq stop
  3. INFO: Loading '/usr/local/apache-activemq-5.15.0/bin/env'
  4. INFO: Using java '/usr/local/java/jdk/jdk1.8.0_131/bin/java'
  5. INFO: Waiting at least seconds for regular process termination of pid '' :
  6. Java Runtime: Oracle Corporation 1.8.0_131 /usr/local/java/jdk/jdk1..0_131/jre
  7. Heap sizes: current=63360k free=62311k max=1013632k
  8. JVM args: -Xms64M -Xmx1G -Djava.util.logging.config.file=logging.properties -Djava.security.auth.login.config=/usr/local/apache-activemq-5.15./conf/login.config -Dactivemq.classpath=/usr/local/apache-activemq-5.15./conf:/usr/local/apache-activemq-5.15./../lib/: -Dactivemq.home=/usr/local/apache-activemq-5.15. -Dactivemq.base=/usr/local/apache-activemq-5.15. -Dactivemq.conf=/usr/local/apache-activemq-5.15./conf -Dactivemq.data=/usr/local/apache-activemq-5.15./data
  9. Extensions classpath:
  10. [/usr/local/apache-activemq-5.15./lib,/usr/local/apache-activemq-5.15./lib/camel,/usr/local/apache-activemq-5.15./lib/optional,/usr/local/apache-activemq-5.15./lib/web,/usr/local/apache-activemq-5.15./lib/extra]
  11. ACTIVEMQ_HOME: /usr/local/apache-activemq-5.15.
  12. ACTIVEMQ_BASE: /usr/local/apache-activemq-5.15.
  13. ACTIVEMQ_CONF: /usr/local/apache-activemq-5.15./conf
  14. ACTIVEMQ_DATA: /usr/local/apache-activemq-5.15./data
  15. ...Connecting to pid:
  16. ..Stopping broker: activemqCluster
  17. ... TERMINATED
  18. [root@localhost bin]#

发现刚才不可以访问的130可以访问了

到这里Zookeeper+ActiveMQ集群搭建好了,关于负载均衡以后更新

Zookeeper3.4.10 + ActiveMQ-5.15.0 集群搭建的更多相关文章

  1. ubuntu18.04.2 hadoop3.1.2+zookeeper3.5.5高可用完全分布式集群搭建

    ubuntu18.04.2 hadoop3.1.2+zookeeper3.5.5高可用完全分布式集群搭建 集群规划: hostname NameNode DataNode JournalNode Re ...

  2. Redis 3.0 集群搭建

    Redis 3.0 集群搭建 开启两个虚拟机 分别在两个虚拟机上开启3个Redis实例 3主3从两个虚拟机里的实例互为主备 下面分别在两个虚拟机上安装,网络设置参照codis集群的前两个主机 分别关闭 ...

  3. Redis 5.0 集群搭建

    Redis 5.0 集群搭建 单机版的 Redis 搭建 https://www.jianshu.com/p/b68e68bbd725 /usr/local/目录 mkdir redis-cluste ...

  4. Ubuntu 12.04下Hadoop 2.2.0 集群搭建(原创)

    现在大家可以跟我一起来实现Ubuntu 12.04下Hadoop 2.2.0 集群搭建,在这里我使用了两台服务器,一台作为master即namenode主机,另一台作为slave即datanode主机 ...

  5. Weblogic 10.3.6.0 集群搭建

    Weblogic 集群搭建 Oracle的Weblogic分开发者版本和生产版本,有32位和64位.一般生产版本的weblogic是64位的,安装文件是一个大小为1G多的jar包.去oracle官网上 ...

  6. hadoop2.6.0集群搭建

    p.MsoNormal { margin: 0pt; margin-bottom: .0001pt; text-align: justify; font-family: Calibri; font-s ...

  7. redis5.0.0集群搭建【实战经历】

    redis集群搭建 作者:陈土锋 时间:2020年6月2日 目录 一.环境介绍... 1 1.机器准备... 1 2.关闭防护墙和selinux. 1 3.时间同步... 1 二.Redis Clus ...

  8. Ubuntu 12.04下spark1.0.0 集群搭建(原创)

    spark1.0.0新版本的于2014-05-30正式发布啦,新的spark版本带来了很多新的特性,提供了更好的API支持,spark1.0.0增加了Spark SQL组件,增强了标准库(ML.str ...

  9. linux Redis 5.0集群搭建

    文档结构如下: Redis cluster 是redis的分布式解决方案,在3.0版本正式推出后,有效的解决了redis分布式方面的需求:当遇到单机内存,并发,流量等瓶颈是,可以采用cluster架构 ...

随机推荐

  1. mysqldump数据导出问题和客户端授权后连接失败问题

    1,使用mysqldump时报错(1064),这个是因为mysqldump版本太低与当前数据库版本不一致导致的.mysqldump: Couldn't execute 'SET OPTION SQL_ ...

  2. php 中 opendir() readdir() scandir()

    opendir(path,context)若成功,则该函数返回一个目录流,否则返回 false 以及一个 error.可以通过在函数名前加上 “@” 来隐藏 error 的输出. readdir() ...

  3. 浅谈meta viewport设置移动端自适应

    1.viewport 移动设备上的viewport是设备屏幕上用来显示网页的那部分区域,再具体一点就是浏览器上用来显示网页的那部分区域,但viewport又不局限于浏览器可视区域的大小,它可能比浏览器 ...

  4. 代码规范(RL-TOC)用更合理的方式写 JavaScript

    代码可以改变世界 不规范代码可以毁掉世界 只有先学会写规范的代码,才可以走的更远 编程语言之间有很多编程规范都是通用: 命名 不要用语言不明的缩写,不用担心名字过长,名字一定要让别人知道确切的意思; ...

  5. Safecracker-HDU1015

    题意 给你大写字母的字符串,A=1,...Z=26,以及target 问你是否有v - w^2 + x^3 - y^4 + z^5 = target 有输出字典序大的那个字符串 分析 dfs code ...

  6. 个人博客作业-Week2 (代码规范, 代码复审)

    代码规范: 1.这些规范都是官僚制度下产生的浪费大家的编程时间.影响人们开发效率, 浪费时间的东西. 编码规范它包含了代码格式,还包括了编码风格和其他规范,通常涉及:缩进.空格使用.Tab使用 注释. ...

  7. 结对项目——Core设计与实现

    写在前面:关于结对编程 结对编程我一直认为是一种非常好的合作方式,他的形式主要是由一个人负责代码编写,另一个人则在一旁即时对写下的代码进行审查,这样可以大大减少代码实现方面的错误. 这次我的结对伙伴是 ...

  8. myeclipse快捷方式汇总

    选择你要注释的那一行或多行代码,按Ctrl+/即可,取消注释也是选中之后按Ctrl+/即可. 如果你想使用的快捷键的注释是的话,那么你的快捷键是ctrl+shift+/我以前都是手动注释的,直接打// ...

  9. Spring.Net快速入门:控制翻转、依赖注入、面向切面编程

    Spring.Net主要功能: 1.IoC:控制翻转(Inversion of Control)  理解成抽象工厂翻转控制:就是创建对象的权利由开发人员自己控制New,转到了由容器来控制. 2.DI: ...

  10. Spring源码阅读学习一

    昨天抽时间阅读Spring源码,先从spring 4.x的core包开始吧,除了core和util里,首当其冲的就是asm和cglib. 要实现两个类实例之间的字段的复制功能: 多年之前用C#,因为阅 ...