写点什么

pulsar:创建更多租户 VS 创建更多 namespaces

作者:李code
  • 2023-03-30
    广东
  • 本文字数:1039 字

    阅读完需:约 3 分钟

pulsar:创建更多租户 VS 创建更多namespaces

1)问题背景

今天有个同事过来问我

saas 系统里他有一批租户,每个租户都有自己的数据,他想放进 pulsar 里,提供给下游服务,按租户处理入库

他有两个想法,让我帮忙参考下

1.1 )多租户,一对一

一个 saas 租户对应一个 pulsar 租户

1.2 )单租户,多命名空间

设置一个专门的 pulsar 租户,每个外部 saas 租户只是里面一个命名空间

我想了下,决定先分析一下,再装逼

2)业务场景分析

脱离业务谈架构,是有点扯淡的,首先分析下同事的这个场景:

问:用 pulsar 做什么?

多租户的数据,需要根据租户区分,进行数据处理并入库

问:某一个 saas 租户的数据过多,影响其他租户介意吗

介意,需要资源隔离,资源配额

问:现在有多少个 topic?

现在只有一个 topic,以后不一定会新增


分析下来,该场景只是需要区分不同 saas 租户而已,每个 saas 租户的 topic 也少的可怜,根本不值得单独开一个 pulsar 租户


于是我告诉他:你可以把每一个 saas 租户的数据,作为一个 topic,用 topic name 去区分不同租户

然后消费者,自行去拼接 name 即可


同事欢天喜地的走了,留下我继续思考

3)思考

3.1)不同业务场景下,一定要 saas 租户与 pulsar 租户一对一吗

不一定。

我记得,曾经 kafka 盛行的时候,多租户的概念还不是很流行

为了应对不同用户的数据,经常喜欢用 topic name 前缀来区分


并不能因为 pulsar 对多租户场景支持,就盲目为每一个用户分配一个 pulsar,即使根本得不偿失

面对数据量小,topic 数量少的情况,命名空间/topic 级别,就足够应付了

新建一个 pulsar 会带来很多资源/管理上的消耗

上面说不要盲目使用租户,当然了,合理的 saas 场景来了,还是要用的。。。。

3.2)(多租户,少命名空间) VS (少租户,多命名空间),哪种更好

pulsar 在 topic 之上,提供了两级分层,租户命名空间

那我面对大量需要分别存储的数据,数量非常大,我是不停的加租户,还是不停的加命名空间呢?

你去搜网上,基本都会给一些官方话语:根据自身业务选择


要我说,两者的配置,基本大差不差,比较特殊的是租户还承担了认证/授权的职责

3.3)数据一样,租户越多消耗越大,还是命名空间更耗资源

租户与命名空间,可配置的都差不多,都需要维护类似的元数据

  • 资源配额

  • 访问控制列表,ACL

  • 资源使用情况

  • 名称

等等等等等


但是租户还需要维护一些别的

1)有哪些命名空间

2)认证信息

所以相应消耗更大

4)总结

  • 使用 mq,不是只有 saas 多租户,不要为了用而用

  • 对(租户,业务)等社会属性不敏感,可以不用强行单独出一个租户,使用命名空间也不错

  • 租户的资源开销,比命名空间稍大一些

  • 资源配额啥的,租户,命名空间,甚至 topic 都支持,但是认证只有租户级别才有


发布于: 刚刚阅读数: 3
用户头像

李code

关注

还未添加个人签名 2022-07-22 加入

还未添加个人简介

评论

发布
暂无评论
pulsar:创建更多租户 VS 创建更多namespaces_架构_李code_InfoQ写作社区