共计 1746 个字符,预计需要花费 5 分钟才能阅读完成。
引言
在过来十年里,MQTT 协定在物联网畛域取得了宽泛的利用。很多物联网服务提供商都须要灵便可扩大的 MQTT 服务,采纳多租户架构的 MQTT 则为他们提供了一种新的抉择。
本文将探讨 MQTT 多租户架构以及其为用户带来的劣势和挑战。
什么是多租户架构?
多租户(Multi-tenancy)是一种软件架构模式,它能让利用的单个实例同时为多个租户(用户或客户)提供服务,每个租户都领有本人独立的数据和配置。
在这种架构下,多个租户共用同一套基础设施、数据库和集群,但每个租户只能拜访属于本人的数据和配置。这意味着租户能够依据本人的需要定制服务,而不会影响其余租户的数据或配置。同时,提供商也能够通过在同一套基础设施上为多个租户提供服务来降低成本。
对于 MQTT Broker 而言,多租户架构是一种高效且经济的解决方案,能够同时为多个客户或团队提供 MQTT 服务。
MQTT 中的多租户架构:实现每个租户的数据隔离
MQTT Broker 多租户架构的外围是数据隔离。这样能够确保每个租户都将本人视为整个集群的惟一用户,他们不能拜访其余租户的客户端,更不能与其余租户的客户端互动。它包含以下五个次要方面:
- 无需对客户端限度。客户端能够应用任意客户端 ID、用户名和明码,不受其余租户的影响。甚至不同的租户能够应用雷同的客户端 ID 同时接入。
- 认证 / 受权数据隔离。每个租户都有本人独立的认证和受权数据,用于管制客户端登录和主题的公布 / 订阅权限。租户只能操作本人的数据,而且这些数据只对该租户的客户端失效。
- 音讯隔离。不同租户的客户端不能互相通信。只管租户能够应用任意主题,包含其余租户应用的主题,然而音讯依然齐全隔离。
- 独立的用户层接口。包含治理网站和 HTTP API。租户只能治理和查看本人的数据,不能批改其余租户的数据。
- 差异化配置。应该为每个租户提供独立的配置,以满足他们特定的资源和性能需要。
MQTT 多租户架构的劣势和挑战
MQTT 多租户架构为物联网解决方案提供商带来了双重劣势:
- 灵活性:MQTT 多租户架构比专有架构更加灵便。这次要体现在两个方面:一是它无需为每个租户独自搭建基础设施,能够疾速提供 MQTT 服务。二是它能够在不中断服务、不重新分配底层基础设施的状况下,为单个租户量身定做免费套餐。
- 节省成本:MQTT 多租户架构是专用架构的低成本代替计划,能够让多个租户共享同一套基础设施。相同,专用架构要求每个租户都有本人的基础设施,这在建设和保护方面会带来高额的老本。
但同时,采纳 MQTT 多租户架构也存在一些挑战:
- 保障正确隔离租户数据。在任何状况下,租户都不能拜访或治理其余租户的设施和数据。因而,必须采取严格的安全措施,包含紧密的拜访控制策略、正当的认证和受权机制、以及基于角色的访问控制。必要时采纳数据加密来确保数据在传输过程中的平安。
- 无效治理资源竞争。因为多个租户共享同一套基础设施,例如网络带宽、CPU 或内存等,租户之间必然存在资源竞争的状况。关键在于零碎必须可能限度租户对资源的应用,以防止某资源被某个租户齐全耗尽,而影响到其余租户的失常应用。通常状况下,咱们能够通过为每个租户设置配额和速率限度策略来管制资源的耗费。例如,能够为租户设定最大连接数和订阅数的限度,以及音讯速率的限度。一旦达到限度,服务能够拒绝请求,以避免租户对资源的适度耗费。
EMQX Cloud Serverless:基于多租户架构的 MQTT 服务
EMQ 基于翻新的多租户技术推出了一种 Serverless MQTT 服务 – EMQX Cloud Serverless。EMQX Cloud Serverless 能够让用户在几秒内疾速部署 MQTT 服务,无需放心服务器基础设施治理或服务扩大时的资源分配问题 。它还提供了 每月 100 万分钟的永恒收费额度,采纳即用即付的免费模式,极大地升高了物联网老本。
结语
随着物联网设施一直增长,新利用场景不断涌现,MQTT 多租户架构在将来的物联网市场有着广大的前景。采纳这种架构,岂但能够为客户提供更灵便的 MQTT Broker 服务,还能够在大规模部署时为客户升高经营老本。
版权申明:本文为 EMQ 原创,转载请注明出处。
原文链接:https://www.emqx.com/zh/blog/multi-tenancy-architecture-in-mqtt