龙空技术网

这篇Apache Pulsar集群搭建讲得太通俗易懂

编程课堂 65

前言:

此刻兄弟们对“phpapache集群”大体比较珍视,看官们都想要了解一些“phpapache集群”的相关知识。那么小编同时在网上汇集了一些对于“phpapache集群””的相关文章,希望小伙伴们能喜欢,同学们一起来学习一下吧!

一、集群组成说明

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

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

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

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

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

二、安装前置条件

1、准备3台测试Linux服务器(Centos 7)。

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

3、下载Pulsar安装包,,上传至3台服务器。

三、ZooKeeper集群搭建1、解压Pulsar安装包

切换到根目录:$ cd / 创建data目录:$ mkdir data解压:$ tar -zxvf apache-pulsar-2.9.1-bin.tar.gz
2、修改zookeeper.conf配置文件(三个节点上都需执行此操作),新增或修改如下关键配置项:
# dataDir是修改,其他都是新增dataDir=/data/zookeeper/datadataLogDir=/data/zookeeper/logserver.1=IP1:2888:3888server.2=IP2:2888:3888server.3=IP3:2888:3888
参数说明:dataDir:当前zookeeper节点的数据存放目录dataLogDir:当前zookeeper节点的日志存放目录server.1~3:为zookeeper集群的各个节点指定编号
3、在每个zookeeper节点的机器上,新建如下文件目录:
data:ZooKeeper使用的数据存储目录mkdir -pv /data/zookeeper/datalog:ZooKeeper使用的日志存储目录mkdir -pv /data/zookeeper/log
4、为每个zookeeper节点新建myid,分别在指定的sever上写入配置文件中指定的编号:
在server.1服务器上执行bash命令:echo 1 > /data/zookeeper/data/myid在server.2服务器上执行bash命令:echo 2 > /data/zookeeper/data/myid在server.3服务器上执行bash命令:echo 3 > /data/zookeeper/data/myid
5、执行后台运行命令,这个命令是启动zookeeper:
bin/pulsar-daemon start zookeeper
6、执行zookeeper客户端连接命令:
bin/pulsar zookeeper-shell客户端正常连接,就算zookeeper启动好了
7、在另外两台服务器上也执行bin/pulsar-daemon start zookeeper之后,在其中一个zookeeper节点的机器上,初始化集群元数据(总共只需执行一次):
例如在IP1上:bin/pulsar initialize-cluster-metadata \    --cluster pulsar-cluster-zk \    --zookeeper IP1:2181 \    --configuration-store IP1:2181 \    --web-service-url  \    --web-service-url-tls  \    --broker-service-url pulsar://IP1:6650,IP2:6650,IP3:6650 \--broker-service-url-tls pulsar+ssl://IP1:6651,IP2:6651,IP3:6651
或使用如下指令:bin/pulsar initialize-cluster-metadata \  --cluster pulsar-cluster-zk \  --zookeeper HOSTNAMEIP:2181 \  --configuration-store HOSTNAMEIP:2181 \  --web-service-url  \  --web-service-url-tls  \  --broker-service-url pulsar://HOSTNAMEIP:6650 \  --broker-service-url-tls pulsar+ssl://HOSTNAMEIP:6651
集群元数据说明:cluster集群名称zookeeperZooKeeper集群连接参数,仅需要包含ZooKeeper集群中的一个节点即可configuration-storePulsar实例的配置存储集群(ZooKeeper),多集群部署时才会发挥作用,需要另外部署ZooKeeper集群,但是单集群部署时可以和–zookeeper参数设置一样,只需要包含ZooKeeper集群中的一个节点即可web-service-url集群Web服务的URL+端口,URL是一个标准的DNS名称,默认端口8080,不建议修改。web-service-url-tls集群Web提供TLS服务的URL+端口,端口默认8443,不建议修改。broker-service-url集群brokers服务URL,URL中DNS的名称和Web服务保持一致,URL使用pulsar替代http/http,端口默认6650,不建议修改。broker-service-url-tls集群brokers提供TLS服务的URL,默认端口6551,不建议修改。
8、验证zookeeper初始化集群是否初始化成功
bin/pulsar zookeeper-shell进入zk控制台,通过ls /查看所有zk节点。能看到bookies,ledgers等节点,则说明初始化成功了。如果需要关闭zookeeper,可使用命令bin/pulsar-daemon stop zookeeper
注意:启动3台服务器的zookeeper节点之后,发现zookeeper节点之后无法相互注册,需要开放特定的端口或直接关闭防火墙。
四、BookKeeper集群搭建1、修改bookkeeper.conf配置文件(三个节点上都需执行此操作),修改如下关键配置项:
advertisedAddress=IP1zkServers=IP1:2181,IP2:2181,IP3:2181journalDirectory=/data/bookkeeper/journalledgerDirectories=/data/bookkeeper/ledgersprometheusStatsHttpPort=8100
注意:1、prometheusStatsHttpPort默认是8000,但实际上在bookkeeper.conf中,httpServerPort默认也是8000,会导致端口被占用。2、上面的advertisedAddress需要设置为对应机器的ip,而不是全设置为同一个
参数说明:advertisedAddress:指定当前节点的主机名或IP地址。zkServers:指定zookeeper集群,用来将bookkeeper节点的元数据存放在zookeeper集群。journalDirectories:当前bookkeeper节点的journal数据存放目录。如果需要提高磁盘写入性能,可以指定多个目录用来存放journal数据,关键是每一个目录必须在不同的磁盘,不然反而会影响写入性能ledgerDirectories:当前bookkeeper节点的ledger存放目录
2、在每个部署bookkeeper的机器上,创建bookie所需要目录
mkdir -pv /data/bookkeeper/mkdir -pv /data/bookkeeper/journalmkdir -pv /data/bookkeeper/ledgers
3、执行初始化元数据命令,若出现提示,输入Y继续(该步骤只需在一个bookie节点执行一次,总共只需执行一次)
bin/bookkeeper shell metaformat
4、在三台机器上,分别输入以下命令来以后台进程启动bookie
bin/pulsar-daemon start bookie
5、验证是否启动成功
bin/bookkeeper shell bookiesanity出现Bookie sanity test succeeded则代表启动成功。如果需要关闭bookkeeper,可使用命令bin/pulsar-daemon stop bookie
五、Broker集群搭建1、在每个部署Broker的机器上,修改broker.conf配置文件,修改如下关键配置项:
zookeeperServers=IP1:2181,IP2:2181,IP3:2181configurationStoreServers=IP1:2181,IP2:2181,IP3:2181advertisedAddress=IP1# clusterName与前面zookeeper初始化的cluster一致clusterName=pulsar-cluster-zk
注意:上面的advertisedAddress需要设置为对应机器的ip,而不是全设置为同一个
参数说明:zookeeperServers:指定zookeeper集群,用来将broker节点的元数据存放在zookeeper集群configurationStoreServers:多集群部署时管理多个pulsar集群元数据的zookeeper集群地址,单集群部署时可以和zookeeperServers设置一样advertisedAddress:指定当前节点的主机名或IP地址clusterName:指定pulsar集群名称
2、在每个部署Broker的机器上,以后台进程启动broker
bin/pulsar-daemon start broker如果需要关闭broker,可使用命令bin/pulsar-daemon stop broker
3、查看集群 brokers 节点情况
bin/pulsar-admin brokers list pulsar-cluster

我们的示例部署正常的话,这一步会显示如下结果:

代表此时集群内有存活的节点: IP1、IP2、IP3,端口号都是8080。到这一步,Pulsar的部署就完成了。

六、docker安装pulsar-dashboard

Pulsar自带 Dashboard,可对broker、bookie、ZooKeeper 集群和topic等进行监控和统计。

1、安装docker

yum install -y docker systemctl start dockersystemctl enable docker
2、安装pulsar-dashboard
docker run --name pulsar-dashboard -dit -p 80:80 -e SERVICE_URL= apachepulsar/pulsar-dashboard

通过浏览器访问docker宿主机IP

路漫漫其修远兮,吾将上下而求索

译文:在追寻真理方面,前方的道路还很漫长,但我将百折不挠,不遗余力地去追求和探索。

如果您有什么好的想法与方法,欢迎在评论区留言,我们一起讨论~

标签: #phpapache集群 #apache24集群搭建 #apache服务器集群