apache pulsar_Apache Pulsar:分布式Pub-Sub消息系统

apache pulsar

Apache Pulsar是一个开源的分布式pub-sub消息传递系统,最初是由Yahoo创建的,并且是Apache Software Foundation的一部分 。

Pulsar是用于服务器到服务器消息传递的多租户高性能解决方案。

脉冲星的主要功能包括[4]:

  • 对Pulsar实例中的多个集群的本地支持,跨集群的消息进行无缝的地理复制
  • 极低的发布和端到端延迟
  • 无缝扩展可扩展到超过一百万个主题
  • 一个带有Java , Python和C ++绑定的简单客户端API
  • 主题的多种订阅模式 ( 独占 , 共享和故障转移 )
  • 由Apache BookKeeper提供的持久性消息存储保证了消息的传递

架构概述

在最高级别,一个Pulsar实例由一个或多个Pulsar簇组成。 一个实例中的集群可以在它们之间复制数据[4]。

下图提供了脉冲星团的图示:

与Apache Kafka的Pulsar比较

下表列出了Apache Pulsar和Apache Kafka [5]之间的异同:

卡夫卡 脉冲星
概念 生产者主题消费者组消费者 生产者主题订阅消费者
消费 更侧重于流,分区上的独占消息传递。 没有共享消费。 统一消息传递模型和API。
  • 通过独家故障转移订阅进行流式传输
  • 通过共享订阅排队
king 简单的胶印管理
  • 在Kafka 0.8之前,偏移量存储在ZooKeeper中
  • 在Kafka 0.8之后,偏移量存储在偏移量主题上
统一消息传递模型和API。
  • 通过独家故障转移订阅进行流式传输
  • 通过共享订阅排队
保留 邮件将根据保留时间被删除。 如果使用者在保留期之前没有阅读邮件,它将丢失数据。 仅在所有订阅使用完邮件后,邮件才会被删除。 即使订阅的使用者长时间停机,也不会造成数据丢失。

即使所有订阅都使用了邮件,邮件也可以保留配置的保留期限。

TTL 不支持TTL 支持消息TTL

结论

Apache Pulsar是由Apache Incubator PMC赞助的Apache Software Foundation(ASF) [3]进行孵化的一项工作。 由于其独特的功能,它似乎可以替代Apache Kafka。

资源:

[1] https://pulsar.apache.org/ [2] https://developer.yahoo.com/open-source/ [3] https://apache.org / [4] https:// pulsar。 apache.org/docs/latest/getting-started/ConceptsAndArchitecture/ [5] https://streaml.io/blog/pulsar-streaming-queuing/

翻译自: https://www.javacodegeeks.com/2017/12/apache-pulsar-distributed-pub-sub-messaging-system.html

apache pulsar

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python deque索引超出范围_Python基础语法

学习Python的四个要素有数据,函数,条件循环和模块一、数据数据是Python编程过程中的原材料,通过导入数据,对数据进行操作,实现预先设想的功能。数据共有5种类型,分别是字符串、数字、容器、布尔值和空值。字…

Path环境变量的理解以及设置MinGW环境变量

配置path环境变量 在使用MinGW的时候,不小心把path变量的东西全部删掉了,结果只能自己重新设置path变量,首先要知道如何设置path变量。 Path路径:用来指定可执行文件的搜索路径,也就是后缀名为.exe文件,方…

写java代码时的注意事项_从方法返回Java 8的可选项时的注意事项

写java代码时的注意事项Java 8引入的Optional类一直是该语言版本引入的最具争议的功能之一。 尽管我喜欢这个新的Java类的东西比不喜欢的东西多,但在Java方法中将其用作return类型时,需要考虑一些事情。 我将在本文中讨论其中的一些问题,但不…

Linux 命令之 iconv -- 转换文件的字符编码

文章目录一、命令介绍二、命令语法三、常用选项四、命令示例(一)对指定文件进行转码,且输出到指定的文件中一、命令介绍 iconv 命令是 Linux 系统自带的用于转换文件编码的命令行工具,iconv 命令用来转换文件的编码方式&#xff…

python asyncio future_Python asyncio.isfuture方法代码示例

本文整理汇总了Python中asyncio.isfuture方法的典型用法代码示例。如果您正苦于以下问题:Python asyncio.isfuture方法的具体用法?Python asyncio.isfuture怎么用?Python asyncio.isfuture使用的例子?那么恭喜您, 这里精选的方法代…

python爬取网站的图片

python爬取网站的图片 本次爬取图片所需要用到的库:Requests库,BeautifulSoup库,正则表达式,os库。 思路:先爬一张图片,再爬一个网站的图片 先爬一张图片: 首先要得到这张图片的地址&#x…

spring 定时器注释_带注释的控制器– Spring Web / Webflux和测试

spring 定时器注释Spring Webflux和Spring Web是两个完全不同的Web堆栈。 但是, Spring Webflux继续支持基于注释的编程模型 使用这两个堆栈定义的端点可能看起来很相似,但是测试这种端点的方式却完全不同,并且编写这种端点的用户必须知道哪…

python计算方位角_实例讲解:用python 计算方位角(根据两点的坐标计算)记得收藏哦...

今天为大家分享一篇python 计算方位角实例(根据两点的坐标计算),具有很好的参考价值,希望对大家有所帮助。一起来看看吧!知道两点坐标,怎么计算两点方向的方位角?答:首先计算坐标增量dx,dy(两个…

Java 中的自举类,到底是什么?

欲知详情,猛戳:https://www.zhihu.com/question/447748200

数据库考研SQL操作

SQL的动词 SQL功能动词数据查询SELECT数据定义CREATE, DROP, ALTER数据操纵INSERT, UPDATE, DELETE数据控制GRANT, REVOKE 注:以下[ ]表示方括号的内容可要可不要,|表示或,//表示注释。 一、数据定义 1.CREATE 定义模式 CREATE SCHEMA &…

objects jdk8_JDK 9:NotNullOrElse方法已添加到Objects类

objects jdk8JDK 9向Objects类添加了一些新方法&#xff0c;包括本文中突出显示的两个static方法&#xff1a; requireNonNullElse&#xff08;T&#xff0c;T&#xff09;和requireNonNullElseGet&#xff08;T obj&#xff0c;Supplier <&#xff1f;extended T>供应商…

用户登陆_华为路由器AAA用户密码登陆你了解吗?

AAA Authentication&#xff08;认证&#xff09;、Authorization&#xff08;授权&#xff09;、Accounting&#xff08;&#xff09;它提供了认证、授权、计费三种安全功能,可以验证用户帐户是否合法&#xff0c;授权用户可以访问的服务&#xff0c;并记录用户使用网络资源的…

Java API 文档中的接口方法和抽象方法,有什么区别?

欲知详情&#xff0c;猛戳&#xff1a;https://www.zhihu.com/question/445956288

java程序设置jvm_Java程序员应在2018年学习的3种JVM语言

java程序设置jvm如果您是Java程序员&#xff0c;并且想学习更多的编程语言以扩展您的知识和技能&#xff0c;但是不确定选择哪种编程语言&#xff0c;那么您来对地方了。 在本文中&#xff0c;我将分享Java程序员可以在2018年学习的3种JVM语言以及为什么要学习它们。 成为多语种…

word域变成正常文本_【Word小技巧】不学会后悔哦~

工作中使用Word早已成了习惯&#xff0c;因此&#xff0c;今天小编将为大家分享几个实用的的Word小技巧。重叠字快速录入文字录入是word最基本操作&#xff0c;过程中我们难免要输入重叠字&#xff0c;例如&#xff1a;热热闹闹&#xff0c;卿卿我我等……你知道如何快速录入吗…

Java 中把声明变量的语句如果写在循环体内,每次执行时栈内存中的变量和数据是如何变化的?

问题一&#xff1a;如下面的代码示例 1&#xff0c;JVM 是不是会反复回收旧的变量 a 再重新创建新的变量 a 呢&#xff1f;还是旧的变量 a 一直保留在栈内&#xff0c;只是反复赋值 0 而已呢&#xff1f; 代码示例 1&#xff1a; while (true) { int a 0; a 5; }问题二&…

使用Speedment 3.0.17及更高版本简化了事务

交易次数 有时我们想确保我们的数据库操作是原子执行的&#xff0c;并且与其他操作分开。 这是交易起作用的地方。 交易是一组操作 数据库可能接受或不接受作为原子操作的建议。 因此&#xff0c;要么接受交易中的所有操作&#xff0c;要么不接受交易中的所有操作。 事务的另一…

python中常用的方法

python常用方法 字符串&#xff1a; name.title() #字符串的每个单词首字母大写 name.upper() #字符串的字母全部大写 name.lower() #字符串的字母全部小写 name.rstrip() #删除字符串结尾的空白 name.lstrip() #删除字符串开头的空白 name.strip() #删除…

sql server 2008 年累计数_Windows Server 2008 和 SQL Server 2008将终止支持 迁移至Azure 微软提供3年免费技术支持...

点击上方蓝色字关注我们~迁移至 Azure 并利用免费扩展安全更新。了解有关支持终止建议的更多信息&#xff0c;请使用浏览器访问&#xff1a;https://www.microsoft.com/zh-cn/sql-server/sql-server-2008.对您意味着什么1 2017年基于风险的安全报告; 思科 2017 年度网络安全报告…

递归调用方法时栈内存是如何变化的?(使用内存图演示递归调用过程)

文章目录 什么是栈内存演示方法递归调用过程什么是栈内存 在学习递归实现原理之前,我们先了解一下栈内存。 栈内存是计算机中的一种数据存储方式,是 Java 进程启动时候在内存中开辟的存储空间。 栈内存的利用方式遵循 LIFO(后迚先出)原则Java 所有局部变量都在栈中分配(压入…