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终止相关进程
相关推荐
计算机毕设指导66 分钟前
基于 SpringBoot 的作业管理系统【附源码】
java·vue.js·spring boot·后端·mysql·spring·intellij-idea
Gu Gu Study7 分钟前
枚举与lambda表达式,枚举实现单例模式为什么是安全的,lambda表达式与函数式接口的小九九~
java·开发语言
Chris _data10 分钟前
二叉树oj题解析
java·数据结构
牙牙70516 分钟前
Centos7安装Jenkins脚本一键部署
java·servlet·jenkins
paopaokaka_luck23 分钟前
[371]基于springboot的高校实习管理系统
java·spring boot·后端
以后不吃煲仔饭36 分钟前
Java基础夯实——2.7 线程上下文切换
java·开发语言
进阶的架构师37 分钟前
2024年Java面试题及答案整理(1000+面试题附答案解析)
java·开发语言
The_Ticker42 分钟前
CFD平台如何接入实时行情源
java·大数据·数据库·人工智能·算法·区块链·软件工程
大数据编程之光1 小时前
Flink Standalone集群模式安装部署全攻略
java·大数据·开发语言·面试·flink
爪哇学长1 小时前
双指针算法详解:原理、应用场景及代码示例
java·数据结构·算法