1.Apache Pulsar (孵化器项目)是一个企业级的发布订阅(pub-sub)消息系统,最初由 Yahoo 开发,并于 2016 年底开源,现在是 Apache 软件基金会的一个孵化器项目。Pulsar 在 Yahoo 的生产环境运行了三年多,助力 Yahoo 的主要应用,如 Yahoo Mail、Yahoo Finance、Yahoo Sports、Flickr、Gemini 广告平台和 Yahoo 分布式键值存储系统 Sherpa。
原文:https://www.infoq.cn/article/2017/11/apache-pulsar-brief-introduction
2.多租户的理解
一、多租户SaaS架构
小A、小B、小C大学毕业后,一起同租了一套三室两厅的房子。三个人都拥有自己独立的房间,且每个房间都有配有一把钥匙,保证三个人独立的空间私密性。如果其他人要进入别人的房间,就需要拥有配套房间的钥匙进行开锁。而客厅、餐厅、厨房等属于公共区域,三人共同享有这些资源。
这里小A、小B、小C就属于应用SaaS多租户解决方案的企业实体。应用运行在同一个或同一组服务商(即三个人同租一套房子,厨房、餐厅、客厅是多租户环境下的系统和应用程序、组件),每个数据库都存储来自多个独立租户的数据(即房子拥有三间不同的房间),然后通过使用保护数据隐私的机制来逻辑隔离不通租户之间的数据(即每个房间都有配套的钥匙来保证安全隔离)。因此多租户架构也被称为单实例架构(Single Instance)。
在多租户环境中,由于应用都运行在相同的服务器上,所有的数据都保存在同一个多租户隔离的数据库中,因此多租户模式通常会比较节省硬件资源。但是由于多租户SaaS架构需要具备相同的硬件、网络和操作系统配置能力,所以很难实现根据单一用户的需求去做功能上的定制化,也很难根据某个用户的请求进行常规的系统升级、重启之类的操作。
二、单租户SaaS架构
如果多租户是多个人租一套房子,每个人拥有一个房间,那么单租户就是一个人租一套房子,无须与其他人共享客厅、餐厅、厨房等资源。单租户SaaS架构中,每个客户都会有独立的软件和硬件环境支撑系统运行,每个数据库仅存储来自一个租户的数据,因此单租户模式通常也被称为多实例架构(Multiple Instance)。
单租户模式下,不同客户之间的应用软件和数据一般通过硬件来进行隔离,因此单租户模式被广泛应用在客户需要支持定制化的应用场景。每个租户可以购买特定的软件实例,通过定制化满足他们的特定需求。除了云服务提供商提供的基础功能,用户也拥有很多的可配置能力:比如,用户可以调整不同的配置需求,向内部数据库或者外部合作伙伴的数据库添加不同的模块。
三、SaaS多租户和单租户有什么分别?
1、安全管控等级不同
SaaS多租户的数据库存储来自多个独立租户的数据,虽然设置有安全隔离,但在安全管控等级上,还是单租户更高。因为单租户拥有独立的软件和硬件环境,数据库也仅存储一个租户的数据,这从技术上就禁止了数据泄露的可能性。单租户的架构有时候更适合某些需要安全管控、甚至必须有法律合规性要求的行业。
2、数据备份复杂程度不同
SaaS单租户拥有独立数据库,因此备份恢复客户数据库非常容易。而多租户是共用一个数据库,租户的数据既有隔离又有共享,系统不能每天自动执行企业的独立备份。若企业需要数据备份,必须每天通过API自己去手动操作。如果出现故障,数据恢复比较困难,因为牵扯到其他租户的数据,所以需要逐表逐条备份和还原,倘若需要跨租户统计数据,更是困难。这也是多租户SaaS架构的最大缺点。
3、可配置能力不同
SaaS多租户很难实现根据单一用户的需求去做功能定制化,因为是使用共享系统,通常无法对平台进行更改,即使是只更改一行代码这样简单的定制化开发。就像多个人同租一套房子,大家共用可以降低房租成本,但是在居住时不能根据自己的喜好随意配置房子。而单租户不同,房子只由一个人使用,可以根据自身需要配置或更改房间物品,它可能比多租户花费更多的费用,但提高了灵活性,支持定制化,可以调整不同的配置需求。大企业如证券交易所、银行、保险公司、电信公司及航天企业等是需要能定制的SaaS、PaaS及IaaS部署、运维及IT服务,故多租户公有云模式并不适合。
4、控制升级时间不同
SaaS多租户的系统维护成本低,多租户系统在升级时,只需要更新一次,维护人员不需要对每个用户更新,节省了很大的运维成本,这对于所有客户都在做同样事情的系统来说是很有用的。但倘若系统升级时间是在企业特别忙碌的时候出现,势必会对企业用户造成影响。同理,如果出现问题或故障需要重启系统,也必须等到晚上才能操作,因为重启会影响到其他企业的使用。而单租户系统就避免了这样的问题。在单租户系统中,每个用户需要单独升级,这使得企业可以控制升级的时间和方式,选择延迟甚至跳过升级周期。
TDMQ
Topic命名规则
Topic完整名称由租户名+命名空间+Topic
对应云环境:租户名为appid, 命名空间为环境变量
Why we moved from Apache Kafka to Apache Pulsar
https://streamnative.io/en/blog/tech/2020-04-21-from-apache-kafka-to-apache-pulsar/
文章
Apache Pulsar 在腾讯计费场景下的应用
TDMQ跨城方案
Pulsar 基本概念
Pulsar 里的信息传递究竟是什么样子
互动连线|Topic 与 Broker 之间的秘密
Apache Pulsar 与 Kafka 性能比较:延迟性(测试方法)
Kafka-on-Pulsar 的前世今生
为什么他们将 Kafka 换成了 Pulsar?
其它