| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> Pulsar云原生分布式消息和流平台 -> 正文阅读 |
|
[大数据]Pulsar云原生分布式消息和流平台 |
Pulsar云原生分布式消息和流平台
官网首页列举一些关键特性和目前使用公司包括国内深度合作腾讯,目前最新版本为2.8.0,背后的开源流数据公司 StreamNative,2019年创立一家公司,作为云原生时代专注技术细分领域的佼佼者 什么是PulsarPulsar即可以支持queue模式的消息中间件比如RabbitMQ和RocketMQ,也可以支持stream流模式的Kafka,几乎涵盖消息应用的领域,加上丰富企业特性如多租户隔离、百万级Topics、跨地域复制、鉴权认证,是云原生时代其他消息中间件的演化或者说是替代品也不为过 部署模式支持多种部署模式,比如本地开发测试环境下单机运行环境,生产使用集群部署或多集群部署,还有基于容器化的Docker和K8s部署等 概览
Pulsar需要解决问题
架构Pulsar底层最为关键技术是采用存储和计算分离以及分层+分片的架构,节点是对等的可以独立扩展并支持灵活扩容和快速容错机制,这也是为什么说Pulsar是云原生架构的主要原因; Pulsar企业级存储层采用的是Apache BookKeeper持久化存储。 BookKeeper是一个分布式的预写日志(WAL)系统,满足低延迟、高吞吐、持久化、强一致性、高可用、I/O隔离,元数据服务基于rocksdb legder存储,而基于New Sql新一代分布式关系数据库TiDb的k-v存储节点底层也是采用 性能非常强大单机存储引擎rocksdb,关于 BookKeeper我们本篇不做延展介绍,后续有时间再单独阐述。 Broker作为计算层依靠Zookeeper作为生产者和消费者的桥梁,天然属于无状态的服务,扩容通过服务发现自动动态感知;另一方面底层是分布式存储,因此扩容直接添加存储节点即可,原来在Kafka扩容节点后,如果没有属于该节点的分区数据则扩容节点是无法起作用的,需要做分区管理或rebalance,而在Pulsar中新增加节点则会实时增加数据进来,这个得益于Pulsar的架构设计,采用分层+分片的逻辑存储概念,每一块存储是可以存储不同Topic不同分区的数据,然后依赖于索引系统原理实现检索;存储节点出现故障后由于是对等架构,分布式存储有多副本机制,所以可继续提供正常服务且也不需要立即进行故障转移,可以在合适时机再做副本迁移,所以对于应用来说是无感知的 Pulsar稳定的IO质量底层机制
Palsar Schema
简单来说,当我们使用 schema 去创建 producer 生产者则不再需要将消息序列化为字节,因为Pulsar schema 会在后台帮我们执行序列化操作。
Parsar Functions
Function 抽象,计算对象是消息,Function 将收到消息进行计算执行业务逻辑并写进 Output topic,Function 为开发者提供了很多便利,简单的计算都可以通过 Function 完成。可以将 Function 结合起来,由此提出一个新概念 Function Mesh,其主要基于 K8s 开发。
将上面的代码编译成可部署的 JAR 文件,可以使用如下命令行将 JAR 包部署到 Pulsar 集群中。
Pulsar IO
Pulsar SQLApache Pulsar 用于存储事件数据流,事件数据结构由预定义字段组成。 借助 Schema Registry 的实现,你可以在 Pulsar 中存储结构化数据,并通过使用Trino(原先叫 Presto SQL)查询这些数据。 作为 Pulsar SQL 的核心,Presto Pulsar 连接器支持 Presto 集群中的 Presto worker 查询 Pulsar 数据。 查询性能高效且高度可扩展,这得益于 Pulsar 的 分层分片架构。 Pulsar 中的主题以分片形式存储在 Apache BookKeeper 中。 每个主题分片会被复制到多个 BookKeeper 节点,可以支撑并发读和高吞吐。 你可以配置 BookKeeper 节点的数量,默认节点数是 Tiered StoragePulsar 的分层存储 功能允许将历史 backlog 数据从 BookKeeper 中转移到更加低廉的存储介质中并且允许客户端访问无变化的 backlog 数据。
TransactionsPulsar事务 (txn) 使事件流应用程序能够在一个原子操作中消费、处理和生成消息。 Pulsar事务支持端到端的恰好一次流处理,这意味着消息不会从源算子(source operator)丢失,并且消息不会重复发给接收算子(sink operator)。 随着Pulsar 2.8.0中引入的事务,Pulsar Flink接收器连接器可以通过实现指定的 Pulsar 周边和生态
消息领域很多用户在使用 Pulsar 的过程中,会发现客户端应用的改造和迁移会很难落地。比如 Kafka 往 Pulsar 迁移过程中,客户很可能也会有大量基于 Kafka Clients 的应用需要更改,由于需要更改协议导致迁移很困难。 由于短时间不可能完全从 Kafka 迁移到 Pulsar,导致对后台的运维甚至整个业务的切换带来很大的不便捷性。 Pulsar 和 Kafka 一样是以 topic 作为基础,以 log 作为抽象,Pulsar 的一致性、延迟、吞吐会更优,在这个基础上要复用 Pulsar 的存储层,在 Broker 端实现协议的解析,用户的切换成本更低。Pulsar Broker 端提供 Protocol Handler 插件(现在已经实现 Kafka、AMQP、MQTT 协议的支持)的方式来支持多种协议。这种在 Broker 端做协议解析的方法,可以更方便地支持多种协议。其次还利用 Pulsar 在存储层拥有存储、计算分离的优势,服务上层多种协议。 KoP(Kafka on Pulsar)目前 StreamNative 联合合作伙伴已推出了 KoP 项目,主要满足想要从 Kafka 应用程序切换到 Pulsar 的用户的强烈需求。 KoP 将 Kafka 协议处理插件引入 Pulsar broker,从而实现 Apache Pulsar 对原生 Apache Kafka 协议的支持。将 KoP 协议处理插件添加到现有 Pulsar 集群后,用户不用修改代码就可以将现有的 Kafka 应用程序和服务迁移到 Pulsar,从而使用 Pulsar 的强大功能。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9i0cziCO-1629624254691)(http://www.itxiaoshen.com:3001/assets/1629618989303RWFe8zct.png)] KoP 相关特性:
AoP(AMQP on Pulsar)AoP(AMQP on Pulsar)是 StreamNative 联合中国移动共同开发推进的项目,类似 KoP,主要解决 AMQP 应用程序迁移到 Pulsar 的需求。当前 AoP 实现了对 AMQP 协议 0.9.1 版本的支持,2021 年计划对 AMQP 1.0 协议进行整合支持。目前除了中国移动正在大规模应用 AoP 外,国外也有越来越多的用户正在使用 AoP,希望更多小伙伴加入到 AoP 使用中来,共同丰富 AoP 场景,协作增强 AoP 功能。 MoP(MQTT on Pulsar)MQTT 协议在物联网应用十分广泛,类似 KoP、AoP,当前 Pulsar 也通过 MoP 项目提供了对 MQTT 协议的支持。当前 MoP 支持 QoS level 0、QoS level 1 协议,2021 年计划实现对 QoS level 2 协议的支持。 Apache Pulsar在日志系统中的应用常见日志架构ELK消息队列在日志场景中主要作用:削峰解耦、数据分发 日志系统常见挑战: 更多功能性要求: Kafka和Pulsar对比
Pulsar引入架构V1Pulsar引入架构V2Pulsar引入架构V3将ETL逻辑从LogStash迁移到Apache Pulsar Functions/IO中,从而起到降本提效,将数据offload到二级缓存中,满足等保要求 Pulsar引入架构V4可以通过Pulsar SQL实现千万级别的精确数据查询,注意是不支持模拟查询,模拟还是需要在ES中进行 应用
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 13:09:05- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |