匹配版本:V3.20
页面状态:已完成
原文地址:点击跳转

总览

从ThingsBoard 3.2开始,系统管理员可以使用“租户配置文件”为多个租户配置通用设置。每个租户在单个时间点具有唯一的配置文件。
让我们一步一步地查看租户配置文件中的可用设置。

实体限制

这组设置允许系统管理员配置每个租户能够创建的最大实体数。
ThingsBoard Community Edition(社区版)支持以下实体的限制:设备,资产,客户,用户,仪表板和规则链。
ThingsBoard Professional(专业版)支持上面列出的所有内容的限制,以及对以下实体的附加约束支持:集成,转换器和调度程序事件。

租户配置文件(new) - 图1
租户配置文件(new) - 图2

API限制和用法

这组设置允许系统管理员每月配置每个租户要执行的最大消息,API调用等数量。ThingsBoard不断收集和分析有关API使用情况的统计信息。统计信息的典型更新间隔为1分钟
ThingsBoard跟踪六个主要组件的API使用情况:传输,规则引擎,JS函数,遥测持久性,电子邮件和SMS服务。如果相关的API限制之一达到阈值,平台将禁用该组件。例如,如果租户设备每月产生超过1亿条消息,则平台将禁用属于该租户的设备的所有连接。当API使用率被禁用或达到某个阈值(通常为80%)时,ThingsBoard将通过电子邮件通知租户管理员。
让我们分别检查每个限制:
传输消息是指设备发送到服务器的任何消息。这可能是遥测,属性更新,RPC调用等。
传输数据点是指遥测或属性消息包含的许多“键-值”对。例如,下面列出的消息包含5个数据点,因为“ jsonKey”对应于一个数据点。

  1. {
  2. "stringKey":"value1",
  3. "booleanKey":true,
  4. "doubleKey":42.0,
  5. "longKey":73,
  6. "jsonKey": {
  7. "someNumber": 42,
  8. "someArray": [1,2,3],
  9. "someNestedObject": {"key": "value"}
  10. }
  11. }

注意:如果String或JSON键的值大于512个字符,则平台会将其计为多个数据点。
规则引擎执行是指属于当前租户的规则节点的任何执行。单个遥测消息的处理可能会导致多个Rule Engine执行。该平台还将计算Generator节点等产生的定期消息。
JavaScript执行意味着对Tenant Administrators定义的自定义功能的任何执行。例如,“脚本”过滤器或转换节点的处理,数据转换器的调用等。
计算数据库中存储的所有时间序列数据点的数据点存储天数。平台将数据点的数量乘以这些数据点的存储天数。TTL参数用于提取存储数据的天数。例如,如果您将3个数据点存储30天,那么这就是90个存储数据点天。系统管理员可以使用租户配置文件中的“默认存储TTL天数”参数来配置默认TTL 。租户管理员可以使用“保存时间序列” ule节点配置或后遥测请求中的“ TTL”参数覆盖默认的TTL 。
发送的电子邮件是指使用系统SMTP提供程序(设置)从规则引擎发送的电子邮件数量。请注意,租户管理员能够在平台的社区版和专业版中定义自定义SMTP设置。使用自定义SMTP设置发送的电子邮件不会影响API限制。
SMS已发送是指使用系统SMS提供程序从规则引擎发送的SMS的数量。请注意,租户管理员可以在平台的社区版和专业版中定义自定义SMS提供程序设置。使用自定义SMTP设置发送的SMS不会影响API限制。

API使用情况仪表板

作为租户管理员,您可以查看API使用情况仪表板。下方的仪表板使租户管理员可以了解有关他们每小时/每天/每月使用API的更多信息,并立即查看API限制的状态。
租户配置文件(new) - 图3

速率限制

这组设置允许系统管理员为特定设备(设备级别)或属于单个租户的所有设备(租户级别)配置平台应处理的最大请求数。速率限制的实现基于令牌桶算法。
速率限制定义由值和时间间隔组成。例如,“ 1000:60”表示“每60秒不超过1000条消息”。您可以使用“,”定义多个间隔。例如,“ 100:1,1000:60”表示“每秒爆发100条消息,但每60秒不超过1000次”。
租户配置文件(new) - 图4

在隔离的ThingsBoard Core和Rule Engine容器中进行处理

默认情况下,应禁用隔离处理。这些选项仅在微服务部署的极少数情况下才有用。需要经验丰富的DevOps /系统管理员来配置ThingsBoard集群以使用这些设置。配置错误可能会导致传入消息的处理出现问题。ThingsBoard团队正在努力简化配置过程,并期望在ThingsBoard 3.3版本中进行改进。
从ThingsBoard 2.5开始,您可以为每个或特定租户部署隔离的Core和Rule Engine微服务。ThingsBoard Core负责处理WebSocket订阅,跟踪设备连接以及与消息处理不直接相关的其他计算。ThingsBoard规则引擎是集群中的主要“工作者”,负责处理传入的消息。
默认情况下,所有消息(例如遥测,连接和生命周期事件)都被推送到同一消息队列/主题(由Kafka,RabbitMQ,AWS SQS,Azure服务总线,Goole发布/订阅支持)。禁用隔离处理时(默认),ThingsBoard将所有租户的消息推送到一个公共队列。这需要较少的处理资源,并允许在单个规则引擎下处理来自多个租户的数据。这样,您无需为每个租户托管一个单独的容器或VM。
当您选择要针对特定租户隔离的处理时,ThingsBoard会将消息推送到单独的队列。这为这些租户提供了更好的隔离级别。但是,这还需要您为特定租户启动单独的微服务。为此,您应该为该微服务指定TB_SERVICE_TENANT_ID环境变量。该值应设置为隔离的“租户ID”。这将指示Rule Engine / Core微服务订阅包含包含特定租户数据的特定消息队列主题。