微信公众号 多台服务器,在多台 Linux 服务器上搭建 Pulsar 集群

作者:高天赐

编辑:Irene

Pulsar 是一个支持多租户的、高性能的消息中间件。上一篇我们介绍了如何在 Mac 上搭建 Pulsar 集群,本文详细介绍如何在 3 台 Linux 服务器上搭建 Pulsar 集群。

一、准备资源

一台主机(本文以 MacOS 为例)。

3 台 Linux 裸机服务器,配置 4G,2 核。

JDK 8 运行环境。

下载 Pulsar 最新版本安装包。

二、集群组成说明

1.  搭建 Pulsar 集群至少需要 3 个组件:ZooKeeper 集群、BookKeeper 集群和 broker 集群(Broker 是 Pulsar 的自身实例)。这三个集群组件如下:

ZooKeeper 集群(3 个 ZooKeeper 节点组成)

bookie 集群(也称为 BookKeeper 集群,3 个 BookKeeper 节点组成)

broker 集群(3 个 Pulsar 节点组成)

2.  Pulsar 的安装包已包含了搭建集群所需的各个组件库。无需单独下载 ZooKeeper 安装包和 BookKeeper 安装包。

3.  3 台 Linux 服务器 IP 分别为 10.0.100.60,10.0.100.70 和 10.0.100.80。

如果是在内网测试环境搭建集群,为了避免防火墙造成端口开启繁琐,可以关闭服务器防火墙。

三、安装 JDK

在 3 台 Linux 裸机服务器上安装 JDK(要求版本不低于 JDK 8)。

下载 JDK。

把安装包上传至一台 Linux 服务器中。例如:/home/admin/jdk-8u201-linux-x64.tar.gz。

用如下命令新建 java 文件夹,把 JDK 安装包(jdk-8u201-linux-x64.tar.gz)解压到该文件夹中。

cd /usrsudo -u root mkdir javacp /home/admin/jdk-8u201-linux-x64.tar.gz  /usr/java/

cd java/tar -zxvf jdk-8u201-linux-x64.tar.gz

4.  编辑配置文件,配置环境变量。

# 编辑配置文件

vim /etc/profile

# 配置文件中添加以下配置信息JAVA_HOME=/usr/java/jdk1.8.0_201CLASSPATH=$JAVA_HOME/lib/PATH=$PATH:$JAVA_HOME/binexport PATH JAVA_HOME CLASSPATH

5.  让配置文件生效。

source /etc/profile

6.  检查 JDK 是否安装成功。若显示 JDK 版本,则安装成功。

java -version

4651e675d12964098413ccae93995859.png

按照以上步骤,在另外两台 Linux 服务器上安装 JDK。

四、创建集群环境

1.  在 Linux 服务器上创建三个文件夹:zookeepers、brokers、bookies。

# 在工作目录下创建三个文件夹:zookeepers、brokers、bookies

cd /home/adminmkdir zookeepersmkdir brokersmkdir bookies

2.  把下载的 Pulsar 安装包上传到 Linux 服务器,解压安装包。

# 解压安装包

tar -zxvf apache-pulsar-2.x.x-bin.tar.gz

3.  把解压后的文件分别复制到 3 个文件夹。

# 把解压后的文件分别复制到3个文件夹

cp -ir  /home/admin/apache-pulsar-2.x.x/*    /home/admin/zookeepers/cp -ir  /home/admin/apache-pulsar-2.x.x/*     /home/admin/brokers/cp -ir  /home/admin/apache-pulsar-2.x.x/*     /home/admin/bookies/

按照以上步骤,在另外两台 Linux 服务器上创建集群环境。

五、配置部署 ZooKeeper 集群

1.   新建文件夹,并写入配置内容。

# 新建文件目录

mkdir -p data/zookeeper

# 新建文件 myid,写入 1

echo 1 > data/zookeeper/myid

3c218e582bbd5212c81aae9e28a80efd.png

注意另外两台服务器的 myid 文件内容分别写入 2 和 3。

# 服务器 2

mkdir -p data/zookeeperecho 2 > data/zookeeper/myid

# 服务器 3

mkdir -p data/zookeeperecho 3 > data/zookeeper/myid

2.  配置 zookeeper.conf 文件。

dafd463325f31fdaaa5e5a2be53acb92.png

# 指定 dataDir 目录dataDir=/home/admin/data/zookeeper

# zookeeper 节点地址

server.1=10.0.100.60:2888:3888server.2=10.0.100.70:2888:3888server.3=10.0.100.80:2888:3888

注意在另外两台服务器上,对 zookeeper.conf 文件进行完全相同的配置。

3.  在 zookeepers 目录中,执行启动命令。

# 进入 zookeepers 目录

cd /home/admin/zookeepers

# 执行后台运行命令

bin/pulsar-daemon start zookeeper

4.  验证 ZooKeeper 节点是否启动成功。

# 进入 zookeepers 目录

cd /home/admin/zookeepers

# 执行 zookeeper 客户端连接命令

bin/pulsar zookeeper-shell

d0ccaf82a5d5f49e8933dece4fc8ca5d.png

注意Enter 键进入命令行界面后,可完全使用 ZooKeeper 的各种命令,如 ls、get 等命令。使用 quit 命令退出命令行界面。

5.  按照以上步骤,在另外两台服务器上部署 ZooKeeper 节点。

6.  在任一个 ZooKeeper 节点,初始化集群元数据。

# 进入 zookeepers 目录

cd /home/admin/zookeepers

# 执行命令初始化集群元数据

bin/pulsar initialize-cluster-metadata \--cluster pulsar-cluster \--zookeeper 10.0.100.60:2181 \--configuration-store 10.0.100.60:2181 \--web-service-url http://pulsar.cluster.com:8080 \--web-service-url-tls https://pulsar.cluster.com:8443 \--broker-service-url pulsar://pulsar.cluster.com:6650 \--broker-service-url-tls pulsar+ssl://pulsar.cluster.com:6651

dc744295a1471eac66b156b426335493.png

7.  查看集群元数据是否初始化成功。

# 进入 zookeepers 目录

cd /home/admin/zookeepers

# 执行 ZooKeeper 客户端连接命令

bin/pulsar zookeeper-shell

# Enter键,使用 ZooKeeper 命令查看 ls /

# 看到如下图所内容,表示初始化成功

1c1ad80757ca4dc1dd48e670d3062537.png

六、配置部署 BookKeeper 集群

1.  修改配置文件 bookkeeper.conf。

# 进入bookie 配置文件目录

cd /home/admin/bookies/conf

# 编辑 bookkeeper.conf 文件

vim bookkeeper.conf

# advertisedAddress 修改为服务器对应的ip,在另外两台服务器也做对应的修改advertisedAddress=10.0.100.60

# 修改以下两个文件目录地址journalDirectories=/home/admin/bookies/tmp/journalledgerDirectories=/home/admin/bookies/tmp/ledger

# 修改zk地址和端口信息zkServers=10.0.100.60:2181,10.0.100.70:2181,10.0.100.80:2181

2.  初始化元数据,并启动 bookie 集群。

# 先执行初始化元数据命令;再执行启动命令

# 进入 bookies 目录

cd  /home/admin/bookies

# 执行初始化元数据命令;若出现提示,输入 Y,继续(只需在一个bookie节点执行一次)

bin/bookkeeper shell metaformat

# 以后台进程启动bookie

bin/pulsar-daemon start bookie

3.  按照以上步骤,启动另外两个 bookie 节点。

4.  验证 bookie 是否启动成功。

# 进入 bookies 目录

cd  /home/admin/bookies

# 验证是否启动成功

bin/bookkeeper shell bookiesanity

# 出现如下显示,表示启动成功Bookie

sanity test succeeded.

七、部署配置 Broker 集群

1.  修改配置文件 broker.conf。

# 进入配置文件目录

cd /home/admin/brokers/conf

# 编辑 broker.conf 文件

# 修改集群名,和 ZooKeeper 里初始化元数据时指定的集群名(--cluster pulsar-cluster)相同clusterName=pulsar-cluster

# 修改如下两个配置,指定的都是 ZooKeeper 集群地址和端口号zookeeperServers=10.0.100.60:2181,10.0.100.70:2181,10.0.100.80:2181 configurationStoreServers=10.0.100.60:2181,10.0.100.70:2181,10.0.100.80:2181

# 修改如下参数为本服务器ip地址,另外两个 broker 节点配置文件也做对应修改advertisedAddress=10.0.100.60

2.  启动 broker 节点。

# 进入 brokers 目录

cd /home/admin/brokers

# 以后台进程启动 broker

bin/pulsar-daemon start broker

3.  按照以上步骤,对另外两个 broker 节点做对应配置,并启动 broker 节点。

4.  检查 JDK 是否安装成功。若显示 JDK 版本,则安装成功。

5.  查看集群中 brokers 节点信息,验证 broker 是否都启动成功。

# 进入任一个 broker 目录

cd /home/admin/brokers

# 查看集群 brokers 节点情况

bin/pulsar-admin brokers list pulsar-cluster

至此,集群 ZooKeeper,Broker,Bookie 节点启动完毕,集群部署成功!接下来可以进行 HelloWorld 测试!

八、测试 Pulsar

1.  依次创建集群、租户、命名空间、分区 topic,并为命名空间指定集群名。

# 进入 brokers 目录,选取任一个 broker 节点执行命令即可

cd /home/admin/brokers

# 创建集群(集群名:pulsar-cluster)

./bin/pulsar-admin clusters create --url http://pulsar.cluster.com:8080  pulsar-cluster

# 创建租户(租户名:my-tenant)

./bin/pulsar-admin tenants create my-tenant

# 创建命名空间(命名空间名:my-tenant/my-namespace,它指定了租户my-tenant)

./bin/pulsar-admin namespaces create my-tenant/my-namespace

# 创建持久性分区topic(topic全名:persistent://my-tenant/my-namespace/my-topic;分区数为 3)

./bin/pulsar-admin topics create-partitioned-topic persistent://my-tenant/my-namespace/my-topic -p 3

# 更新命名空间为其指定集群名

./bin/pulsar-admin namespaces set-clusters my-tenant/my-namespace --clusters pulsar-cluster

2.  设置 maven 依赖。

4eaec20fc354073c6bf28e5f43a06c5a.png

3.  创建生产者。

05eb581ffb3fa5e1c95612fa37801135.png

4.  创建消费者。

977aac678b835da79b36c3ee90cf642e.png

更多关于 Pulsar 的干货和动态分享,请关注公众号 StreamNative。

点击“阅读原文”,查看原作者 blog。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值