问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

Apache Pulsar 之企业级特性-多租户介绍

发布网友 发布时间:2022-09-04 02:15

我来回答

1个回答

热心网友 时间:2024-05-27 16:26

Apache Pulsar 最初诞生于雅虎,当时就是为了解决雅虎内部各个部门之间数据的协调,所以多租户特性显得至关重用,Pulsar 从诞生之日起就考虑到多租户这一特性,并在后续的实现过程中,将其不断的完善。 多租户这一特性,使得各个部门之间可以共享同一份数据,不用单独部署独立的系统来操作数据,很好的保证了各部门间数据一致性的问题,同时简化维护成本。

在介绍 Pulsar 多租户之前,先来看一下,正常一个系统要实现一个多租户需要做哪些事情:

Pulsar 的多租户设计符合上述要求:

如下图所示:在一个 Pulsar 集群中,有三个概念:tenant(图中的 property 是之前的一种叫法,现在更习惯将其称为:tenant)、namespace、topic。这一点从 pulsar 中 topic 的命名组成也可以反应出来,例如: persistent://tenant/namespace/topic ,在 Pulsar 中,使用 tenant , namespace , topic-name 来唯一标识一个 topic。

tenant 代表的是租户名,它是一个资源的隔离单位,一个 tenant 下可以有多个 namespace。namespace 用来管理其下面所属的 topics,可以在 namespace 级别给 topic 设置相应的策略,比如 retention,backlog,ratelimit。一个 namespace 下又可以有多个 topic,他们的权限大小也是由上到下。Pulsar 的多租户通过 tenant、namespace、topic 形成多级管理系统。

开篇中提到,一个多租户系统需要在租户内提供系统级别的安全性,细分来讲,主要可以归类为一下两点:

在 Pulsar 中,多租户的安全性是通过身份验证和授权机制实现的。当 client 连接到 pulsar broker 时,broker 会使用身份验证插件来验证此客户端的身份,然后为其分配一个 string 类型的 role token。role token 主要有如下作用:

Pulsar 目前支持两种身份认证:

当然,用户也可以使用自己实现的身份认证程序。

当身份认证系统识别出客户端的 role token之后,Pulsar broker 会使用授权系统来告诉客户端当前你可以执行哪些操作。授权操作是在 tenant 级别进行配置的,这意味着在 Pulsar 集群中,允许用户根据不同的角色设定多个授权方案。具体的权限操作是在 namespace 级别进行设置和管理的,例如:针对某一个 topic 是否具有 proce 或 consume 的权限归属于 namespace 这个级别来控制。换句话来说:在 tenant 级别 用户可以配置,什么样的 role 拥有对哪些 tenant 操作的权限,在 namespace 级别用户可以配置,针对某一 topic 当前role拥有什么样的权限,又回到了开头所介绍的,namespace 主要用来管理它所包含的 topics 的属性。

通过认证和授权系统巧妙的将租户与 topics 之间的执行权限等问题剥离开来,从而实现在租户内满足系统级别安全性的目的。

隔离性主要分为如下两种:

在 Pulsar 中,为了保证良好的扩展性,采用了存储和计算分离的架构设计,而存储(bookie)和计算 (broker)又是 proce 和 consume 所共享的资源,为了更好的实现隔离性,Pulsar 分别在存储和计算层做了不同的处理。

在存储方面,Apache Pulsar 使用了另外一个 Apache 的顶级项目 Bookkeeper 来作为其存储层。bookie 是 Bookkeeper 中的一个实例,一个 bookie 拥有多个 ledgers,每个 ledger 对应 Pulsar 中的一个 topic。Bookkeeper 本身的 I/O 分离能够很好的为此做支撑。在单个 bookie 中,有一个 journal 日志文件(一般有一块专有的 journal 盘用于 journal 文件的写入)(类似于 LSMTree 中的 WAL 文件)会以 append 的形式将所有的写操作追加写入其内部。当写入完成之后,后台会有一个单独的线程来定期将 journal 文件的数据 flush 到磁盘中。这种 I/O 架构的设计实现了写入和读取操作之间的隔离,这样租户可以尽可能快的读取数据,同时写的吞吐量和延迟不会受到读取操作的影响。

除了 I/O 隔离外,不同的租户可以为不同的 namespace 配置不同的存储配额。如果租户内消息的大小达到了存储配额的*,Pulsar 会采取相应的措施,例如:阻止消息生成,抛出异常或丢弃消息等。

为了满足 SLAs, Pulsar 在 Broker 层面也提供了多种机制。首先,在 Pulsar broker 中的一切操作都是异步进行的。每个 Broker 使用的内存资源是有上限的,当 Broker 达到配置的 CPU 或内存使用的阈值,Pulsar 会迅速的将流量转移到负载较小的 Broker 上来处理。在 Pulsar 中,有一个组件 load manager component专门用来处理这种情况,这受益于 Pulsar 优秀的架构设计:计算与存储分离。这使得 Broker 近乎是无状态的,Broker 本身不存储任何数据,所以这种流量负载的转移成本很小而且速度很快,所以在这里并不需要担心流量负载时租户的特性是否会打折扣。

其次,在消息的生产和消费方面,Pulsar 都做了流量控制。在生产者方面 ,租户可以配置当前消息发送到 broker 和 bookies 的速度,避免当前用户发送消息的速度大于系统本身处理消息的能力。在消费者方面,租户可以配置当前 broker 可以给 consumer 发送多少未完成的消息。除此之外,Pulsar 还可以* Broker 以指定的速率向消费者投递消息,避免消费者的消费能力大于当前 Broker 的处理能力。

软隔离中提到的机制可以确保 Pulsar 在共享 Broker 和 Bookies 资源时能很好的保证隔离性。但是,在某些情况下,应用程序也需要物理资源隔离。Pulsar 允许将某些租户或名称空间与特定 Broker 进行隔离。这可确保这些租户或命名空间可以充分利用该特定 Broker 上的资源。

此选项还可用于测试不同的配置,调试并快速响应生产中发生的任何意外情况。例如,当前有一个用户可能在 Broker 触发可能影响其他租户性能的不良行为。在这种情况下,可以将该特定租户物理隔离出来,然后进行确认或者修复。

除了物理隔离 Broker 上的流量之外,你还可以隔离存储相关的业务。可以在 namespace 级别来配置相关的 placement policy来达到目的。

声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
教材电子版去哪里找 九阳豆浆机打不放网罩能打干豆吗 深圳和记中转场干什么用 腹部增强CT查什么 腹部ct增强检查是什么 腹部加强ct检查出什么 设置好的电脑壁纸老爱自己变我的电脑为什么在老是自动换桌面壁纸 蛇能极速爬行靠什么 武昌理工学院宿舍条件怎么样 河北省人港澳通行证怎样续签? the face shop大米系列的真假 种植什么花草夜晚要开灯 家里种的植物,晚上需要放到阳台吗? 种花适合今天晚上吗? 花种子晚上能种吗 房子1~3楼都有柱子但楼顶没有预留有钢筋,现在想加俩层可以植钢筋... 坡屋顶吊顶釆取植筋浇砼,砖垟钢筋植筋能满足要求吗 屋顶上四周原有梁结构,现在要加楼板,采用后植筋,跨度为5.7*6.3米该配... 屋顶加层 梁加大 植筋锚固长度 房顶楼板打了很多孔然后植入钢筋对楼板防水有什么瘾患? 私人盖房屋顶植筋断了可以吗? 25×4×24怎么简便运算? 怎样教育十一二岁的男孩子 十一岁的男孩子最让人头疼,他喜欢跟你对着干,这男孩子应该怎样教育呢... 微信里怎么弄2016微信公开课 ...四个在四周一个圆圈上中间一个大轮子的儿童车,叫什么,哪里有卖_百 ... 适合景区种植的花卉有哪些 PS中如何制作点状字? 高锰酸钾有腐蚀性吗? 高锰酸钾的腐蚀性强还是硫酸的腐蚀性强 Elasticsearch为啥这么快 超市买的白醋能吃吗 ...玉镯二万九千八买到手,感觉上当受骗了,怎么维权退了? WTable:RocksDB使用技巧之分布式存储扩容演进 醋可以吃吗 比亚迪DiLink3.0系统发布 升级五大平台 团队标志logo设计图简洁好看 八字金多的是富贵命 八字喜金的建议 大师,这个八字喜金的走的第三个第四个大运全是金,是不是很好?帮我批注... 存贷汇票是什么? 什么是存贷汇票 荣耀X10指纹支付系统错误 一帆风顺叶尖发黑干枯是怎么回事 孩子正处于叛逆期,作为家长在教育方面感觉很无助,怎样教育高中生? 孩子马上就要上高中了,如何教育孩子好一些?孩子上高中家长如何做? 家长应该怎么教育高中生 华为手机屏幕突然变黑白了怎么办? 当你给别人敬烟时,别人没点燃。而自己点燃是不是不礼貌! 右边怎么做啊 word右边留40mm怎么做
  • 焦点

最新推荐

猜你喜欢

热门推荐