Pulsar基础(三)—多租户模式介绍

多租户模式介绍

什么是多租户?

  • 多租户是一种架构,目的是为了让多用户环境下使用同一套程序,且保证用户间数据隔离
  • 简单讲:在一台服务器上运行单个应用实例,它为多个租户(客户)提供服务。
  • 多租户这一特性,使得各个部门之间可以共享同一份数据,不用单独部署独立的系统来操作数据,很好的保证了各部门间数据一致性的问题,同时简化维护成本。

Pulsar 的多租户设计符合以下要求:

  • 使用身份验证、授权和 ACL(访问控制列表)确保其安全性
  • 为每个租户强制执行存储配额
  • 支持在运行时更改隔离机制,从而实现操作成本低和管理简单
多租户特性:

Pulsar的多租户性质主要体现在topic的URL中, 其结构如下:

persistent://tenant/namespace/topic

可看出对应关系:一个租户下可以由多个namespace,一个namespace下可以由多个topic

多租户的认证和授权

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

  • 租户只能访问它有权限访问的 topics
  • 不允许访问它无法访问的 topics
role token

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

role token 主要有如下作用:

  • 判断 client 是否有对 topics 进行生产或消费消息的权限
  • 管理租户属性的配置
支持的Token认证

Pulsar 目前支持一下几种身份认证, 同时支持自定义实现自己的身份认证程序

  • TLS 客户端身份认证
  • 雅虎的身份认证系统: Athenz
  • Kerberos
  • JSON Web Token 认证

隔离性

隔离性是Pulsar多租户的一个特性,主要分为软隔离和硬隔离两种

软隔离
  • 通过磁盘配额、流量控制和限制等手段
存储:
  • Pulsar 使用Bookkeeper来作为其存储层, bookie是Bookkeeper的实例, Bookkeeper本身就是具有I/O分离(读写分离)的特性,可以很多的做好IO隔离, 提升读写的效率
  • 不同的租户可以为不同的namespace配置不同的存储配额, 当租户内消息的大小达到了存储配额的限制, Pulsar会采取相应的措施, 例如: 阻止消息生成, 抛异常 或丢弃数据等
Broker
  • 每个Borker使用的内存资源都是有上限的, 当Broker达到配置的CPU或内存使用的阈值后, Pulsar会迅速的将流量转移到负载较小的Broker处理
  • 在生产和消费方面, Pulsar都可以进行流量控制,租户可以配置发送和接收的速率,避免出现一个客户端占用当前Broker的所有处理资源
硬隔离
  • 隔离物理资源
  • Pulsar 允许将某些租户或名称空间与特定 Broker 进行隔离。这可确保这些租户或命名空间可以充分利用该特定 Broker 上的资源。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

稷下学员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值