2 Star 2 Fork 0

hukai/dhcc-mq

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

dhcc-mq

介绍

消息队列 springboot+activemq springboot+rabbitmq

软件架构

软件架构说明

安装教程

0. rabbitmq是基于window测试,

安装请参考,这里就不在重复:

rabbitmq安装,感谢CSDN这位作者分享

1. activeMq单机安装

    1.下载activemq安装包到服务器目录下(wget下载或者清华大学镜像下载):
        wget  https://archive.apache.org/dist/activemq/5.15.9/apache-activemq-5.15.9-bin.tar.gz
        清华大学镜像下载
        https://mirrors.tuna.tsinghua.edu.cn/apache/activemq/5.15.9/
    2.解压mq,进入下载的文件目录,使用tar命令解压文件:tar -zxvf   apache-activemq-5.15.9-bin.tar.gz
    3.启动mq,进入activemq的bin目录,启动activemq(默认管理端口号为:8161,默认服务端口号为:61616):
	cd /export/servers/activemqs/activemq-5.15.9/bin/linux-x86-64
	./activemq start

    从 ActiveMQ 5.9 开始,ActiveMQ 的集群实现方式取消了传统的 Master-Slave 方式,增加了基于 ZooKeeper + LevelDB 的 Master-Slave 实现方式,其他两种方式目录共享和数据库共享依然存在。本文采用zookeeper来管理节点实现activemq的高可用。

2. zookeeper集群安装

zookeeper安装,资源有限,只在一台机器做伪集群搭建

** 1、(清华大学镜像下载)下载并上传zookeeper-3.5.5.tar.gz到各个服务器的/usr/local/zookeepers目录,或者使用wget命令,如下**

    cd /usr/local/zookeepers
    wget http://apache.fayea.com/zookeeper/zookeeper-3.5.5/zookeeper-3.5.5.tar.gz
    tar -zxvf zookeeper-3.5.5.tar.gz

** 2、在各个服务器上解压zookeeper安装包,并按节点号对zookeeper目录重命名**

 在zookeeper-3.5.5节点目录下创建以下目录data、logs目录
 并修改conf目录下的zoo_sample.cfg文件拷贝一份,命名为zoo.cfg
    # 服务器1
    cp -r zookeeper-3.5.5 zookeeper-3.5.5_1
    # 服务器2
    cp -r zookeeper-3.5.5 zookeeper-3.5.5_2
    # 服务器3
    cp -r zookeeper-3.5.5 zookeeper-3.5.5_3

** 3、修改各个conf目录下zoo.cfg 配置文件**

cd /usr/local/zookeepers/zookeeper-3.5.5_1/conf
        # 设置内容如下:
        tickTime=2000
        initLimit=10
        syncLimit=5
        dataDir=/usr/local/zookeepers/zookeeper-3.5.5_1/data
        dataLogDir=/usr/local/zookeepers/zookeeper-3.5.5_1/logs
        clientPort=2181
        server.1=192.168.1.101:2881:3881
        server.2=192.168.1.101:2882:3882
        server.3=192.168.1.101:2883:3883
        # -----------------------------------
        cd /usr/local/zookeeper-3.5.5_2/conf
        vi zoo.cfg
        # 设置内容如下:
        tickTime=2000
        initLimit=10
        syncLimit=5
        dataDir=/usr/local/zookeepers/zookeeper-3.5.5_2/data
        dataLogDir=/usr/local/zookeepers/zookeeper-3.5.5_2/logs
        clientPort=2182
        server.1=192.168.1.101:2881:3881
        server.2=192.168.1.101:2882:3882
        server.3=192.168.1.101:2883:3883
        # -----------------------------------
        cd /usr/local/zookeeper-3.5.5_3/conf
        vi zoo.cfg
        # 设置内容如下:
        tickTime=2000
        initLimit=10
        syncLimit=5
        dataDir=/usr/local/zookeepers/zookeeper-3.5.5_3/data
        dataLogDir=/usr/local/zookeepers/zookeeper-3.5.5_3/logs
        clientPort=2183
        server.1=192.168.1.101:2881:3881
        server.2=192.168.1.101:2882:3882
        server.3=192.168.1.101:2883:3883

** 4、在dataDir=/usr/local/zookeepers/zookeeper-3.5.5_x/data下创建 myid 文件**

    vi /usr/local/zookeepers/zookeeper-3.5.5_1/data/myid #设置值为1
    vi /usr/local/zookeepers/zookeeper-3.5.5_2/data/myid #设置值为2
    vi /usr/local/zookeepers/zookeeper-3.5.5_3/data/myid #设置值为3

5、启动,进去各个bin下

    启动
    zkServer.sh start
    查看状态
    zkServer.sh status

3. ActiveMQ集群安装

下载并上传apache-activemq-5.15.9-bin.tar.gz到各个服务器的/usr/local/activemqs/目录,或者使用wget命令,如下

    cd /usr/local/
    wget wget http://archive.apache.org/dist/activemq/apache-activemq/5.15.9/apache-activemq-5.15.9-bin.tar.gz
    tar -zxvf apache-activemq-5.15.9-bin.tar.gz

解压ActiveMQ安装包,并按节点号对ActiveMQ目录重命名

# 服务器1
cp -r apache-activemq-5.15.9 activemq-5.15.9_1
# 服务器2
cp -r apache-activemq-5.15.9 activemq-5.15.9_2
# 服务器3
cp -r apache-activemq-5.15.9 activemq-5.15.9_3

配置ActiveMQ节点中配置conf/jetty.xml中的监控端口

# 服务器1
<bean id="jettyPort" class="org.apache.activemq.web.WebConsolePort" init-method="start">
        <property name="port" value="8161"/>
</bean>
#  服务器2
<bean id="jettyPort" class="org.apache.activemq.web.WebConsolePort" init-method="start">
        <property name="port" value="8162"/>
</bean>
#服务器3
<bean id="jettyPort" class="org.apache.activemq.web.WebConsolePort" init-method="start">
        <property name="port" value="8163"/>
</bean>

配置ActiveMQ节点中配置conf/activemq.xml中的监控端口 1、修改brokerName为任意名称,三个服务器一致,zookeeper才能识别它们属于同一个集群

<broker xmlns="http://activemq.apache.org/schema/core" brokerName="activemqCluster" dataDirectory="${activemq.data}">

2、persistenceAdapter配置 persistenceAdapter设置持久化方式,主要有三种方式:kahaDB(默认方式)、数据库持久化、levelDB(v5.9.0提供支持)。 本文采用levelDB来进行持久化,并使用zookeeper实现集群的高可用,配置如下:

# 服务器1
		<persistenceAdapter>
		  <replicatedLevelDB
			directory="${activemq.data}/leveldb"
			replicas="3"
			bind="tcp://0.0.0.0:62621"
			zkAddress="127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183"
			hostname="192.168.1.101"
			zkPath="/activemq/leveldb-stores"/>
		</persistenceAdapter>
# 服务器2
		<persistenceAdapter>
		  <replicatedLevelDB
			directory="${activemq.data}/leveldb"
			replicas="3"
			bind="tcp://0.0.0.0:62622"
			zkAddress="127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183"
			hostname="192.168.1.101"
			zkPath="/activemq/leveldb-stores"/>
		</persistenceAdapter>
# 服务器3
		<persistenceAdapter>
		  <replicatedLevelDB
			directory="${activemq.data}/leveldb"
			replicas="3"
			bind="tcp://0.0.0.0:62622"
			zkAddress="127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183"
			hostname="192.168.1.101"
			zkPath="/activemq/leveldb-stores"/>
		</persistenceAdapter>

3、修改各节点的消息端口

服务器1:
<transportConnector name="openwire" uri="tcp://192.168.1.101:51511?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
服务器2:
<transportConnector name="openwire" uri="tcp://192.168.1.101:51511?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
服务器3:
<transportConnector name="openwire" uri="tcp://192.168.1.101:51511?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>

启动各个节点

cd /usr/local/activemqs/activemq-5.15.9_1/bin/linux-x86-64
activemq start
cd /usr/local/activemqs/activemq-5.15.9_2/bin/linux-x86-64
activemq start
cd /usr/local/activemqs/activemq-5.15.9_3/bin/linux-x86-64
activemq start

查看日志


tail -f /usr/local/activemqs/activemq-5.15.9_1/data/activemq.log

tail -f /usr/local/activemqs/activemq-5.15.9_2/data/activemq.log

tail -f /usr/local/activemqs/activemq-5.15.9_3/data/activemq.log

使用说明

说明1:本文采用的是官网中提到的三种集群方案中的<可复制的LevelDB>,其它方式请参考官网。
说明2:此部署方案继承了Zookeeper的特性,即需要有大于一半机器存活,则集群状态正常
说明3:由于ActiveMQ 的客户端只能访问Master的Broker,其他处于Slave的Broker不能访问。所以客户端连接Broker应该使用failover协议。
即:broker-url: failover:(tcp://192.168.1.101:51511,tcp://192.168.1.101:51512,tcp://192.168.1.101:51513)   
说明4:三个节点的管理地址:
http://192.168.1.101:8161/admin/index.jsp
http://192.168.1.101:8162/admin/index.jsp
http://192.168.1.101:8163/admin/index.jsp
因为使用zookeeper做负载均衡,三台只有一台是master,其他两台处于等待状态,所以只有其中一台提供服务,但一旦这台服务器宕机以后,会有另外一台顶替上来,所以其他几个ip地址是打不开的,只有一台能打开。

2. kafka单机安装

1、Zookeeper单机安装 2、kafka安装

1、下载
    kafka的下载地址:http://kafka.apache.org/downloads(基于:kafka_2.11-2.1.1版本演示)
2、解压(kafka目录kafka_2.11-2.1.1)
    tar -zxvf kafka_2.11-2.1.1.tgz
3、配置(kafka目录下)
    vi ./config/server.properties
    listeners=PLAINTEXT://:9092 
    #放开并修改成listeners=PLAINTEXT://192.168.1.101:9092,192.168.1.101为我部署的IP
    zookeeper.connect=localhost:2181 
    改成zookeeper.connect=192.168.1.101:2181 #这里主要是为了在实际zookeeper中更好的使用
4、启动(kafka目录下)
   ./bin/kafka-server-start.sh ./config/server.properties
5、测试(kafka目录下)
    ./bin/kafka-console-producer.sh --broker-list 192.168.1.101:9092 --topic kafka_kill
    ./bin/kafka-console-consumer.sh --zookeeper 192.168.1.101:2181 --topic kafka_kill --from-beginning
 

参与贡献

  1. Fork 本仓库
  2. 新建 Feat_xxx 分支
  3. 提交代码
  4. 新建 Pull Request

码云特技

  1. 使用 Readme_XXX.md 来支持不同的语言,例如 Readme_en.md, Readme_zh.md
  2. 码云官方博客 blog.gitee.com
  3. 你可以 https://gitee.com/explore 这个地址来了解码云上的优秀开源项目
  4. GVP 全称是码云最有价值开源项目,是码云综合评定出的优秀开源项目
  5. 码云官方提供的使用手册 https://gitee.com/help
  6. 码云封面人物是一档用来展示码云会员风采的栏目 https://gitee.com/gitee-stars/

空文件

简介

消息队列 springboot+activemq springboot+rabbitmq 展开 收起
Java
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Java
1
https://gitee.com/cn_hk/dhcc-mq.git
git@gitee.com:cn_hk/dhcc-mq.git
cn_hk
dhcc-mq
dhcc-mq
master

搜索帮助

344bd9b3 5694891 D2dac590 5694891