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": "[email protected]"}'

然后访问看效果

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

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

相关推荐
沸材2 天前
Redis——实现消息队列
数据库·redis·消息队列
RainbowSea4 天前
11. RabbitMQ 消息队列 Federation (Exchange 交换机和 Queue队列) + Shovel 同步的搭建配置
java·消息队列·rabbitmq
RainbowSea5 天前
10. RabbitMQ 负载集群的详细搭建以及“镜像队列”的搭建配置说明
java·消息队列·rabbitmq
RainbowSea5 天前
9. RabbitMQ 消息队列幂等性,优先级队列,惰性队列的详细说明
java·消息队列·rabbitmq
RainbowSea7 天前
8. RabbitMQ 消息队列 + 结合配合 Spring Boot 框架实现 “发布确认” 的功能
java·消息队列·rabbitmq
RainbowSea7 天前
7. RabbitMQ 消息队列——延时队列(Spring Boot + 安装message_exchange"延迟插件" 的详细配置说明)的详细讲解
java·消息队列·rabbitmq
RainbowSea9 天前
6. RabbitMQ 死信队列的详细操作编写
java·消息队列·rabbitmq
RainbowSea9 天前
5. RabbitMQ 消息队列中 Exchanges(交换机) 的详细说明
java·消息队列·rabbitmq
RainbowSea10 天前
4. RabbitMQ 发布确认的配置详细说明
java·消息队列·rabbitmq