【中间件】Pulsar集群安装

目录

一、Pulsar介绍

1.1 Pulsar基本介绍

1.2 Pulsar架构

Producer & Consumer

Apache Zookeeper

Pulsar Brokers

Apache Bookkeeper

二、Zookeeper集群安装

三、Pulsar集群安装

3.1 bookie与broker配置

3.1.1 修改bookie配置文件

3.1.2 修改broker配置文件

3.2 元数据初始化

3.3 服务启动

3.4 消息收发测试

四、Pulsar admin manger图形界面安装


一、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.gztar -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/ledgervim /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 6651bin/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.gztar -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-华为云开发者联盟

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/26340.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

渗透测试工具NMAP

nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统(这是亦称 fingerprinting)。它是网络管理员必用的软件之一,以及用以评估网络系统安全…

pytest中一个场景测试的demo

注意点1: allure.severity 是一个装饰器,用于设置测试用例的严重性级别。 allure.severity_level.CRITICAL 是Allure提供的严重性级别之一,表示这个测试用例极为重要。allure.severity_level.BLOCKER:阻塞级别的问题&#xff0c…

Flutter-使用MethodChannel 实现与iOS交互

前言 使用 MethodChannel 在 Flutter 与原生 Android 和 iOS 之间进行通信,可以让你在 Flutter 应用中调用设备的原生功能。 基础概念 MethodChannel:Flutter 提供的通信机制,允许消息以方法调用的形式在 Flutter 与原生代码之间传递。方法…

【产品经理】ERP对接电商平台

电商ERP对接上游平台,会需要经历几个步骤环节,包括店铺设置等。 电商ERP对接上游电商平台,其主要设置为店铺设置、商品同步、库存同步,本次讲解下店铺设置应该如何进行设置,以及在设置过程中的可能出现的踩坑事项。 …

CSS之块浮动

在盒子模型的基础上就可以对网页进行设计 不知道盒子模型的可以看前面关于盒子模型的内容 而普通的网页设计具有一定的原始规律,这个原始规律就是文档流 文档流 标签在网页二维平面内默认的一种排序方式,块级标签不管怎么设置都会占一行,而同一行不能放置两个块级标签 行级…

好用的Web数据库管理工具推荐(ChatGPT的推荐)

在现代数据管理和开发中,Web数据库管理工具变得越来越重要。这些工具不仅提供了直观的用户界面,还支持跨平台操作,方便用户在任何地方进行数据库管理。 目录 1. SQLynx 2. phpMyAdmin 3. Adminer 4. DBeaver 5 结论 以下是几款推荐的Web…

臻奶惠的行业优势与市场竞争力解析

臻奶惠在智能售货机领域深耕多年,其加盟合作模式在行业中展现出了多方面的优势。以下是对该公司智能售货机加盟优势的深入分析: 技术先进性: 臻奶惠智能售货机以高度自动化的运营模式著称,特别是在自动补货、远程监控和数据分析…

史上最全,呕心沥血总结oracle推进SCN方法(六)

作者介绍:老苏,10余年DBA工作运维经验,擅长Oracle、MySQL、PG数据库运维(如安装迁移,性能优化、故障应急处理等) 公众号:老苏畅谈运维 欢迎关注本人公众号,更多精彩与您分享。前面介…

RocketMQ教程(六):RocketMQ的消息生产

环境配置 RocketMQ版本:5.2.0 RocketMQ SDK版本:5.2.0 引入依赖 implementation org.apache.rocketmq:rocketmq-client:5.2.0 消息生产 消息的种类分成四种,普通消息、顺序消息、事务消息和延时消息,发生消息的方式也分为同步发送、异步发送、单向发送 三种。 1、普通消…

15. 《C语言》——【如何动态内存开辟】

亲爱的读者,大家好!我是一名正在学习编程的高校生。在这个博客里,我将和大家一起探讨编程技巧、分享实用工具,并交流学习心得。希望通过我的博客,你能学到有用的知识,提高自己的技能,成为一名优…

CST软件眼图工具Eye Diagram Tools (中)--- Classical流程

距离上次眼图介绍快两年了,由于上期已经将重点推荐的方法(statistical流程)介绍了,所以一直没急着涉及这个话题。 仿真实例011:眼图工具Eye Diagram Tools(上) 先总结一下之前介绍过的内容&am…

容器:现代计算的基础设施

人不走空 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌赋:斯是陋室,惟吾德馨 目录 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌…

大模型初学者怎么入门大语言模型(LLM)?

前言 在当今的科技浪潮中,人工智能(AI)和机器学习技术已经取得了长足的进步,其中大模型的发展尤为引人注目。大模型,通常指的是拥有海量参数、能够处理复杂任务的深度学习模型,如自然语言处理(…

RT-DETR 详解之 Uncertainty-minimal Query Selection

引言 在上一章博客中博主已经完成查询去噪向量构造部分的讲解(DeNoise)在本篇博客中,我们将进行Uncertainty-minimal Query Selection创新点的讲解。 Uncertainty-minimal Query Selection是RT-DETR提出的第二个创新点,其作用是…

UE5 Sequencer 使用指导 - 学习笔记

https://www.bilibili.com/video/BV1jG411L7r7/?spm_id_from333.337.search-card.all.click&vd_source707ec8983cc32e6e065d5496a7f79ee6 Sequencer 01 1.1 调整视口 调整窗口数量 调整视口类型为Cinematic视口 视口显示网格,或者条件参考线 1.2 关卡动画与…

架构设计-用户信息及用户相关的密码信息设计

将用户的基本信息和用户密码存放在不同的数据库表中是一种常见的安全做法,这种做法旨在增强数据的安全性和管理的灵活性。以下是这种做法的几个关键原因: 安全性增强: 当用户密码被单独存放在一个表中时,可以使用更强大的加密和哈…

计算机毕业设计 | SpringBoot+vue的教务管理系统

1,绪论 1.1 项目背景 在这个资讯高度发展的时代,资讯管理变革已经是一个更为宽泛、更为全面的潮流。为了保证中国的可持续发展,随着信息化技术的不断进步,教务管理体系也在不断完善。与此同时,伴随着信息化的飞速发展…

Hexapod C-887 使用手册 -- 1

最近要做PI C-887的集成控制,先把使用手册看一便,在此记录阅读进度。 本人微信号,如果有项目合作,可以加本人微信。 1 有关此文档 在本章中 本用户手册的目标和目标群体 符号和打印规则 图 术语的定义 其它适用文件 下载手…

Python GUI 库跨平台兼容问题及解决方案

在选择 Python GUI 库时,跨平台兼容性是一个重要的考虑因素。不同的 GUI 库可能在不同的操作系统上表现不同,因此需要选择一个能够在多个平台上运行良好的库。如果我们遇到下面的问题,可以尝试下我整理的方法。 1、问题背景 Python 作为一门…