哈喽,大家好,我是指北君 。
最近项目中准备使用消息中间件Apache Pulsar,借着机会先做个简单了解吧 。
Apache PulsarApache Pulsar是Apache软件基金会顶级项目,是下一代云原生分布式消息流平台 。
Pulsar 作为下一代云原生分布式消息流平台,支持多租户、持久化存储、多机房跨区域数据复制,具有强一致性、高吞吐以及低延时的高可扩展流数据存储特性,内置诸多其他系统商业版本才有的特性,是云原生时代解决实时消息流数据传输、存储和计算的最佳解决方案 。
![下一代MQ中间件,不来了解下?](http://img.jiangsulong.com/230228/1601063149-0.jpg)
文章插图
Pulsar简介
- 系统架构
![下一代MQ中间件,不来了解下?](http://img.jiangsulong.com/230228/1601063438-1.jpg)
文章插图
- 功能特色
租户和命名空间(namespace)是 Pulsar 支持多租户的两个核心概念 。在租户级别,Pulsar 为特定的租户预留合适的存储空间、应用授权与认证机制 。在命名空间级别,Pulsar 有一系列的配置策略(policy),包括存储配额、流控、消息过期策略和命名空间之间的隔离策略 。
Pulsar 做了队列模型和流模型的统一,在 Topic 级别只需保存一份数据,同一份数据可多次消费 。以流式、队列等方式计算不同的订阅模型大大提升了灵活度 。
Pulsar 使用计算与存储分离的云原生架构,数据从 Broker 搬离,存在共享存储内部 。上层是无状态 Broker,复制消息分发和服务;下层是持久化的存储层 Bookie 集群 。Pulsar 存储是分片的,这种构架可以避免扩容时受限制,实现数据的独立扩展和快速恢复 。
Pulsar 原生支持跨地域复制,因此 Pulsar 可以跨不同地理位置的数据中心复制数据 。当数据中心中断或网络分区时,在多个数据中心存有消息副本尤为重要,提高可用性 。
Pulsar Functions 是基于 Pulsar 的轻量级流处理方式 。Pulsar Functions 直接部署在 broker 节点上(或作为 Kube.NETes 集群中的容器) 。通过 Pulsar Functions,Pulsar 可以直接解决许多流处理任务,简化操作 。? - 支持客户端
C++ 客户端
.Net/C# 客户端
Go 客户端
NodeJS 客户端
Ruby 客户端
Pulsar安装与部署目前Pulsar不支持Window,下面通过Docker进行安装,可以参考官网??https://pulsar.apache.org/docs/next/getting-started-docker/??
同时可以安装Pulsar Manager,具体操作可以参考官方文档 ??https://pulsar.apache.org/docs/next/administration-pulsar-manager/??
其中Pulsar Manager 是一个网页式可视化管理与监测工具,支持多环境下的动态配置 。可用于管理和监测租户、命名空间、topic、订阅、broker、集群等 。
- window环境使用docker推荐使用Docker Desktop,和linux一样可以通过docker命令管理镜像、部署容器等操作 。
_> docker search pulsar
可以查询到pulsar相关的镜像
![下一代MQ中间件,不来了解下?](http://img.jiangsulong.com/230228/1601061D0-2.jpg)
文章插图
- 镜像下载
_> docker pull apachepulsar/pulsar _> docker pull apachepulsar/pulsar-manager
- 启动
- 启动Pulsar
docker run -it -p 6650:6650 -p 8080:8080--mount source=pulsardata,target=/pulsar/data--mount source=pulsarconf,target=/pulsar/confapachepulsar/pulsar bin/pulsar standalone
启动Pulsar Managerdocker run --name pulsar-manager -dit-p 9527:9527 -p 7750:7750-e SPRING_CONFIGURATION_FILE=/pulsar-manager/pulsar-manager/Application.propertiesapachepulsar/pulsar-manager
添加用户:for /f "tokens=1" %A in ('curl http://localhost:7750/pulsar-manager/csrf-token') do set CSRF_TOKEN=%Acurl -X PUT "X-XSRF-TOKEN: %CSRF_TOKEN%"-H "Cookie: XSRF-TOKEN=%CSRF_TOKEN%;"-H "Content-Type: application/json" -d "{"name": "admin", "password": "123456", "description": "super user admin", "email": "admin@test.com"}""http://localhost:7750/pulsar-manager/users/superuser"
访问:http://localhost:9527/ 用户名密码:admin/123456
推荐阅读
- 碧水浩浩云茫茫,美人不来空断肠。 碧水浩浩云茫茫
- zillow中文版?为什么Zillow的卫星地图有时可以出来有时出不来?
- 月经不来可以吃黄体酮吗 黄体酮的作用
- 提前40分钟到机场来得及吗 提前一小时到机场来得及吗 提前一小时到机场来不来得及?
- 2023年想发财?“家中三不摆,摆后财不来”,老俗话有什么道理?
- 唐嫣|唐嫣首次在节目中谈到友情,感叹:被朋友欺骗后,就真的不来往了
- 谭松韵|谭松韵新剧和许凯平番,粉丝不满取关脱粉,90花第一换不来咖位
- “立春吃3白,一年病不来”,“3白”指啥?明日立春,别忘吃
- 万兆网卡速度上不来?2.5g网卡和万兆网卡区别?
- 张译|《声生不息宝岛季》阵容变化:4位不来,新增2常驻2飞行,主持人曝光