Pulsar简介及其安装
- 简介
- 特征
- [Pulsar 本地安装与运行Pulsar集群](#Pulsar 本地安装与运行Pulsar集群)
- 安装
- [Pulsar 本地安装与运行Pulsar集群](#Pulsar 本地安装与运行Pulsar集群)
- 安装
- 启动
- 创建topic
- 发送消息
- 消费消息
- 停止
简介
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终止相关进程