聊聊Pulsar,一款非常优秀的消息中间件!!!

「这是我参与11月更文挑战的第6天,活动详情查看:2021最后一次更文挑战」。

有一个爱学习的研发老总,总是爱尝试不同的技术,这不,又让我来研究研究Pulsar,我之前用的消息中间件基本上都是RabbitMQkafka,这次的项目老总说,用Pulsar。之前都没用过,心里没底,既然要用,那就肯定要好好研究了。

直接扔给我一份英文文档,哎,太瞧得起我了,想要学习Pulsar的小伙伴,文档百度云盘链接自行下载。

image-20211124193918701

链接:pan.baidu.com/s/1H2qcygZO…

提取码:pbzj

现在项目中基本上用起来了,简单聊聊Pulsar这框架吧?我目前所知道的基本都是网上获取的,基本知识点,还没深入进去,很多坑还没踩。最近项目中工作也很多,基本上没事时间写文章了(都是借口,哈哈)。

首先还是来了解一下什么是Pulsar吧,有那么多的消息中间件,为什么还要搞一个Pulsar呢?

Pulsar是什么?

先去官网看看,学习新的技术,官网肯定是第一选择。

官网:pulsar.apache.org/docs/zh-CN/…

Pulsar 是一个用于服务器到服务器的消息系统,具有多租户、高性能等优势。

Pulsar 源自Yahoo,于2016年开源并捐献给Apache基金会,并在2018年9月升级成为Apache顶级项目。

Pulsar 这个消息平台近两年非常火,被称为下一代的消息流平台,大有取代Kafka的势头。

Pulsar基本架构

  • Pulsar采用存储计算分离的架构,pulsar使用了bookkeeper做消息的存储,bookkeeper保证了消息存储的可靠性和高效性,bookkeeper为pulsar提供了存储的扩展能力。
  • Pulsar使用zk做元数据存储。
  • 多租户,pulsar最初的设计就是支持多租户的。
  • 命名空间:一个租户可以有多个命名空间,一个topic属于一个命名空间,pulsar中的配置都是以命名空间为单位配置的。

  • Pulsar的broker用于处理消息的读写,broker中会有消息的本地缓存,因为多数场景下,消息被写入后会立刻被消费,因此broker中持有的新消息的缓存能非常有效的提高性能和MQ的整体吞吐。

相比kafka、rocketmq等MQ,pulsar基于bookkeeper的存储计算分离架构,使得pulsar的消息存储可以独立于broker而扩展。

多租户

多租户也是一个刚需功能,可以在同一个集群中对不同业务、团队的数据进行隔离。

persistent://core/order/create-order
复制代码

以这个 topic 名称为例,在 core 这个租户下有一个 ordernamespace,最终才是 create-ordertopic 名称。

在实际使用中租户一般是按照业务团队进行划分,namespace 则是当前团队下的不同业务;这样便可以很清晰的对 topic 进行管理。

通常有对比才会有伤害,在没有多租户的消息中间件中是如何处理这类问题的呢:

  1. 干脆不分这么细,所有业务线混着用,当团队较小时可能问题不大;一旦业务增加,管理起来会非常麻烦。
  2. 自己在 topic 之前做一层抽象,但其实本质上也是在实现多租户。
  3. 各个业务团队各自维护自己的集群,这样当然也能解决问题,但运维复杂度自然也就提高了。

以上就很直观的看出多租户的重要性了。

应用

除此之外的上层应用,比如生产者、消费者这类概念与使用大家都差不多。

比如 Pulsar 支持四种消费模式:

  • Exclusive:独占模式,同时只有一个消费者可以启动并消费数据;通过 SubscriptionName 标明是同一个消费者),适用范围较小。
  • Failover 故障转移模式:在独占模式基础之上可以同时启动多个 consumer,一旦一个 consumer 挂掉之后其余的可以快速顶上,但也只有一个 consumer 可以消费;部分场景可用。
  • Shared 共享模式:可以有 N 个消费者同时运行,消息按照 round-robin 轮询投递到每个 consumer 中;当某个 consumer 宕机没有 ack 时,该消息将会被投递给其他消费者。这种消费模式可以提高消费能力,但消息无法做到有序。
  • KeyShared 共享模式:基于共享模式;相当于对同一个topic中的消息进行分组,同一分组内的消息只能被同一个消费者有序消费。

第三种共享消费模式应该是使用最多的,当对消息有顺序要求时可以使用 KeyShared 模式。

关于 pulsar 基本知识点,我这里就不一一介绍了,介绍的话我也是拷贝过来的,我觉得看别人写的头头是道,你还不如自己去实践一遍,这样才能加深自己的印象,目前 pulsar 只能在Linux系统下安装。使用起来也很简单,几行代码就搞定了。多尝试,软件行业技术更新就是这么快,坚持学习,才能不被淘汰。

结语

看了很多网上一些人对于pulsar的前景看法,基本上都是比较看好的,Pulsar 社区一直在不断发展壮大,Pulsar 技术的发展和用例数量的增加已经形成良性循环,Pulsar 生态也在壮大。

Pulsar 也具有许多优势,因此能够在统一的消息和事件流平台脱颖而出,并成为更多人的选择。相比于 Kafka,Pulsar 更具有弹性,在运维和扩展上更为简单。

感兴趣的可以去研究研究,相比于摸鱼一天,不如利用时间多学一些感兴趣的知识,其实不仅是技术文章,天文地理都可以去了解(我就喜欢看宇宙方面的知识)。

猜你喜欢

转载自juejin.im/post/7034306102049112071
今日推荐