Plusar集群搭建-Ubuntu20.04-Winterm

1 背景

已经部署了Pulsar集群在生产上,新项目需要用到Pulsar。对Pulsar不熟,故搭建练手

环境:Windows10+vmware+Ubuntu20.04,ssh工具使用的Winterm。

使用的是root账户,ubuntu防火墙都ufw disable了。

2 参考文档

集群搭建参考了这位大佬的方式2
https://developer.aliyun.com/article/1323937

监控搭建参考了这位大佬的内容
https://blog.csdn.net/weixin_46048207/article/details/136496809

官方文档
https://pulsar.apache.org/docs/next/getting-started-standalone/

3 资源

pulser-manager
https://mirrors.aliyun.com/apache/pulsar/pulsar-manager/pulsar-manager-0.4.0/

4 版本

java 用到了两个版本,分别是

  • jdk-17.0.14 (pulsar使用)
  • jdk1.8.0_441 (pulsar manager使用)
    pulsar 2.11.3
    zookeeper使用的内置的

5 配置服务器

首先是固定IP,不希望虚拟机重启IP就变了,修改/etc/netplan

shell 复制代码
network:
  ethernets:
    ens33:
      dhcp4: false
      addresses: [192.168.98.146/24]
      gateway4: 192.168.98.2
      nameservers:
        addresses: [8.8.8.8]
  version: 2

修改完之后记得使用如下命令生效一下

shell 复制代码
netplan apply

我这里使用了三台虚拟机,分别固定了IP,根据以下内容修改/etc/hostname

shell 复制代码
192.168.98.146 pulsar1
192.168.98.147 pulsar2
192.168.98.148 pulsar3

根据上边的配置,我们修改hostname

shell 复制代码
vi /etc/hostname

之后是允许root用户远程登录,需要修改下/etc/ssh/sshd_config,记得service ssh restart

shell 复制代码
PermitRootLogin yes

然后是建一下目标目录

shell 复制代码
mkdir -p /usr/local/package/
mkdir -p /usr/local/java/
mkdir -p /usr/local/pulsar/
mkdir -p /usr/local/pulsar-manager/

因为要使用的几个tar.gz包都比较大,为了避免每个虚拟机都要下一遍tar.gz,所以我启用了Windows的iis服务,把压缩包都放在了对应的文件夹里了。这样就可减少下载时间。

使用wget命令,当然也可以使用winterm的sftp功能。

shell 复制代码
wget http://192.168.98.1/tars/jdk-17.0.14_linux-x64_bin.tar.gz -P /usr/local/package/
tar -zxvf /usr/local/package/jdk-17.0.14_linux-x64_bin.tar.gz -C /usr/local/java/

后边都比较类似,不再赘述。

修改环境变量vim /etc/profile,添加内容后source /etc/profile让配置生效

shell 复制代码
export JAVA_HOME=/usr/local/java/jdk-17.0.14
export JRE_HOME=${JAVA_HOME}/jre  
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib  
export PATH=${JAVA_HOME}/bin:$PATH  

6 配置zookeeper

执行vim /usr/local/pulsar/apache-pulsar-2.11.3/conf/zookeeper.conf

修改对应内容

shell 复制代码
tickTime=10000
dataDir=/var/zhou/zookeeper/data
dataLogDir=/var/zhou/zookeeper/log
server.1=pulsar1:2888:3888
server.2=pulsar2:2888:3888
server.3=pulsar3:2888:3888

执行以下命令,新建对应的文件夹,注意echo后边的数字,虚拟机递增

shell 复制代码
mkdir -p /var/zhou/zookeeper/data
mkdir -p /var/zhou/zookeeper/log
echo 1 > /var/zhou/zookeeper/data/myid

启动

shell 复制代码
/usr/local/pulsar/apache-pulsar-2.11.3/bin/pulsar-daemon start zookeeper

三台虚拟机都启动后,验证下

shell 复制代码
/usr/local/pulsar/apache-pulsar-2.11.3/bin/pulsar zookeeper-shell

初始化配置数据

shell 复制代码
/usr/local/pulsar/apache-pulsar-2.11.3/bin/pulsar initialize-cluster-metadata \
--cluster pulsar-cluster \
--zookeeper pulsar1:2181 \
--configuration-store pulsar1:2181 \
--web-service-url http://pulsar1:8080,pulsar2:8080,pulsar3:8080 \
--web-service-url-tls https://pulsar1:8443,pulsar2:8443,pulsar3:8443 \
--broker-service-url pulsar://pulsar1:6650,pulsar2:6650,pulsar3:6650 \
--broker-service-url-tls pulsar+ssl://pulsar1:6651,pulsar2:6651,pulsar3:6651

7 配置bookkeeper

先建文件夹

shell 复制代码
mkdir -p /var/zhou/pulsar/data/journal
mkdir -p /var/zhou/pulsar/data/ledgers

编辑配置vim /usr/local/pulsar/apache-pulsar-2.11.3/conf/bookkeeper.conf ,并修改为对应内容

shell 复制代码
# 修改其第56行,修改本地ip地址。
advertisedAddress=pulsar1
# 修改其第39行
journalDirectory=/var/zhou/pulsar/data/journal
# 修改其第400行
ledgerDirectories=/var/zhou/pulsar/data/ledgers
# 修改其第628行
zkServers=pulsar1:2181,pulsar2:2181,pulsar3:2181
# 修改其第570行
prometheusStatsHttpPort=8100

然后启动并测试

shell 复制代码
/usr/local/pulsar/apache-pulsar-2.11.3/bin/bookkeeper shell metaformat
/usr/local/pulsar/apache-pulsar-2.11.3/bin/pulsar-daemon start bookie
/usr/local/pulsar/apache-pulsar-2.11.3/bin/bookkeeper shell bookiesanity

8 配置broker

直接修改vim /usr/local/pulsar/apache-pulsar-2.11.3/conf/broker.conf ,改为如下内容,注意主机名要配自己的hostname

shell 复制代码
# 修改其第101行,修改集群的名称。
# clusterName与前面zookeeper初始化的cluster一致
clusterName=pulsar-cluster
# 修改其第23行,配置zk集群的地址。
zookeeperServers=pulsar1:2181,pulsar2:2181,pulsar3:2181
# 修改其第26行,配置zk集群的地址。
configurationStoreServers=pulsar1:2181,pulsar2:2181,pulsar3:2181
# 修改其第47行,更改为本地主机名。
advertisedAddress=pulsar1

启动和验证集群

shell 复制代码
/usr/local/pulsar/apache-pulsar-2.11.3/bin/pulsar-daemon start broker
/usr/local/pulsar/apache-pulsar-2.11.3/bin/pulsar-admin brokers list pulsar-cluster

9 配置pulsar-manager

首先是下载和解压,注意这里IP是我本地地址

复制代码
wget http://192.168.98.1/tars/apache-pulsar-manager-0.4.0-bin.tar.gz -P /usr/local/package/
tar -zxvf /usr/local/package/apache-pulsar-manager-0.4.0-bin.tar.gz -C /usr/local/pulsar-manager/
cd /usr/local/pulsar-manager/apache-pulsar-manager-0.4.0-bin
tar -xvf pulsar-manager.tar
cp -r dist ./pulsar-manager/ui

然后是修改pulsar-manager的启动文件,在"# Increase the maximum file descriptors if we can." 上边加上JAVACMD的重新赋值

shell 复制代码
JAVACMD=/usr/local/java/jdk1.8.0_441/bin/java
# Increase the maximum file descriptors if we can.

启动

复制代码
nohup /usr/local/pulsar-manager/apache-pulsar-manager-0.4.0-bin/pulsar-manager/bin/pulsar-manager &

初始化管理员账户

shell 复制代码
CSRF_TOKEN=$(curl http://192.168.98.146:7750/pulsar-manager/csrf-token) curl \
   -H 'X-XSRF-TOKEN: $CSRF_TOKEN' \
   -H 'Cookie: XSRF-TOKEN=$CSRF_TOKEN;' \
   -H "Content-Type: application/json" \
   -X PUT http://192.168.98.146:7750/pulsar-manager/users/superuser \
   -d '{"name": "pulsar", "password": "pulsar", "description": "test", "email": "username@test.org"}'

然后访问看效果

复制代码
http://192.168.98.146:7750/ui/index.html

到此就完成了集群和管理应用的搭建。

相关推荐
吉甫作诵1 天前
Kafka 集群安装与运维实战:消费组排查、Offset 重置与副本重分配
大数据·运维·分布式·kafka·消息队列
happy_king_zi2 天前
kafka两种部署模式的区别
kafka·消息队列·sre
happy_king_zi2 天前
Kafka 3.9.2 KRaft 模式三节点集群完整部署指南
kafka·消息队列
szephyr3 天前
消息队列入门:RabbitMQ 和 Kafka 到底怎么选,什么时候不该用
后端·架构·kafka·消息队列·rabbitmq
hey you~4 天前
云客服会话数据实时同步,数据库架构怎么设计?
消息队列·数据库架构·高可用·实时同步·最终一致性·云客服·会话数据
用户531397318175 天前
[Kafka源码揭秘] 消息写入全链路:网络IO与请求入队
kafka·消息队列
hey you~7 天前
云客服多渠道统一接入,消息队列技术实现方案
kafka·消息队列·rocketmq·系统集成·云客服·多渠道接入·接口对接
滕州市燕猫虎计算机科技工作室个体工商户7 天前
RabbitMQ和RocketMQ
消息队列·mq
Lucis__8 天前
基于责任链模式的消息队列—异步处理流水线的最佳实践
linux·c++·消息队列·责任链模式·ipc
letisgo510 天前
JAVA 高级进阶10篇《消息队列实战:RocketMQ/Kafka选型与“不丢不重有序“三连解》
java·面试·kafka·消息队列·rocketmq