返回顶部
分享到

Pulsar简介及集群安装过程介绍

相关技巧 来源:互联网 作者:佚名 发布时间:2025-04-26 20:48:07 人浏览
摘要

一、Pulsar介绍 1.1 Pulsar基本介绍 pulsar是一个云原生企业级的发布订阅(pub-sub)消息系统,最初由Yahoo开发,并于2016年底开源,现在是Apache软件基金会顶级开源项目。Pulsar在Yahoo的生产环境运行

一、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 配置文件

1

2

3

4

5

6

7

8

9

10

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下载

1

2

3

4

5

6

# 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节点是否启动成功

1

2

3

4

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配置文件

1

2

3

4

5

6

7

8

9

10

11

12

13

14

# 分别每个节点执行

# 创建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配置文件

1

2

3

4

5

6

7

8

9

10

11

12

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

同步到其它两台

1

2

3

4

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 节点的机器上,初始化集群元数据(总共只需执行一次)

1

2

3

4

5

6

7

8

9

10

11

12

13

#先查看端口占用情况,避免后面启动时会报端口占用错误

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

查看元数据是否初始化成功

1

2

3

4

5

6

#连接任意一台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 服务启动

1

2

3

4

5

6

7

8

9

10

11

# 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是否启动成功

1

./bin/pulsar-admin --admin-url http://192.168.2.76:18080 brokers list pulsar-cluster

部署正常的话 会显示如下结果

3.4 消息收发测试

1

2

#在yx subscription 订阅中 consume 一条消息到topic:yx-tech的命令

./bin/pulsar-client consume yx-tech -s "yx subscription"

开启另一个终端发送数据,观察订阅者收到数据:content:hello-yx

1

2

3

#生产者发送: 向名称为 my-topic 的 topic 发送一条简单的消息 hello-pulsar

#--messages后面双引号中的内容,若以英文逗号分隔,则消息会分开发送

./bin/pulsar-client produce yx-tech --messages "hello-yx"

如果消费者可以正常接收到消息就代表安装成功

四、Pulsar admin manger图形界面安装

Pulsar admin manger是基于Plusar的可视化界面,接下来进行安装

1

2

3

4

5

6

7

8

9

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引导框架的一个功能。

1

/bin/pulsar --managerbackend.jwt.Token=Token

启动pulsar

1

./bin/pulsar-manager

初始化用户名密码

1

2

3

4

5

6

7

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 等


版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。

您可能感兴趣的文章 :

原文链接 :
相关文章
  • Jenkins git克隆代码超时问题的解决方案

    Jenkins git克隆代码超时问题的解决方案
    一、问题描述 在使用 Jenkins 首次进行服务部署的时候,如果我们项目的.git文件夹太大,可能会导致git clone失败。 在 Jenkins 构建时,如果没
  • Pulsar简介及集群安装过程介绍

    Pulsar简介及集群安装过程介绍
    一、Pulsar介绍 1.1 Pulsar基本介绍 pulsar是一个云原生企业级的发布订阅(pub-sub)消息系统,最初由Yahoo开发,并于2016年底开源,现在是Apache软
  • Chrome拓展(Chrome Extension)开发定时任务插件
    刚开始接触 Chrome Extension 开发时,我以为实现定时任务只需要简单调用 setInterval 就行,没想到这个看似简单的功能让我踩了不少坑。今天我
  • HarmonyOS系统利用AVPlayer开发视频播放功能

    HarmonyOS系统利用AVPlayer开发视频播放功能
    随着HarmonyOS生态的不断壮大,开发者在构建应用时越来越需要集成丰富的媒体播放功能。本文将详细介绍如何在HarmonyOS系统中利用功能强大
  • 鸿蒙中Axios数据请求的封装和配置方法

    鸿蒙中Axios数据请求的封装和配置方法
    适用于(HarmonyOS NEXT/5.0/API12+) 1.配置权限 应用级权限和系统级权限 2.配置网络请求的代码 1 2 3 requestPermissions: [ { name: ohos.permission.INTERNET } ],
  • 鸿蒙中@State的原理使用详解(HarmonyOS 5)

    鸿蒙中@State的原理使用详解(HarmonyOS 5)
    一、@State在鸿蒙中是做什么的? @State是 HarmonyOS ArkTS 框架中用于管理组件状态的核心装饰器,其核心作用是实现数据驱动 UI 的响应式编程模
  • kali虚拟机破解root密码的步骤

    kali虚拟机破解root密码的步骤
    kali虚拟机破解root密码 前言 kali6.6.15版本破解root密码,其他版本也可以根据这个步骤去尝试,方法大致是一样的。 一、重启(或者开机)
  • kynet.call使用介绍
    skynet.call 详细解析 1. 函数签名与参数 函数签名: 1 skynet.call(addr, typename, ...) addr:目标服务的地址(整数或字符串形式的服务名)。 typena
  • Git版本回退之reset和revert使用介绍

    Git版本回退之reset和revert使用介绍
    Git版本回退之reset和revert 在开发过程中,可能会遇到过错误提交的情况。这种情况下,先不要着急,可以通过以下两个命令来帮助你优雅的
  • 如何使用git reset进行多commit合并

    如何使用git reset进行多commit合并
    在开发分支下,往往会有多次提交,可能是feature,也可能是bugfix,如果git管理员基于commit进行打tag,这就比较麻烦,所以在打tag之前,最好
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计