Pulsar简介及其安装

Pulsar简介及其安装

简介

复制代码
    Apache Pulsar 是 Apache 软件基金会顶级项目,是下一代云原生分布式消息流平台,集消息、存储、轻量化函数式计算为一体。该系统源于 Yahoo,
最初在 Yahoo 内部开发和部署,支持 Yahoo 应用服务平台 140 万个主题,日处理超过 1000 亿条消息。Pulsar 于 2016 年由 Yahoo 开源并捐赠给 
Apache 软件基金会进行孵化,2018 年成为 Apache 软件基金会顶级项目。
Pulsar 作为下一代云原生分布式消息流平台,支持多租户、持久化存储、多机房跨区域数据复制,具有强一致性、高吞吐以及低延时的高可扩展流数据存储特性,
内置诸多其他系统商业版本才有的特性,是云原生时代解决实时消息流数据传输、存储和计算的最佳解决方案。

Apache Pulsar 提供了统一的消费模型,支持 Stream(如 Kafka)和 Queue(如 RabbitMQ)两种消费模型, 支持 exclusive、failover 和

shared 三种消费模式。同时,Pulsar 提供和 Kafka 兼容的 API,以及 Kafka-On-Pulsar(KoP) 组件来兼容 Kafka 的应用程序,KoP 在

Pulsar Broker 中解析 Kafka 协议,用户不用改动客户端的任何 Kafka 代码就能直接使用 Pulsar。

目前,Apache Pulsar 已经应用部署在国内外众多大型互联网公司和传统行业公司,案例分布在人工智能、金融、电信运营商、直播与短视频、物联网、

零售与电子商务、在线教育等多个行业,如美国有线电视网络巨头 Comcast、Yahoo!、腾讯、中国电信、中国移动、BIGO、VIPKID 等。

目前 Apache Pulsar 项目原生核心贡献者已组成创业公司 StreamNative,进一步为 Apache Pulsar 提供更好的企业级服务支持与生态建设。

特征

  • Pulsar实例中对多个集群的本地支持,支持跨集群的消息无缝地理复制。
  • 非常低的发布和端到端延迟。
  • 无缝的可伸缩性,超过一百万个主题。
  • 一个简单的客户端API,为Java, Go, Python和c++绑定。
  • 主题的多种订阅类型(独占、共享和故障转移)。
  • 使用Apache BookKeeper提供的持久消息存储来保证消息传递。无服务器轻量级计算框架Pulsar Functions提供了流原生数据处理功能。
  • 无服务器连接器框架Pulsar IO构建在Pulsar Functions之上,可以更容易地将数据移进和移出Apache Pulsar。
  • 当数据老化时,Tiered Storage offloads将数据从热/热存储卸载到冷/长期存储(如S3和GCS)

Pulsar 本地安装与运行Pulsar集群

复制代码
对于本地开发和测试,您可以在机器上以独立模式运行Pulsar。独立模式在单个Java虚拟机(JVM)进程中运行所有组件。

安装

jdk版本映射关系

复制代码
在安装pulsar之前,我们需要了解pulsar相关对应的java的版本信息,如下:

pulsar运行时Java版本推荐

  • pulsar 版本 > 2.10 and master 分支:
Pulsar组件 Java版本
Broker 17
Functions / IO 17
CLI 17
Java Client 8 or 11 or 17
  • 2.8 <= pulsar 版本 <= 2.10:
Pulsar组件 Java版本
Broker 11
Functions / IO 11
CLI 8 or 11
Java Client 8 or 11
  • pulsar 版本 < 2.8:
Pulsar组件 Java版本
Broker 8 or 11
Functions / IO 8 or 11
CLI 8 or 11
Java Client 8 or 11

下载

shell 复制代码
/usr/local/pulsar$ wget https://archive.apache.org/dist/pulsar/pulsar-2.10.2/apache-pulsar-2.10.2-bin.tar.gz

解压

shell 复制代码
/usr/local/pulsar$ tar -xvfz apache-pulsar-2.10.2-bin.tar.gz

Pulsar 本地安装与运行Pulsar集群

复制代码
对于本地开发和测试,您可以在机器上以独立模式运行Pulsar。独立模式在单个Java虚拟机(JVM)进程中运行所有组件。

安装

jdk版本映射关系

复制代码
在安装pulsar之前,我们需要了解pulsar相关对应的java的版本信息,如下:

pulsar运行时Java版本推荐

  • pulsar 版本 > 2.10 and master 分支:
Pulsar组件 Java版本
Broker 17
Functions / IO 17
CLI 17
Java Client 8 or 11 or 17
  • 2.8 <= pulsar 版本 <= 2.10:
Pulsar组件 Java版本
Broker 11
Functions / IO 11
CLI 8 or 11
Java Client 8 or 11
  • pulsar 版本 < 2.8:
Pulsar组件 Java版本
Broker 8 or 11
Functions / IO 8 or 11
CLI 8 or 11
Java Client 8 or 11

下载

shell 复制代码
/usr/local/pulsar$ wget https://archive.apache.org/dist/pulsar/pulsar-2.10.2/apache-pulsar-2.10.2-bin.tar.gz

解压

shell 复制代码
/usr/local/pulsar$ tar -xvfz apache-pulsar-2.10.2-bin.tar.gz

解压目录介绍

解压出来的目录结构如下:

  • bin:pulsar入口点脚本,以及许多其他命令行工具
  • conf:配置文件,包括broker.conf,zookeeper.conf等
  • lib:Pulsar使用的jar包
  • examples:pulsar函数示例
  • instances:Artifacts for Pulsar Functions
  • data:数据目录
  • logs:日志目录

启动

shell 复制代码
/usr/local/pulsar/apache-pulsar-2.10.2$ sudo ./bin/pulsar standalone


提示:如果我们想使用后台进程去启动pulsar的话,可以使用bin/pulsar-daemon start standalone命令。当plusar集群启动的完成之后,会默认

创建一个public/default命名空间,此名称空间用于开发目的,所有Pulsar主题都在名称空间中管理。

创建topic

shell 复制代码
/usr/local/pulsar/apache-pulsar-2.10.2$ sudo ./bin/pulsar-admin topics create persistent://public/default/my-topic

如果topic已经存在,会报如下错误:

发送消息

复制代码
可以使用pulsar命令行工具将消息写入主题。在实践中,您将在应用程序代码中使用Producer API,或Pulsar IO
连接器将数据从其他系统拉到Pulsar。
shell 复制代码
/usr/local/pulsar/apache-pulsar-2.10.2$ sudo ./bin/pulsar-client produce my-topic --messages 'Hello message'

消费消息

复制代码
 在实践中,您将在应用程序代码中使用Consumer API,或者使用Pulsar IO连接器从Pulsar读取数据以推送到其他系统。
shell 复制代码
/usr/local/pulsar/apache-pulsar-2.10.2$ sudo ./bin/pulsar-client consume my-topic -s 'my-subscription' -p Earliest -n 0

Earliest意味着从最早的未使用的消息进行消费。-n:配置要消耗的消息数量,0表示永远消耗.

停止

复制代码
可以使用Ctrl+C终止相关进程
相关推荐
hwj运维之路3 小时前
k8s监控方案实践(三):部署与配置Grafana可视化平台
云原生·kubernetes·grafana
zizisuo3 小时前
9.3.云原生架构模式
云原生·架构
和计算机搏斗的每一天3 小时前
k8s之探针
云原生·容器·kubernetes
熊大如如5 小时前
Java 反射
java·开发语言
猿来入此小猿6 小时前
基于SSM实现的健身房系统功能实现十六
java·毕业设计·ssm·毕业源码·免费学习·猿来入此·健身平台
goTsHgo6 小时前
Spring Boot 自动装配原理详解
java·spring boot
卑微的Coder7 小时前
JMeter同步定时器 模拟多用户并发访问场景
java·jmeter·压力测试
pjx9877 小时前
微服务的“导航系统”:使用Spring Cloud Eureka实现服务注册与发现
java·spring cloud·微服务·eureka
多多*7 小时前
算法竞赛相关 Java 二分模版
java·开发语言·数据结构·数据库·sql·算法·oracle
爱喝酸奶的桃酥7 小时前
MYSQL数据库集群高可用和数据监控平台
java·数据库·mysql