Apache Pulsar崛起 | Meetup北京站全解析

2024-09-06 21:32

本文主要是介绍Apache Pulsar崛起 | Meetup北京站全解析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

来源:大数据技术与架构

640?wx_fmt=jpeg

大数据技术与架构
点击右侧关注,大数据开发领域最强公众号!
640?wx_fmt=jpeg

640?wx_fmt=png

暴走大数据
点击右侧关注,暴走大数据!
640?wx_fmt=png



By  大数据技术与架构

场景描述: 2019 7 月, Apache Pulsar 正式发布了 2.4.0 版本,在 2.3.2 版本的基础上新增了诸多功能并修复了大量漏洞,包括存储端、 Broker 端、 Schema 、安全、客户端、 Pulsar Functions Pulsar IO Pulsar Kafka Pulsar Flink Pulsar Storm 等多方面。

关键词:Pulsar Meetup

2019年9月份 Apache Pulsar Meetup北京站已经落下帷幕了。来自腾讯、智联、阿里的工程师分享了pulsar在各自工程中的应用。

Apache Pulsar 开始慢慢进入大家视野。我个人出于爱好,整理了本次大会的一些特别值得我们关注的内容。方便大家学习。

Apache Pulsar 在腾讯计费场景下的实践

该篇演讲由来自腾讯的刘德志提供。

腾讯的计费场景如下:


640?wx_fmt=png

腾讯计费系统对分布式消息队列的要求如下:

  • 一致性要求:计费场景要求数据一条不能丢,这是最基本的诉求。

  • 高可用要求:需具备容灾能力,在异常情况下能够自动修复。

  • 海量存储需求:在移动互联网时代,产生大量的交易数据,需要具备海量堆积能力。

  • 快速响应要求:在亿级支付场景下,要求 MQ 能提供平滑的响应时间,尽可能控制在 10ms 内。


针对自己的业务场景,腾讯对Pulsar做了四个方面的优化:


  • 支持延迟消息和定时重试(2.4.0 支持)。

  • 支持二级 Tag。

  • 完善控制台,支持消息查询和消费追踪。

  • 完善的监控和告警体系。


整体架构如下:

640?wx_fmt=png

  • Broker 作为消息队列代理层,负责消息的生产和消费请求,支持水平扩展,根据负载按 Topic 自动进行均衡。

  • BookKeeper 作为消息队列的分布式存储中心,可配置多个消息副本,在异常情况下具备 Failover 能力。

  • ZooKeeper 作为消息队列的元数据和集群配置中心。

  • 支持多种消费模式,其中 Shared 模式下的消费者突破对分区个数的依赖, function 模式非常适合简单的交易流水清洗场景。

  • 提供了统一的 HTTP proxy 接入能力,方便其它语言接入。

  • 腾讯计费还有部分业务是 JS 和 PHP 等语言,提供了统一的 HTTP proxy 接入能力,并对客户端加上生产失败重试能力,提升生产成功率。集群出现异常时,客户端会做降级处理,将消息发送至本地或发送至容灾集群。


Apache Pulsar 在 EMQ 物联网平台产品 ActorCloud 上的应用

该篇演讲作者:Rocky Jin,产品总监,杭州映云科技有限公司 EMQ X 产品负责人。

ActorCloud选择Pulsar的原因包括:


  • 高可用、高扩展性、部署简单、易运维。 

  • 高吞吐:单个分区高达 1.8 M 消息/秒,这一特点完全符合我们数据量大的需求。

  • Pulsar Functions 是一个轻量化的计算平台,能从一个或多个 Pulsar 主题中消费消息,把用户提供的处理逻辑应用于每个消息,把计算结果发布到另一个主题。Pulsar Functions 支持 Thread、Process、Kubernetes 等运行时,这为我们编写、运行和部署 Functions 提供了很好的灵活性,所以我们只用关心计算逻辑,无需处理复杂的配置或管理,更便捷地构建基于消息触发的流平台。

  • 存储计算分离,IO 隔离,能够灵活处理数据,处理和存储可以独立扩展。


640?wx_fmt=png

ActorCloud 把基于 SQL 的业务规则通过 API 的方式传入到数据处理规则管理引擎中,并将这些业务规则翻译为 Pulsar 中对应的 Source、Functions 和 Sink。Pulsar 的 Source 通过共享订阅的方式对接入 EMQ X Broker 设备数据进行消费,Pulsar 将这些数据进行持久化 ,并通过扩展 Pulsar 的 Functions 来对消息进行实时处理,处理完后通过 Sinks 将数据发送到相关的外部系统中。

640?wx_fmt=png

ActorCloud 利用Pulsar Functions 支持 Thread、Process、Kubernetes 的特性,为编写、运行和部署 Functions 提供了很好的灵活性,所以在 ActorCloud 物联网平台上,只需关注计算逻辑,无需处理复杂的配置或管理,就能更加便捷地构建基于消息触发的流平台。

我们看一个案例:

640?wx_fmt=png

Apache Pulsar 在雅虎日本用户案例


本文作者:Nozomi Kurihara 雅虎日本消息平台团队经理

雅虎日本选择Pulsar的主要原因如下:

  • 可扩展性

  • 多租户支持

  • 异地备份

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

雅虎日本使用Pulsar的架构如下:

640?wx_fmt=png

640?wx_fmt=png

雅虎日本在生产中的应用案例:

  • 内容更新通知

640?wx_fmt=png
  • 邮箱服务队列

640?wx_fmt=png
  • 日志收集

640?wx_fmt=png
  • 日志过滤收集

640?wx_fmt=png

欢迎点赞+收藏+转发朋友圈素质三连

640?wx_fmt=jpeg640?wx_fmt=jpeg

文章不错?点个【在看】吧! ?

这篇关于Apache Pulsar崛起 | Meetup北京站全解析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/1143169

相关文章

SpringBoot整合Sa-Token实现RBAC权限模型的过程解析

《SpringBoot整合Sa-Token实现RBAC权限模型的过程解析》:本文主要介绍SpringBoot整合Sa-Token实现RBAC权限模型的过程解析,本文给大家介绍的非常详细,对大家的学... 目录前言一、基础概念1.1 RBAC模型核心概念1.2 Sa-Token核心功能1.3 环境准备二、表结

Java 关键字transient与注解@Transient的区别用途解析

《Java关键字transient与注解@Transient的区别用途解析》在Java中,transient是一个关键字,用于声明一个字段不会被序列化,这篇文章给大家介绍了Java关键字transi... 在Java中,transient 是一个关键字,用于声明一个字段不会被序列化。当一个对象被序列化时,被

Java JSQLParser解析SQL的使用指南

《JavaJSQLParser解析SQL的使用指南》JSQLParser是一个Java语言的SQL语句解析工具,可以将SQL语句解析成为Java类的层次结构,还支持改写SQL,下面我们就来看看它的具... 目录一、引言二、jsQLParser常见类2.1 Class Diagram2.2 Statement

python进行while遍历的常见错误解析

《python进行while遍历的常见错误解析》在Python中选择合适的遍历方式需要综合考虑可读性、性能和具体需求,本文就来和大家讲解一下python中while遍历常见错误以及所有遍历方法的优缺点... 目录一、超出数组范围问题分析错误复现解决方法关键区别二、continue使用问题分析正确写法关键点三

使用Java实现Navicat密码的加密与解密的代码解析

《使用Java实现Navicat密码的加密与解密的代码解析》:本文主要介绍使用Java实现Navicat密码的加密与解密,通过本文,我们了解了如何利用Java语言实现对Navicat保存的数据库密... 目录一、背景介绍二、环境准备三、代码解析四、核心代码展示五、总结在日常开发过程中,我们有时需要处理各种软

Python多进程、多线程、协程典型示例解析(最新推荐)

《Python多进程、多线程、协程典型示例解析(最新推荐)》:本文主要介绍Python多进程、多线程、协程典型示例解析(最新推荐),本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定... 目录一、multiprocessing(多进程)1. 模块简介2. 案例详解:并行计算平方和3. 实现逻

Spring Boot拦截器Interceptor与过滤器Filter深度解析(区别、实现与实战指南)

《SpringBoot拦截器Interceptor与过滤器Filter深度解析(区别、实现与实战指南)》:本文主要介绍SpringBoot拦截器Interceptor与过滤器Filter深度解析... 目录Spring Boot拦截器(Interceptor)与过滤器(Filter)深度解析:区别、实现与实

MyBatis分页插件PageHelper深度解析与实践指南

《MyBatis分页插件PageHelper深度解析与实践指南》在数据库操作中,分页查询是最常见的需求之一,传统的分页方式通常有两种内存分页和SQL分页,MyBatis作为优秀的ORM框架,本身并未提... 目录1. 为什么需要分页插件?2. PageHelper简介3. PageHelper集成与配置3.

SQL 外键Foreign Key全解析

《SQL外键ForeignKey全解析》外键是数据库表中的一列(或一组列),用于​​建立两个表之间的关联关系​​,外键的值必须匹配另一个表的主键(PrimaryKey)或唯一约束(UniqueCo... 目录1. 什么是外键?​​ ​​​​2. 外键的语法​​​​3. 外键的约束行为​​​​4. 多列外键​

Java进行日期解析与格式化的实现代码

《Java进行日期解析与格式化的实现代码》使用Java搭配ApacheCommonsLang3和Natty库,可以实现灵活高效的日期解析与格式化,本文将通过相关示例为大家讲讲具体的实践操作,需要的可以... 目录一、背景二、依赖介绍1. Apache Commons Lang32. Natty三、核心实现代