一、pulsar介绍
1.1 pulsar基本介绍
pulsar是一个云原生企业级的发布订阅(pub-sub)消息系统,最初由yahoo开发,并于2016年底开源,现在是apache软件基金会顶级开源项目。pulsar在yahoo的生产环境运行了三年多,助力yahoo的主要应用,如yahoo finance、yahoo sports、flickr、gemini广告平台和yahoo分布式键值存储系统sherpa。
apache pulsar的功能与特性:
- 多租户模式
- 灵活的消息系统
- 云原生架构
- segmented sreams(分片流)
- 支持跨地域复制
1.2 pulsar架构
pulsar官网: apache pulsar | apache pulsar
producer & consumer
pulsar客户端包含一个消费者和一个生产者。生产者写入消息到某个主题。消费者从主题读取消息,并确认特定消息或所有特定消息。
apache zookeeper
pulsar和bookkeeper使用apache zookeeper保存节点之间协调的元数据,例如每个主题的分类账列表,每个分类账的片段,以及主题包到代理的映射。它是一个由高可用性和可复制的服务器组成的集群(通常是3个)。
pulsar brokers
主题(即分区)在brokers代理之间进行划分。代理接收主题的消息,并将它们附加到托管在bookkeeper集群上的主题的活动虚拟文件(又称分类账)。代理从缓存(大部分)或bookkeeper读取消息,并将它们分发给消费者。代理也接收消息确认并将其持久化到bookkeeper集群。代理是无状态的(不使用/不需要磁盘)。
apache bookkeeper
apache bookkeeper是一个称为bookies的节点集群。每个虚拟文件(又名账本)被分成连续的段,默认情况下,每个段由3个bookies 保存(由客户端复制,即经纪人)。由于不需要在它们之间进行数据重组(移动),运营商可以快速添加博彩公司。它们立即共享传入的写负载。
测试环境
主机名 | ip | 角色 |
ddp01 | 192.168.2.76 | zk,bookie,broker |
ddp02 | 192.168.2.78 | zk,bookie,broker |
ddp03 | 192.168.2.80 | zk,bookie,broker |
jdk版本兼容性如下:
二、zookeeper集群安装
使用datasophon 安装zookeeper ,也可以直接tar包安装参考文档
选择服务
选择server节点
配置信息确认
安装完成
查看zk配置信息,zk安装路径:/opt/datasophon/zookeeper
zoo.cfg 配置文件
clientport=2181 datadir=/data/zookeeper datalogdir=/data/log ticktime=2000 initlimit=10 synclimit=5 server.1=192.168.2.76:2888:3888 server.2=192.168.2.78:2888:3888 server.3=192.168.2.80:2888:3888 skipacl=yes
三、pulsar集群安装
pulsar版本
pulsar下载
# 3台创建 并同步安装包 mkdir -p /opt/module wget https://archive.apache.org/dist/pulsar/pulsar-2.8.1/apache-pulsar-2.8.1-bin.tar.gz tar -zxvf apache-pulsar-2.8.1-bin.tar.gz -c /opt/module cd /opt/module ln -s apache-pulsar-2.8.1-bin puslar_2.8.1
可以验证zookeeper节点是否启动成功
cd /opt/module/apache-pulsar-2.8.1 ./bin/pulsar zookeeper-shell -server 192.168.2.76:12181 ./bin/pulsar zookeeper-shell -server 192.168.2.78:12181 ./bin/pulsar zookeeper-shell -server 192.168.2.80:12181
如下进入了 zk客户端,查看znode节点
3.1 bookie与broker配置
3.1.1 修改bookie配置文件
# 分别每个节点执行 # 创建bookie所需要目录 mkdir -p /opt/module/pulsar_2.8.1/tmp/journal mkdir -p /opt/module/pulsar_2.8.1/tmp/ledger vim /opt/module/puslar_2.8.1/conf/bookkeeper.conf # advertisedaddress 修改为服务器对应的ip,在另外两台服务器也做对应的修改advertisedaddress=192.168.1.193 advertisedaddress=192.168.2.76 # 修改以下两个文件目录地址 journaldirectory=/opt/module/pulsar_2.8.1/tmp/journal ledgerdirectories=/opt/module/pulsar_2.8.1/tmp/ledger # 修改zk地址和端口信息 zkservers=192.168.2.76:2181,192.168.2.78:2181,192.168.2.80:2181 #httpserverport默认也是8000,建议修改,我这里修改为:8100 prometheusstatshttpport=8100
3.1.2 修改broker配置文件
cd /opt/module/pulsar_2.8.1 vim conf/broker.conf 修改第44行: 更改为本地ip地址 advertisedaddress=192.168.2.76 修改第125行: 修改集群的名称 clustername=pulsar-cluster 修改第1794行: 配置zookeeper地址 zookeeperservers=192.168.2.76:2181,192.168.2.78:2181,192.168.2.80:2181 修改第73行: 配置zookeeper地址 configurationstoreservers=192.168.2.76:2181,192.168.2.78:2181,192.168.2.80:2181 修改第73行 http请求服务端口 webserviceport=18080
同步到其它两台
scp -r apache-pulsar-2.7.5 ddp02:/opt/module scp -r apache-pulsar-2.7.5 ddp03:/opt/module cd /opt/module ln -s apache-pulsar-2.8.1-bin puslar_2.8.1
3.2 元数据初始化
在其中一个 zookeeper 节点的机器上,初始化集群元数据(总共只需执行一次)
#先查看端口占用情况,避免后面启动时会报端口占用错误 netstat -tpnl |grep 8080 netstat -tpnl |grep 8443 netstat -tpnl |grep 6650 netstat -tpnl |grep 6651 bin/pulsar initialize-cluster-metadata \ --cluster pulsar-cluster \ --zookeeper 192.168.2.76:2181,192.168.2.78:2181,192.168.2.80:2181 \ --configuration-store 192.168.2.76:2181,192.168.2.78:2181,192.168.2.80:2181 \ --web-service-url http://192.168.2.76:18080,192.168.2.78:18080,192.168.2.80:18080 \ --web-service-url-tls https://192.168.2.76:8443,192.168.2.78:8443,192.168.2.80:8443 \ --broker-service-url pulsar://192.168.2.76:6650,192.168.2.78:6650,192.168.2.80:6650 \ --broker-service-url-tls pulsar+ssl://192.168.2.76:6651,192.168.2.78:6651,192.168.2.80:6651
查看元数据是否初始化成功
#连接任意一台zookeeper,比如:192.168.1.193 ./bin/pulsar zookeeper-shell -server 127.0.0.1:2181 #查询数据 ls / #显示如下,有bookies,pulsar等信息,表示成功初始化 [admin, bookies, ledgers, managed-ledgers, namespace, stream, zookeeper]
3.3 服务启动
# bookkeeper集群启动 #启动bookie命令,以后台进程启动bookie ./bin/pulsar-daemon start bookie # bookie停止命令 ./bin/pulsar-daemon stop bookie # 验证是否启动成功 ./bin/bookkeeper shell bookiesanity # 以后台进程启动 broker ./bin/pulsar-daemon start broker # broker关闭命令如下: ./bin/pulsar-daemon stop broker
测试判断broker是否启动成功
./bin/pulsar-admin --admin-url http://192.168.2.76:18080 brokers list pulsar-cluster
部署正常的话 会显示如下结果
3.4 消息收发测试
#在yx subscription 订阅中 consume 一条消息到topic:yx-tech的命令 ./bin/pulsar-client consume yx-tech -s "yx subscription"
开启另一个终端发送数据,观察订阅者收到数据:content:hello-yx
#生产者发送: 向名称为 my-topic 的 topic 发送一条简单的消息 hello-pulsar #--messages后面双引号中的内容,若以英文逗号分隔,则消息会分开发送 ./bin/pulsar-client produce yx-tech --messages "hello-yx"
如果消费者可以正常接收到消息就代表安装成功
四、pulsar admin manger图形界面安装
pulsar admin manger是基于plusar的可视化界面,接下来进行安装
wget https://www.apache.org/dyn/closer.lua/pulsar/pulsar-manager/pulsar-manager-0.4.0/apache-pulsar-manager-0.4.0-bin.tar.gz tar -zxf apache-pulsar-manager-0.4.0-bin.tar.gz -c /home/bigdata/apps/ cd /home/bigdata/apps/apache-pulsar-manager-0.4.0-bin/ # 解压文件 tar -xvf pulsar-manager.tar # 进入解压后的文件夹 cd pulsar-manager # 复制文件 cp -r ../dist ui
修改配置文件application.properties根据需要进行属性配置。如果不想修改应文件application.properties,可以通过命令将配置添加到启动参数中。这是spring引导框架的一个功能。
/bin/pulsar --managerbackend.jwt.token=token
启动pulsar
./bin/pulsar-manager
初始化用户名密码
csrf_token=$(curl http://localhost: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://localhost:7750/pulsar-manager/users/superuser \ -d '{"name": "admin", "password": "apachepulsar", "description": "test", "email": "username@test.org"}'
http://192.168.2.76:7750/ui/index.html
点击 new environment, 设置集群环境即可
新建环境,连接pulsar。设置pulsar集群名字,这里是配置文件中的集群名。以及链接url,这里也是初始化时配置的url。
可以查看和新建namespace 、topic 等
参考文档:
高版本的pulsar需要
jdk17下载地址:java downloads | oracle 中国
云原生时代消息中间件pulsar(介绍、集群安装部署、管理页面安装部署) 2-阿里云开发者社区
【pulsar学习】pulsar集群部署及可视化监控部署_学习_hhhsir'blog-华为云开发者联盟
到此这篇关于pulsar简介及集群安装过程的文章就介绍到这了,更多相关pulsar集群安装内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论