RabbitMQ、zookeeper、kafka、ActiveMQ安装与配置
1. RabbitMQ
RabbitMQ 采用 Erlang 语言开发,Erlang 语言由 Ericson 设计,Erlang 在分布式编程和故障恢复方面表现出色,电信领域被广泛使用。https://www.erlang.org/
1.1 包安装
#!/bin/bash sudo apt-get install curl gnupg apt-transport-https -y curl -1sLf "https://keys.openpgp.org/vks/v1/by-fingerprint/0A9AF2115F4687BD29803A206B73A36E6026DFCA" | sudo gpg --dearmor | sudo tee /usr/share/keyrings/com.rabbitmq.team.gpg > /dev/null curl -1sLf "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0xf77f1eda57ebb1cc" | sudo gpg --dearmor | sudo tee /usr/share/keyrings/net.launchpad.ppa.rabbitmq.erlang.gpg > /dev/null curl -1sLf "https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey" | sudo gpg --dearmor | sudo tee /usr/share/keyrings/io.packagecloud.rabbitmq.gpg > /dev/null sudo tee /etc/apt/sources.list.d/rabbitmq.list <<EOF deb [signed-by=/usr/share/keyrings/net.launchpad.ppa.rabbitmq.erlang.gpg] http://ppa.launchpad.net/rabbitmq/rabbitmq-erlang/ubuntu bionic main deb-src [signed-by=/usr/share/keyrings/net.launchpad.ppa.rabbitmq.erlang.gpg] http://ppa.launchpad.net/rabbitmq/rabbitmq-erlang/ubuntu bionic main deb [signed-by=/usr/share/keyrings/io.packagecloud.rabbitmq.gpg] https://packagecloud.io/rabbitmq/rabbitmq-server/ubuntu/ bionic main deb-src [signed-by=/usr/share/keyrings/io.packagecloud.rabbitmq.gpg] https://packagecloud.io/rabbitmq/rabbitmq-server/ubuntu/ bionic main EOF sudo apt-get update -y sudo apt-get install -y erlang-base \ erlang-asn1 erlang-crypto erlang-eldap erlang-ftp erlang-inets \ erlang-mnesia erlang-os-mon erlang-parsetools erlang-public-key \ erlang-runtime-tools erlang-snmp erlang-ssl \ erlang-syntax-tools erlang-tftp erlang-tools erlang-xmerl sudo apt-get install rabbitmq-server -y --fix-missing systemctl enable --now rabbitmq-server
#开启 web 界面管理插件
rabbitmq-plugins enable rabbitmq_management
登陆 web 管理界面: rabbitmq 从 3.3.0 开始禁止使用 guest/guest 权限通过除 localhost 外的访问,直接访问报错 #rabbitmqctl add_user jack 123456 #创建用户 #rabbitmqctl set_user_tags jack administrator #授权 或者 # vim /usr/lib/rabbitmq/lib/rabbitmq_server-3.8.3/ebin/rabbit.app 39 {loopback_users, []}, #删除被禁止登陆的 guest 账户 # systemctl restart rabbitmq-server.service #重启 rabbitmq 服务 访问web http://serverIP:15672
1.2 RabbitMQ 集群部署
Ubuntu 1804 安装集群版 RabbitMQ: 1)集群环境,三台服务器,具体 IP 如下: 172.31.0.105 172.31.0.106 172.31.0.107 2)各 MQ 服务器配置本地主机名解析: 172.31.0.105 mq-server1 mq-server1.magedu.net 172.31.0.106 mq-server2 mq-server2.magedu.net 172.31.0.107 mq-server3 mq-server3.magedu.net 3)各服务器安装 RabbitMQ: 4)启动 RabbitMQ 服务: root@mq-server1:~# systemctl enable --now rabbitmq-server root@mq-server2:~# systemctl enable --now rabbitmq-server root@mq-server3:~# systemctl enable --now rabbitmq-server 5)同步.erlang.cookie 各服务器关闭 RabbitMQ: root@mq-server1:~# systemctl stop rabbitmq-server root@mq-server2:~# systemctl stop rabbitmq-server root@mq-server3:~# systemctl stop rabbitmq-server 在 mq-server1 同步.erlang.cookie 至其他两台服务器: # scp /var/lib/rabbitmq/.erlang.cookie 172.31.0.106:/var/lib/rabbitmq/.erlang.cookie # scp /var/lib/rabbitmq/.erlang.cookie 172.31.0.107:/var/lib/rabbitmq/.erlang.cookie 6)各服务器启动 RabbitMQ:
# systemctl start rabbitmq-server 7)查看当前集群状态: root@mq-server1:~# rabbitmqctl cluster_status 8)创建 RabbitMQ 集群: 在 mq-server1 作为内存节点添加到 mq-server3,并作为内存节点,在 mq-server1 执行以下命令: root@mq-server1:~# rabbitmqctl stop_app #停止 app 服务 root@mq-server1:~# rabbitmqctl reset #清空元数据 #将 rabbitmq-server1 添加到集群当中,并成为内存节点,不加--ram 默认是磁盘节点 root@mq-server1:~# rabbitmqctl join_cluster rabbit@mq-server3 --ram root@mq-server1:~# rabbitmqctl start_app #启动 app 服务 在 mq-server2 作为内存节点添加到 mq-server3,并作为内存节点,在 mq-server2执行以下命令: root@mq-server2:~# rabbitmqctl stop_app root@mq-server2:~# rabbitmqctl reset root@mq-server2:~# rabbitmqctl join_cluster rabbit@mq-server3 --ram root@mq-server2:~# rabbitmqctl start_app 9)将集群设置为镜像模式: 只要在其中任意一台节点执行以下命令一次即可: root@mq-server1:~# rabbitmqctl set_policy ha-all "#" '{"ha-mode":"all"}' 10)验证当前集群状态: rabbitmqctl cluster_status 11)各服务器启动 web 插件: 不启用 web 插件的 rabbitmq 服务器,会在 web 节点提示节点统计信息不可用 (Node statistics not available) root@mq-server1:~# rabbitmq-plugins enable rabbitmq_management rabbitmqctl add_user jack 123456 #创建用户 rabbitmqctl set_user_tags jack administrator #授权 root@mq-server2:~# rabbitmq-plugins enable rabbitmq_management root@mq-server3:~# rabbitmq-plugins enable rabbitmq_management
1.3 RabbitMQ 常用命令
#添加账户 jack 密码为 123456 root@mq-server1:~# rabbitmqctl add_user jack 123456 #更改用户密码 root@mq-server1:~# rabbitmqctl change_password jack 654321 #设置 jack 用户对 magedu 的 vhost 有读写权限,三个点为配置正则、读和写 root@mq-server1:~# rabbitmqctl set_permissions -p magedu jack ".*" ".*" ".*" #创建 vhost root@mq-server1:~# rabbitmqctl add_vhost magedu #列出所有 vhost root@mq-server1:~# rabbitmqctl list_vhosts #列出所有队列 root@mq-server1:~# rabbitmqctl list_queues #删除指定 vhost root@mq-server1:~# rabbitmqctl delete_vhost magedu
1.4 二进制安装 rabbitmq
https://www.rabbitmq.com/install-generic-unix.html #rabbitmq安装包 #erlang源码包 https://github.com/erlang/otp/releases/download/OTP-24.2/otp_src_24.2.tar.gz #编译安装erlang cd /usr/local/src wget https://github.com/erlang/otp/releases/download/OTP-24.2/otp_src_24.2.tar.gz tar xvf otp_src_24.2.tar.gz cd otp_src_24.2 apt install ncurses-dev socat make ./configure --prifix=/apps/erlang&& make && make install ln -sv /apps/erlang/bin/* /usr/bin/ #二进制安装rabbitmq cd /usr/local/src tar xvf rabbitmq-server-generic-unix-3.9.12.tar.xz -C /apps/ useradd -m -r -s /bin/bash rabbitmq #-m 创建家目录,-r系统用户 , chown rabbitmq.rabbitmq /apps/rabbitmq/ -R ln -sv /apps/rabbitmq_server-3.9.12/sbin/* /usr/bin/
准备service文件 /lib/systemd/system/rabbitmq-server.service 注:主机名不能改,会导致rabbit不能启动
#cat /lib/systemd/system/rabbitmq-server.service [Unit] Description=RabbitMQ broker After=network.target epmd@0.0.0.0.socket Wants=network.target epmd@0.0.0.0.socket [Service] Type=notify User=rabbitmq Group=rabbitmq UMask=0027 NotifyAccess=all TimeoutStartSec=600 LimitNOFILE=32768 Restart=on-failure RestartSec=10 WorkingDirectory=/apps/rabbitmq_server-3.9.12/var/lib/rabbitmq ExecStart=/apps/rabbitmq_server-3.9.12/sbin/rabbitmq-server ExecStop=/apps/rabbitmq_server-3.9.12/sbin/rabbitmqctl shutdown SuccessExitStatus=69 [Install] WantedBy=multi-user.target
2. ZooKeeper
ZooKeeper 是一个分布式服务框架,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:命名服务、状态同步、配置中心、集群管理等。
2.1 ZooKeeper单机安装:
配置 java 环境: https://zookeeper.apache.org/doc/r3.4.14/zookeeperAdmin.html#sc_requiredSoftware #官方依赖介绍 # apt install openjdk-8-jdk # java -version openjdk version "1.8.0_222" 部署 ZooKeeper: https://archive.apache.org/dist/zookeeper/ #官网下载地址 # mkdir /apps #cd /apps #wget https://archive.apache.org/dist/zookeeper/zookeeper-3.5.8/apache-zookeeper-3.5.8-bin.tar.gz # tar xvf apache-zookeeper-3.5.8-bin.tar.gz #cd apache-zookeeper-3.5.8-bin # cd conf/ #mkdir /apps/apache-zookeeper-3.5.8-bin/data # cp zoo_sample.cfg zoo.cfg ## vim zoo.cfg #修改配置 tickTime=2000 initLimit=10 syncLimit=5 dataDir=/apps/apache-zookeeper-3.5.8-bin/data #修改此项 clientPort=2181 # /apps/apache-zookeeper-3.5.8-bin/bin/zkServer.sh start #启动ZooKeeper服务 # ss -ntl #会查看到监听在2181端口
验证 Zookeeper 状态:
# /apps/apache-zookeeper-3.5.8-bin/bin/zkServer.sh status
Mode: standalone #单机模式
# /apps/apache-zookeeper-3.5.8-bin/bin/zkCli.sh #登录本机客户端
或 windows安装好JDK后,运行Zoolnspector进行连接查看
2.2 ZooKeeper 集群
各 zookeeper 服务器都配置 java 环境并部署 zookeeper 集群
服务器环境:
Zk-node1:172.18.0.101
Zk-node2:172.18.0.102
Zk-node3:172.18.0.103
zk 节点 1 部署过程:
官方文档:https://zookeeper.apache.org/doc/r3.4.14/zookeeperAdmin.html # apt install openjdk-8-jdk # java –version #验证 JDK 版本 openjdk version "1.8.0_222" # pwd /usr/local/src # tar xf zookeeper-3.4.14.tar.gz # ln -sv /usr/local/src/zookeeper-3.4.14 /usr/local/zookeeper #解决并对 zookeeper做软连接 '/usr/local/zookeeper' -> '/usr/local/src/zookeeper-3.4.14' # cd /usr/local/zookeeper/conf/ # cp zoo_sample.cfg zoo.cfg #基于模板配置文件生成配置文件 # mkdir /usr/local/zookeeper/data #创建数据目录 # grep -v "^#" /usr/local/zookeeper/conf/zoo.cfg #配置文件内容 tickTime=2000 #服务器与服务器之间的单次心跳检测时间间隔,单位为毫秒 initLimit=10 #集群中 leader 服务器与 follower 服务器初始连接心跳次数,即多少个 2000 毫秒 syncLimit=5 # leader 与 follower 之间连接完成之后,后期检测发送和应答的心跳次数,如果该 follower 在设置的时间内(5*2000)不能与 leader 进行通信,那么此 follower 将被视为不可用。 dataDir=/usr/local/zookeeper/data #自定义的 zookeeper 保存数据的目录 clientPort=2181 #客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求 maxClientCnxns=4096 #单个客户端 IP 可以和 zookeeper 保持的连接数 autopurge.snapRetainCount=128 #3.4.0 中的新增功能:启用后,ZooKeeper 自动清除功能会将 autopurge.snapRetainCount 最新快照和相应的事务日志分别保留在 dataDir 和 dataLogDir 中,并删除其余部分,默认值为 3。最小值为 3。 autopurge.purgeInterval=1 # 3.4.0 及之后版本,ZK 提供了自动清理日志和快照文件的功能,这个参数指定了清理频率,单位是小时,需要配置一个 1 或 更大的整数,默认是 0,表示不开启自动清理功能 server.1=172.18.0.101:2888:3888 # server.服务器编号=服务器 IP:LF 数据同步端口:LF 选举端口 server.2=172.18.0.102:2888:3888 server.3=172.18.0.103:2888:3888 # echo "1" > /usr/local/zookeeper/data/myid #自己的集群 id
zk 节点 2 部署过程:
# apt install openjdk-8-jdk # java -version openjdk version "1.8.0_222" # pwd /usr/local/src # tar xf zookeeper-3.4.14.tar.gz # ln -sv /usr/local/src/zookeeper-3.4.14 /usr/local/zookeeper '/usr/local/zookeeper' -> '/usr/local/src/zookeeper-3.4.14' # cd /usr/local/zookeeper/conf/ # cp zoo_sample.cfg zoo.cfg # mkdir /usr/local/zookeeper/data # grep -v "^#" /usr/local/zookeeper/conf/zoo.cfg tickTime=2000 initLimit=10 syncLimit=5 dataDir=/usr/local/zookeeper/data clientPort=2181 maxClientCnxns=4096 autopurge.snapRetainCount=128 autopurge.purgeInterval=1 server.1=172.18.0.101:2888:3888 server.2=172.18.0.102:2888:3888 server.3=172.18.0.103:2888:3888 # echo "2" > /usr/local/zookeeper/data/myid
zk 节点 3 部署过程:
同节点2配置一样,就是myid不一样
# apt install openjdk-8-jdk # java -version openjdk version "1.8.0_222" # pwd /usr/local/src # tar xf zookeeper-3.4.14.tar.gz # ln -sv /usr/local/src/zookeeper-3.4.14 /usr/local/zookeeper '/usr/local/zookeeper' -> '/usr/local/src/zookeeper-3.4.14' # cd /usr/local/zookeeper/conf/ # cp zoo_sample.cfg zoo.cfg # mkdir /usr/local/zookeeper/data #数据目录 # grep -v "^#" /usr/local/zookeeper/conf/zoo.cfg #配置文件 tickTime=2000 initLimit=10 syncLimit=5 dataDir=/usr/local/zookeeper/data clientPort=2181 maxClientCnxns=4096 autopurge.snapRetainCount=128 autopurge.purgeInterval=1 server.1=172.18.0.101:2888:3888 server.2=172.18.0.102:2888:3888 server.3=172.18.0.103:2888:3888 # echo "3" > /usr/local/zookeeper/data/myid #当前节点 id
各服务器启动 zookeeper:
/usr/local/zookeeper/bin/zkServer.sh start
验证 zookeeper 集群状态:
1:zk 节点 1 验证 zookeeper: # /usr/local/zookeeper/bin/zkServer.sh status ZooKeeper JMX enabled by default Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg Mode: follower 2:zk 节点 2 验证 zookeeper: # /usr/local/zookeeper/bin/zkServer.sh status ZooKeeper JMX enabled by default Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg Mode: leader 3:zk 节点 3 验证 zookeeper: # /usr/local/zookeeper/bin/zkServer.sh status ZooKeeper JMX enabled by default Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg Mode: follower
2.3 zookeeper 集群选举过程
1:节点角色状态:
LOOKING:寻找 Leader 状态,处于该状态需要进入选举流程
LEADING:领导者状态,处于该状态的节点说明是角色已经是 Leader
FOLLOWING:跟随者状态,表示 Leader 已经选举出来,当前节点角色是follower
OBSERVER:观察者状态,表明当前节点角色是 observer
2:选举 ID:
ZXID(zookeeper transaction id):每个改变 Zookeeper 状态的操作都会形成一个对应的 zxid。
myid:服务器的唯一标识(SID),通过配置 myid 文件指定,集群中唯一。
3:leader 选举过程:
当集群中的 zookeeper 节点启动以后,会根据配置文件中指定的 zookeeper 节点
地址进行 leader 选择操作,过程如下:
1) 每个 zookeeper 都会发出投票,由于是第一次选举 leader,因此每个节点都会把自己当做 leader 角色进行选举,每个 zookeeper 的投票中都会包含自己
的 myid 和 zxid,此时 zookeeper 1 的投票为 myid 为 1,初始 zxid 有一个初始值,后期会随着数据更新而自动变化,zookeeper2 的投票为 myid 为 2,初
始 zxid 为初始生成的值。
2) 每个节点接受并检查对方的投票信息,比如投票时间、是否状态为 LOOKING状态的投票。
3) 对比投票,优先检查 xvid,如果 xvid 不一样则 xvid 大的为 leader,如果 xvid相同则继续对比 myid,myid 大的一方为 leader。
成为 Leader 的必要条件: Leader 要具有最高的 zxid;当集群的规模是 n 时,集群中大多数的机器(至少 n/2+1)得到响应并 follow 选出的 Leader。
心跳机制:Leader 与 Follower 利用 PING 来感知对方的是否存活,当 Leader 无法响应 PING 时,将重新发起 Leader 选举。
2.4 安装zookeeper客户端ZooInspector
客户端编译:
apt install openjdk-11-jdk apt install maven apt install git cd /opt git clone https://github.com/zzhang5/zooinspector.git # cd zooinspector/ # mvn clean package
maven打包zooinspector如果报错 [ERROR] Source option 5 is no longer supported. Use 6 or later. [ERROR] Target option 1.5 is no longer supported. Use 1.6 or later. 错误原因: 报这个错是因为你的本地开发jdk版本比你pom文件默认版本用的高 在自己工程的pom文件下添加如下配置信息 #vim /opt/zooinspector/pom.xml <configuration> <source>11</source> #修改为JDK11 <target>11</target> #修改为JDK11 </configuration>
Linux 客户端使用:
# chmod +x target/zooinspector-pkg/bin/zooinspector.sh # target/zooinspector-pkg/bin/zooinspector.sh # 需打开Xmanager # xhell修改,打开属性ALT+P-->隧道-->转发X11到X DISPLAY
windows 客户端使用:
将linux里编译好的包,整个目录复制到windows 的D:\zookeeper新建文件夹下
#安装windows的JDK
#双击运行D:\zookeeper\zooinspector\target\zooinspector-pkg\bin\zooinspector.bat
3. kafka
Kafka 被称为下一代分布式消息系统,由 scala 和 Java 编写,是非营利性组织ASF(Apache Software Foundation,简称为 ASF)基金会中的一个开源项目,
比如HTTP Server、Hadoop、ActiveMQ、Tomcat 等开源软件都属于 Apache 基金会的开源软件,类似的消息系统还有 RbbitMQ、ActiveMQ、ZeroMQ。
Kafka®用于构建实时数据管道和流应用程序。 它具有水平可伸缩性,容错性,快速性,可在数千家公司中投入生产。
kafka 最主要的优势是其具备分布式功能、并可以结合 zookeeper 可以实现动态扩容,Kafka 是一种高吞吐量的分布式发布订阅消息系统。
kafka 通过 O(1)的磁盘数据结构提供消息的持久化,这种结构对于即使数以 TB的消息存储也能够保持长时间的稳定性能。
高吞吐量:即使是非常普通的硬件 Kafka 也可以支持每秒数百万的消息。
支持通过 Kafka 服务器分区消息。
支持 Hadoop 并行数据加载。
3.1 二进制部署kafka
部署三台服务器的高可用 kafka 环境。
部署环境:
Server1:172.18.0.101
Server2:172.18.0.102
Server3:172.18.0.103
下载地址 :http://kafka.apache.org/downloads
#版本格式 kafka_scala 版本_kafka 版本
二进制下载Binary downloads: Scala 2.12 - kafka_2.12-3.1.0.tgz # scala 版本 2.12
3.1.1kafka 节点 1:
# pwd /usr/local/src #tar xvf kafka_2.12-2.3.1.tgz # ln -sv /usr/local/src/kafka_2.12-2.3.1 /usr/local/kafka '/usr/local/kafka' -> '/usr/local/src/kafka_2.12-2.3.1' # mkdir /usr/local/kafka/kafka-logs #创建数据目录 # cd /usr/local/kafka/config/ #vim server.properties #修改kafka主配置文件 21 broker.id=1 #每个 broker 在集群中的唯一标识,正整数。 31 listeners=PLAINTEXT://172.18.0.101:9092 #监听地址,一般为自己本机的IP地址 60 log.dirs=/usr/local/kafka/kafka-logs #kakfa 用于保存数据的目录,所有的消息都会存储在该目录当中 65 num.partitions=3 #设置创建新的 topic 默认分区数量 103 log.retention.hours=168 #设置 kafka 中消息保留时间,默认为 168 小时即 7天 #zookeeper.connect 指定连接的 zk 的地址,zk 中存储了 broker 的元数据信息,格式如下: 123 zookeeper.connect=172.18.0.101:2181,172.18.0.102:2181,172.18.0.103:2181 126 zookeeper.connection.timeout.ms=6000 #设置连接 zookeeper 的超时时间,默认 6 秒钟
3.1.2 kafka 节点 2:
# pwd /usr/local/src # ln -sv /usr/local/src/kafka_2.12-2.3.1 /usr/local/kafka '/usr/local/kafka' -> '/usr/local/src/kafka_2.12-2.3.1' # cd /usr/local/kafka/config/ 21 broker.id=2 31 listeners=PLAINTEXT://172.18.0.102:9092 60 log.dirs=/usr/local/kafka/kafka-logs 65 num.partitions=1 103 log.retention.hours=168 123 zookeeper.connect=172.18.0.101:2181,172.18.0.102:2181,172.18.0.103:2181 126 zookeeper.connection.timeout.ms=6000
3.1.3 kafka 节点 3:
kafka 节点 3: # pwd /usr/local/src # ln -sv /usr/local/src/kafka_2.12-2.3.1 /usr/local/kafka '/usr/local/kafka' -> '/usr/local/src/kafka_2.12-2.3.1' # cd /usr/local/kafka/config/ 21 broker.id=3 31 listeners=PLAINTEXT://172.18.0.103:9092 60 log.dirs=/usr/local/kafka/kafka-logs 65 num.partitions=1 103 log.retention.hours=168 123 zookeeper.connect=172.18.0.101:2181,172.18.0.102:2181,172.18.0.103:2181 126 zookeeper.connection.timeout.ms=6000
3.1.4 节点 1 /2/3启动 kafka:
# mkdir /usr/local/kafka/kafka-logs #创建数据目录
# /usr/local/kafka/bin/kafka-server-start.sh -daemon /usr/local/kafka/config/server.properties #以守护进程启动
3.2 验证 zookeeper 中kafka 元数据:
1、Broker 依赖于 Zookeeper,每个 Broker 的 id 和 Topic、Partition 这些元数据信息都会写入 Zookeeper 的 ZNode 节点中; 2、Consumer 依赖于 Zookeeper,Consumer 在消费消息时,每消费完一条消息,会将产生的 offset 保存到 Zookeeper 中,下次消费在当前 offset 往后继续消费; ps:kafka0.9 之前 Consumer 的 offset 存储在 Zookeeper 中,kafka0,9 以后 offset存储在本地。 3、Partition 依赖于 Zookeeper,Partition 完成 Replication 备份后,选举出一个Leader,这个是依托于 Zookeeper 的选举机制实现的;

3.2.1 测试 kafka 读写数据:
创建 topic: 创建名为magedu,partitions(分区)为 3,replication(每个分区的副本数/每个分区的分区因子)为 3 的 topic(主题): 在任意 kafaka 服务器操作: #/usr/local/kafka/bin/kafka-topics.sh --create --zookeeper 172.18.0.101:2181,172.18.0.102:2181,172.18.0.103:2181 --partitions 3 --replication-factor 3 --topic magedu
3.2.2 验证 topic:
状态说明:magedu 有三个分区分别为0、1、2,分区0的leader是3(broker.id),分区 0 有三个副本,并且状态都为 lsr(ln-sync,表示可以参加选举成为 leader)。

3.2.3 获取所有 topic:
# /usr/local/kafka/bin/kafka-topics.sh --list --zookeeper

3.2.4 安装kafka tool windows客户端

登录kafka tool 客户端

:测试发送消息:





:删除 topic:



kafka 总结:

4. ActiveMQ 【不常用】
4.1:ActiveMQ 介绍:
4.2 ActiveMQ 单机安装:
1):配置 java 环境: ActiveMQ 依赖于 java 环境,因此要先配置 java # apt install openjdk-8-jdk # java -version openjdk version "1.8.0_222" OpenJDK Runtime Environment (build 1.8.0_222-8u222-b10-1ubuntu1~18.04.1-b10) OpenJDK 64-Bit Server VM (build 25.222-b10, mixed mode) 2):部署并启动 ActiveMQ: # tar xvf apache-activemq-5.15.10-bin.tar.gz # ln -sv /usr/local/src/apache-activemq-5.15.10 /usr/local/activemq # cd /usr/local/activemq # /usr/local/activemq/bin/linux-x86-64/activemq start Starting ActiveMQ Broker...


登录 ActiveMQ Web 界面:


RocketMQ:
阿里开源基于 Java 开发的消息队列:http://jm.taobao.org/tags/ApacheRocketMQ/,已经贡献给 Apache 基金会
https://rocketmq.apache.org/
https://github.com/apache/rocketmq
https://github.com/apache/rocketmq/tree/master/docs/cn
https://rocketmq.apache.org/dowloading/releases/ #下载地址

浙公网安备 33010602011771号