Configuration parameters
The parameters are grouped by system components. The list contains the name (address in tb-edge.yml file), environment variable, default value and description.
- Configuration parameters
- 服务器通用参数
- Cloud配置
- 应用信息参数
- Zookeeper连接参数
- 集群参数
- 插件配置参数
- 安全参数
- 邮件设置参数
- 使用统计参数
- UI设置参数
- 数据库遥测参数
- Cassandra驱动配置参数
- SQL配置参数
- Actor系统参数
- 缓存设置参数
- Spring Data参数
- Redis/Valkey配置参数
- 更新版本参数
- Spring CORS配置参数
- 通用Spring参数
- SQL DAO配置参数
- 审计日志参数
- 设备状态参数
- Tbel参数
- JS参数
- 传输配置参数
- CoAP服务器参数
- 设备连接参数
- Edges参数
- Spring Doc通用参数
- Swagger通用参数
- 队列配置参数
- 事件配置参数
- 通用服务参数
- 指标参数
- 版本控制参数
- 通知系统参数
- 通用管理参数
- ThingsBoard移动应用设置
服务器通用参数
| 参数 | 环境变量 | 默认值 | 说明 |
| server.address | HTTP_BIND_ADDRESS | 0.0.0.0 | 服务器绑定地址 |
| server.port | HTTP_BIND_PORT | 8080 | 服务器绑定端口 |
| server.forward_headers_strategy | HTTP_FORWARD_HEADERS_STRATEGY | framework | 服务器转发头策略,反向代理场景下Swagger UI所需 |
| server.ssl.enabled | SSL_ENABLED | false | 启用/禁用SSL支持 |
| server.ssl.credentials.type | SSL_CREDENTIALS_TYPE | PEM | 服务器证书类型(PEM:pem证书文件;KEYSTORE:Java密钥库) |
| server.ssl.credentials.pem.cert_file | SSL_PEM_CERT | server.pem | 服务器证书文件路径(包含服务器证书或证书链,也可包含服务器私钥) |
| server.ssl.credentials.pem.key_file | SSL_PEM_KEY | server_key.pem | 服务器证书私钥文件路径(可选)。若证书文件不含私钥,则此项必填 |
| server.ssl.credentials.pem.key_password | SSL_PEM_KEY_PASSWORD | server_key_password | 服务器证书私钥密码(可选) |
| server.ssl.credentials.keystore.type | SSL_KEY_STORE_TYPE | PKCS12 | 密钥库类型(JKS或PKCS12) |
| server.ssl.credentials.keystore.store_file | SSL_KEY_STORE | classpath:keystore/keystore.p12 | 存放SSL证书的密钥库路径 |
| server.ssl.credentials.keystore.store_password | SSL_KEY_STORE_PASSWORD | thingsboard | 访问密钥库的密码 |
| server.ssl.credentials.keystore.key_alias | SSL_KEY_ALIAS | tomcat | 密钥别名 |
| server.ssl.credentials.keystore.key_password | SSL_KEY_PASSWORD | thingsboard | 访问密钥的密码 |
| server.http.max_payload_size | HTTP_MAX_PAYLOAD_SIZE_LIMIT_CONFIGURATION | /api/image*/**=52428800;/api/resource/**=52428800;/api/**=16777216 | 以分号分隔的urlPattern=maxPayloadSize配置列表,用于定义指定URL模式的HTTP请求最大大小。命中第一条后将忽略后续规则 |
| server.http2.enabled | HTTP2_ENABLED | true | 启用/禁用HTTP/2支持 |
| server.log_controller_error_stack_trace | HTTP_LOG_CONTROLLER_ERROR_STACK_TRACE | false | 当REST API发送“Please contact sysadmin”异常时,记录包含堆栈信息的错误日志 |
| server.ws.send_timeout | TB_SERVER_WS_SEND_TIMEOUT | 5000 | 向客户端WebSocket会话发送数据的超时时间(毫秒) |
| server.ws.ping_timeout | TB_SERVER_WS_PING_TIMEOUT | 30000 | 建议超时时间≥30秒。平台会在该期限尝试发送3次“ping”请求 |
| server.ws.dynamic_page_link.refresh_interval | TB_SERVER_WS_DYNAMIC_PAGE_LINK_REFRESH_INTERVAL_SEC | 60 | 动态告警实体数据查询的刷新频率 |
| server.ws.dynamic_page_link.refresh_pool_size | TB_SERVER_WS_DYNAMIC_PAGE_LINK_REFRESH_POOL_SIZE | 1 | 执行动态查询的线程池大小 |
| server.ws.dynamic_page_link.max_alarm_queries_per_refresh_interval | TB_SERVER_WS_MAX_ALARM_QUERIES_PER_REFRESH_INTERVAL | 10 | 每个刷新周期允许的动态查询最大数量。例如,用户在所有浏览器中同时执行的告警查询不超过10个 |
| server.ws.dynamic_page_link.max_per_user | TB_SERVER_WS_DYNAMIC_PAGE_LINK_MAX_PER_USER | 10 | 每个用户允许的动态查询最大数量。例如,用户在所有浏览器中同时打开的告警部件不超过10个 |
| server.ws.max_entities_per_data_subscription | TB_SERVER_WS_MAX_ENTITIES_PER_DATA_SUBSCRIPTION | 10000 | 单次实体订阅可返回的最大实体数。例如,地图部件中实体不超过10000个 |
| server.ws.max_entities_per_alarm_subscription | TB_SERVER_WS_MAX_ENTITIES_PER_ALARM_SUBSCRIPTION | 10000 | 单次告警订阅可返回的最大告警数。例如,告警部件中告警不超过10000条 |
| server.ws.max_queue_messages_per_session | TB_SERVER_WS_DEFAULT_QUEUE_MESSAGES_PER_SESSION | 1000 | 每个会话WebSocket更新队列的最大大小,可防止WS无限制更新 |
| server.ws.auth_timeout_ms | TB_SERVER_WS_AUTH_TIMEOUT_MS | 10000 | WS会话建立到发送鉴权命令之间的最长时间 |
| server.ws.rate_limits.subscriptions_per_tenant | TB_SERVER_WS_SUBSCRIPTIONS_PER_TENANT_RATE_LIMIT | 每个租户的WS订阅限流 | |
| server.ws.rate_limits.subscriptions_per_user | TB_SERVER_WS_SUBSCRIPTIONS_PER_USER_RATE_LIMIT | 每个用户的WS订阅限流 | |
| server.ws.alarms_per_alarm_status_subscription_cache_size | TB_ALARMS_PER_ALARM_STATUS_SUBSCRIPTION_CACHE_SIZE | 10 | 单个告警状态订阅在缓存中保存的活跃来源ID最大数量,例如不超过10个 |
| server.rest.server_side_rpc.min_timeout | MIN_SERVER_SIDE_RPC_TIMEOUT | 5000 | 服务器端RPC超时的最小值,可覆盖REST API调用中指定的值。自2.5版本迁移到队列后,RPC延迟取决于队列中待处理消息的数量,因此默认的UI参数500ms可能不足以满足高负载环境的需求。 |
| server.rest.server_side_rpc.default_timeout | DEFAULT_SERVER_SIDE_RPC_TIMEOUT | 10000 | 服务端RPC超时默认值 |
| server.rest.rate_limits.reset_password_per_user | RESET_PASSWORD_PER_USER_RATE_LIMIT_CONFIGURATION | 5:3600 | 限制用户频繁重置密码的速率。默认每小时不超过5次请求 |
Cloud配置
| 参数 | 环境变量 | 默认值 | 说明 |
| cloud.routingKey | CLOUD_ROUTING_KEY | Edge实例的路由键,通常为UUID | |
| cloud.secret | CLOUD_ROUTING_SECRET | 用于与云端安全通信的密钥 | |
| cloud.reconnect_timeout | CLOUD_RECONNECT_TIMEOUT | 3000 | 云连接丢失时的重连超时时间(毫秒) |
| cloud.uplink_pack_timeout_sec | CLOUD_UPLINK_PACK_TIMEOUT_SEC | 60 | 上行数据打包发送到云端的超时时间(秒) |
| cloud.rpc.host | CLOUD_RPC_HOST | localhost | ThingsBoard平台主机名或IP,例如thingsboard.cloud、X.X.X.X或localhost |
| cloud.rpc.port | CLOUD_RPC_PORT | 7070 | 与ThingsBoard服务器进行RPC通信的端口 |
| cloud.rpc.timeout | CLOUD_RPC_TIMEOUT | 5 | 终止RPC通道的超时时间(秒) |
| cloud.rpc.keep_alive_time_sec | CLOUD_RPC_KEEP_ALIVE_TIME_SEC | 10 | 客户端在空闲状态(连接上无读取操作)下等待多少秒后向服务器发送keepalive ping。此设置有助于在空闲期间保持连接存活,防止服务器因超时关闭连接,同时定期探测服务器可达性,并通过可能因空闲而断开连接的网络设备(如NAT、负载均衡器)维持连接。 |
| cloud.rpc.keep_alive_timeout_sec | CLOUD_RPC_KEEP_ALIVE_TIMEOUT_SEC | 5 | 客户端等待keepalive ping响应的最长时间(秒)。若在此时间内未收到确认,客户端将认为连接已断开或不可达。此超时用于检测服务器故障或网络中断。若服务器在此期间未响应keepalive ping,客户端将视为连接丢失,并可能尝试重连或执行其他恢复操作。 |
| cloud.rpc.ssl.enabled | CLOUD_RPC_SSL_ENABLED | false | 启用TLS安全通信 |
| cloud.rpc.ssl.cert | CLOUD_RPC_SSL_CERT | 用于安全通信的TLS证书路径 | |
| cloud.rpc.storage.max_read_records_count | CLOUD_RPC_STORAGE_MAX_READ_RECORDS_COUNT | 50 | 从本地数据库读取并发送的云事件记录最大数量 |
| cloud.rpc.storage.no_read_records_sleep | CLOUD_RPC_NO_READ_RECORDS_SLEEP | 1000 | 检查本地数据库中新云事件的间隔(毫秒) |
| cloud.rpc.storage.sleep_between_batches | CLOUD_RPC_SLEEP_BETWEEN_BATCHES | 1000 | 重试发送失败云事件批次的间隔(毫秒) |
| cloud.rpc.max_inbound_message_size | CLOUD_RPC_MAX_INBOUND_MESSAGE_SIZE | 4194304 | 来自云端的入站消息最大大小(字节) |
| cloud.rpc.proxy.enabled | CLOUD_RPC_PROXY_ENABLED | false | 启用或禁用代理服务器 |
| cloud.rpc.proxy.host | CLOUD_RPC_PROXY_HOST | 代理服务器主机名或IP | |
| cloud.rpc.proxy.port | CLOUD_RPC_PROXY_PORT | 0 | 代理服务器端口号 |
| cloud.rpc.proxy.username | CLOUD_RPC_PROXY_USERNAME | 代理服务器认证用户名 | |
| cloud.rpc.proxy.password | CLOUD_RPC_PROXY_PASSWORD | 代理服务器认证密码 |
应用信息参数
| 参数 | 环境变量 | 默认值 | 说明 |
| app.version | "@project.version@" | 应用版本 |
Zookeeper连接参数
| 参数 | 环境变量 | 默认值 | 说明 |
| zk.enabled | ZOOKEEPER_ENABLED | false | 启用/禁用Zookeeper发现服务 |
| zk.url | ZOOKEEPER_URL | localhost:2181 | Zookeeper连接字符串 |
| zk.retry_interval_ms | ZOOKEEPER_RETRY_INTERVAL_MS | 3000 | Zookeeper重试间隔(毫秒) |
| zk.connection_timeout_ms | ZOOKEEPER_CONNECTION_TIMEOUT_MS | 3000 | Zookeeper连接超时(毫秒) |
| zk.session_timeout_ms | ZOOKEEPER_SESSION_TIMEOUT_MS | 3000 | Zookeeper会话超时(毫秒) |
| zk.zk_dir | ZOOKEEPER_NODES_DIR | /thingsboard | Zookeeper"文件系统"中的目录名称 |
| zk.recalculate_delay | ZOOKEEPER_RECALCULATE_DELAY_MS | 0 | 建议在微服务架构中为规则引擎服务配置recalculate_delay属性。该属性在规则引擎服务重启时引入一段暂停,确保其他节点不会立即尝试重新计算分区。由于规则链Actor初始化耗时较大,避免重启期间的不必要重算可提升系统性能和稳定性。 |
集群参数
| 参数 | 环境变量 | 默认值 | 说明 |
| cluster.stats.enabled | TB_CLUSTER_STATS_ENABLED | false | 启用/禁用集群统计。按类型统计集群节点间发送的消息数量 |
| cluster.stats.print_interval_ms | TB_CLUSTER_STATS_PRINT_INTERVAL_MS | 10000 | 将集群统计打印到日志文件的间隔 |
插件配置参数
| 参数 | 环境变量 | 默认值 | 说明 |
| plugins.scan_packages | PLUGINS_SCAN_PACKAGES | org.thingsboard.server.extensions,org.thingsboard.rule.engine | 类路径扫描插件时使用的逗号分隔包列表 |
安全参数
| 参数 | 环境变量 | 默认值 | 说明 |
| security.jwt.tokenExpirationTime | JWT_TOKEN_EXPIRATION_TIME | 9000 | 秒数(2.5小时) |
| security.jwt.refreshTokenExpTime | JWT_REFRESH_TOKEN_EXPIRATION_TIME | 604800 | 秒数(1周) |
| security.jwt.tokenIssuer | JWT_TOKEN_ISSUER | thingsboard.io | 用户JWT令牌签发者 |
| security.jwt.tokenSigningKey | JWT_TOKEN_SIGNING_KEY | thingsboardDefaultSigningKey | Base64编码 |
| security.user_token_access_enabled | SECURITY_USER_TOKEN_ACCESS_ENABLED | true | 启用/禁用系统管理员对租户管理员JWT令牌的访问或租户管理员对客户用户JWT令牌的访问 |
| security.user_login_case_sensitive | SECURITY_USER_LOGIN_CASE_SENSITIVE | true | 启用/禁用用户名区分大小写登录 |
| security.claim.allowClaimingByDefault | SECURITY_CLAIM_ALLOW_CLAIMING_BY_DEFAULT | true | 启用/禁用设备认领。若为false,则设备的[claimingAllowed] SERVER_SCOPE属性必须设置为[true]才允许认领特定设备 |
| security.claim.duration | SECURITY_CLAIM_DURATION | 86400000 | 86400000毫秒(即24小时),注意该值必须等于claimDevices.timeToLiveInMinutes值 |
| security.basic.enabled | SECURITY_BASIC_ENABLED | false | 启用/禁用基础安全选项 |
| security.oauth2.loginProcessingUrl | SECURITY_OAUTH2_LOGIN_PROCESSING_URL | /login/oauth2/code/ | 处理来自外部用户管理系统访问代码的重定向URL |
| security.oauth2.githubMapper.emailUrl | SECURITY_OAUTH2_GITHUB_MAPPER_EMAIL_URL_KEY | https://api.github.com/user/emails | 从该URL映射的GitHub邮箱地址 |
| security.java_cacerts.path | SECURITY_JAVA_CACERTS_PATH | ${java.home}/lib/security/cacerts | CA证书密钥库默认路径。通常此密钥库位于JAVA_HOME/lib/security/cacerts |
| security.java_cacerts.password | SECURITY_JAVA_CACERTS_PASSWORD | changeit | cacerts密钥库文件的密码 |
邮件设置参数
| 参数 | 环境变量 | 默认值 | 说明 |
| mail.oauth2.refreshTokenCheckingInterval | REFRESH_TOKEN_EXPIRATION_CHECKING_INTERVAL | 86400 | 检查刷新令牌过期的时间间隔(以秒为单位)(默认为1天)。 |
| mail.per_tenant_rate_limits | MAIL_PER_TENANT_RATE_LIMITS | 每个租户发送邮件的速率限制。例如,每分钟1000次和每小时10000次为“1000:60,10000:3600” |
使用统计参数
| 参数 | 环境变量 | 默认值 | 说明 |
| usage.stats.report.enabled | USAGE_STATS_REPORT_ENABLED | true | 启用/禁用API使用统计信息的收集。默认情况下在系统和租户级别收集 |
| usage.stats.report.enabled_per_customer | USAGE_STATS_REPORT_PER_CUSTOMER_ENABLED | false | 启用/禁用客户级别的API使用统计信息的收集 |
| usage.stats.report.interval | USAGE_STATS_REPORT_INTERVAL | 60 | 统计上报间隔,默认设置为每10秒发送一次汇总数据 |
| usage.stats.report.pack_size | USAGE_STATS_REPORT_PACK_SIZE | 1024 | 统计包内消息数量 |
| usage.stats.check.cycle | USAGE_STATS_CHECK_CYCLE | 60000 | 检查下一周期是否开始、并重新启用被阻止的租户/客户的时间间隔 |
| usage.stats.gauge_report_interval | USAGE_STATS_GAUGE_REPORT_INTERVAL | 180000 | 以毫秒为单位。默认值为3分钟 |
| usage.stats.devices.report_interval | DEVICES_STATS_REPORT_INTERVAL | 60 | 以秒为单位,默认值为1分钟。更改时,在集群模式下,请确保use.stats.gauge_report_interval设置为该值的x2-x3 |
UI设置参数
| 参数 | 环境变量 | 默认值 | 说明 |
| ui.dashboard.max_datapoints_limit | DASHBOARD_MAX_DATAPOINTS_LIMIT | 50000 | 小部件允许获取的最大数据点 |
| ui.help.base-url | UI_HELP_BASE_URL | https://raw.githubusercontent.com/thingsboard/thingsboard-ui-help/release-4.1 | UI帮助资源基础URL |
数据库遥测参数
| 参数 | 环境变量 | 默认值 | 说明 |
| database.ts_max_intervals | DATABASE_TS_MAX_INTERVALS | 700 | 单个API调用生成的用于获取遥测记录的最大数据库查询数 |
| database.ts.type | DATABASE_TS_TYPE | sql | cassandra、sql或timescale(对于混合模式,DATABASE_TS_TYPE值应为cassandra或timescale) |
| database.ts_latest.type | DATABASE_TS_LATEST_TYPE | sql | cassandra、sql或timescale(对于混合模式,DATABASE_TS_TYPE值应为cassandra或timescale) |
Cassandra驱动配置参数
| 参数 | 环境变量 | 默认值 | 说明 |
| cassandra.cluster_name | CASSANDRA_CLUSTER_NAME | Thingsboard Edge Cluster | ThingsBoard Edge集群名称 |
| cassandra.keyspace_name | CASSANDRA_KEYSPACE_NAME | thingsboard | ThingsBoard Edge Keyspace名称 |
| cassandra.url | CASSANDRA_URL | 127.0.0.1:9042 | 指定节点列表 |
| cassandra.local_datacenter | CASSANDRA_LOCAL_DATACENTER | datacenter1 | 指定本地数据中心名称 |
| cassandra.ssl.enabled | CASSANDRA_USE_SSL | false | 启用/禁用安全连接 |
| cassandra.ssl.hostname_validation | CASSANDRA_SSL_HOSTNAME_VALIDATION | true | 启用/禁用Cassandra服务器主机名验证。如果启用,Cassandra服务器的主机名必须与服务器证书的CN匹配 |
| cassandra.ssl.trust_store | CASSANDRA_SSL_TRUST_STORE | 设置用于服务器认证的信任库(可选,若未设置则使用默认SSLContext中的信任库) | |
| cassandra.ssl.trust_store_password | CASSANDRA_SSL_TRUST_STORE_PASSWORD | Cassandra信任库密码 | |
| cassandra.ssl.key_store | CASSANDRA_SSL_KEY_STORE | 设置用于客户端认证的密钥库(可选,若未设置则使用默认SSLContext中的密钥库)。仅在Cassandra服务器要求客户端认证时需要密钥库 | |
| cassandra.ssl.key_store_password | CASSANDRA_SSL_KEY_STORE_PASSWORD | Cassandra密钥库的密码 | |
| cassandra.ssl.cipher_suites | CASSANDRA_SSL_CIPHER_SUITES | 以逗号分隔的密码套件列表(可选,若未设置则使用Java默认密码套件) | |
| cassandra.jmx | CASSANDRA_USE_JMX | false | 启用/禁用JMX |
| cassandra.metrics | CASSANDRA_USE_METRICS | false | 启用/禁用指标采集 |
| cassandra.compression | CASSANDRA_COMPRESSION | none | 无、SNAPPY、LZ4 |
| cassandra.init_timeout_ms | CASSANDRA_CLUSTER_INIT_TIMEOUT_MS | 300000 | 指定Cassandra集群初始化超时(毫秒),适用于启动期间无可用主机的情况 |
| cassandra.init_retry_interval_ms | CASSANDRA_CLUSTER_INIT_RETRY_INTERVAL_MS | 3000 | 指定Cassandra集群初始化重试间隔,适用于启动期间无可用主机的情况 |
| cassandra.max_requests_per_connection_local | CASSANDRA_MAX_REQUESTS_PER_CONNECTION_LOCAL | 32768 | Cassandra每个连接的最大本地请求数 |
| cassandra.max_requests_per_connection_remote | CASSANDRA_MAX_REQUESTS_PER_CONNECTION_REMOTE | 32768 | Cassandra每个连接的最大远程请求数 |
| cassandra.credentials | CASSANDRA_USE_CREDENTIALS | false | 凭证参数 |
| cassandra.username | CASSANDRA_USERNAME | 指定用户名 | |
| cassandra.password | CASSANDRA_PASSWORD | 指定密码 | |
| cassandra.cloud.secure_connect_bundle_path | CASSANDRA_CLOUD_SECURE_BUNDLE_PATH | Cassandra云安全连接包路径 | |
| cassandra.cloud.client_id | CASSANDRA_CLOUD_CLIENT_ID | Cassandra云客户端ID | |
| cassandra.cloud.client_secret | CASSANDRA_CLOUD_CLIENT_SECRET | Cassandra云客户端密钥 | |
| cassandra.socket.connect_timeout | CASSANDRA_SOCKET_TIMEOUT | 5000 | 设置从ThingsBoard到Cassandra的本机连接的超时(以毫秒为单位)。默认值为5000 |
| cassandra.socket.read_timeout | CASSANDRA_SOCKET_READ_TIMEOUT | 20000 | 关闭连接之前超时。以毫秒为单位设置的值 |
| cassandra.socket.keep_alive | CASSANDRA_SOCKET_KEEP_ALIVE | true | 是否启用TCP keep-alive |
| cassandra.socket.reuse_address | CASSANDRA_SOCKET_REUSE_ADDRESS | true | 启用/禁用地址重用,允许重用本地地址和端口 |
| cassandra.socket.so_linger | CASSANDRA_SOCKET_SO_LINGER | 设置关闭时的逗留超时。默认情况下驱动程序不设置此选项,实际值取决于底层Netty传输的默认值 | |
| cassandra.socket.tcp_no_delay | CASSANDRA_SOCKET_TCP_NO_DELAY | false | 启用/取消Nagle算法 |
| cassandra.socket.receive_buffer_size | CASSANDRA_SOCKET_RECEIVE_BUFFER_SIZE | 设置接收缓冲区大小提示。默认情况下驱动程序不设置此选项,实际值取决于底层Netty传输的默认值 | |
| cassandra.socket.send_buffer_size | CASSANDRA_SOCKET_SEND_BUFFER_SIZE | 设置发送缓冲区大小提示。默认情况下驱动程序不设置此选项,实际值取决于底层Netty传输的默认值 | |
| cassandra.query.read_consistency_level | CASSANDRA_READ_CONSISTENCY_LEVEL | ONE | Cassandra中的一致性级别可以配置为管理可用性与数据准确性。所有写入和读取操作的一致性级别默认为ONE |
| cassandra.query.write_consistency_level | CASSANDRA_WRITE_CONSISTENCY_LEVEL | ONE | Cassandra中的一致性级别可以配置为管理可用性与数据准确性。所有写入和读取操作的一致性级别默认为ONE |
| cassandra.query.default_fetch_size | CASSANDRA_DEFAULT_FETCH_SIZE | 2000 | 获取大小指定Cassandra单次返回的行数(即每页大小) |
| cassandra.query.ts_key_value_partitioning | TS_KV_PARTITIONING | MONTHS | 指定时间戳键值存储的分区大小。示例:分钟、小时、天、月、不定 |
| cassandra.query.use_ts_key_value_partitioning_on_read | USE_TS_KV_PARTITIONING_ON_READ | true | 启用/禁用读取查询时的时序键值分区 |
| cassandra.query.ts_key_value_partitions_max_cache_size | TS_KV_PARTITIONS_MAX_CACHE_SIZE | 100000 | 每个服务在内存中缓存的分区数量,可减少重复插入相同分区的负载 |
| cassandra.query.ts_key_value_ttl | TS_KV_TTL | 0 | Cassandra记录的时序数据存活时间(秒)。0表示记录永不过期 |
| cassandra.query.buffer_size | CASSANDRA_QUERY_BUFFER_SIZE | 200000 | 等待执行的Cassandra查询最大数量 |
| cassandra.query.concurrent_limit | CASSANDRA_QUERY_CONCURRENT_LIMIT | 1000 | Cassandra并发查询的最大数量 |
| cassandra.query.permit_max_wait_time | PERMIT_MAX_WAIT_TIME | 120000 | 查询等待执行的最长时间(以毫秒为单位) |
| cassandra.query.dispatcher_threads | CASSANDRA_QUERY_DISPATCHER_THREADS | 2 | 分派Cassandra查询的线程数量 |
| cassandra.query.callback_threads | CASSANDRA_QUERY_CALLBACK_THREADS | 4 | 用于管理I/O速率的缓冲速率执行器(读、写)。请参阅JMX中的“nosql-*-callback”线程 |
| cassandra.query.result_processing_threads | CASSANDRA_QUERY_RESULT_PROCESSING_THREADS | 50 | 结果集转换器和处理。请参阅JMX中的“cassandra-callback”线程 |
| cassandra.query.poll_ms | CASSANDRA_QUERY_POLL_MS | 50 | Cassandra查询队列轮询间隔(以毫秒为单位) |
| cassandra.query.rate_limit_print_interval_ms | CASSANDRA_QUERY_RATE_LIMIT_PRINT_MS | 10000 | 打印Cassandra查询队列统计信息的时间间隔(以毫秒为单位) |
| cassandra.query.set_null_values_enabled | CASSANDRA_QUERY_SET_NULL_VALUES_ENABLED | true | 在保存时将相同ts的除目标之外的所有数据类型值设置为null |
| cassandra.query.print_queries_freq | CASSANDRA_QUERY_PRINT_FREQ | 0 | 以指定频率记录cassandra查询之一(0 - 禁用日志记录) |
| cassandra.query.tenant_rate_limits.print_tenant_names | CASSANDRA_QUERY_TENANT_RATE_LIMITS_PRINT_TENANT_NAMES | false | 打印Cassandra查询队列统计信息时是否打印限速租户名称 |
SQL配置参数
| 参数 | 环境变量 | 默认值 | 说明 |
| sql.attributes.batch_size | SQL_ATTRIBUTES_BATCH_SIZE | 1000 | 持久属性更新的批量大小 |
| sql.attributes.batch_max_delay | SQL_ATTRIBUTES_BATCH_MAX_DELAY_MS | 50 | 属性条目队列轮询的最大超时。该值以毫秒为单位设置 |
| sql.attributes.stats_print_interval_ms | SQL_ATTRIBUTES_BATCH_STATS_PRINT_MS | 10000 | 打印属性更新统计信息的时间间隔(以毫秒为单位) |
| sql.attributes.batch_threads | SQL_ATTRIBUTES_BATCH_THREADS | 3 | 批处理线程数必须是素数,如3或5,以获得完美的哈希分布 |
| sql.attributes.value_no_xss_validation | SQL_ATTRIBUTES_VALUE_NO_XSS_VALIDATION | false | 若为true将检查属性值是否存在XSS漏洞 |
| sql.ts.batch_size | SQL_TS_BATCH_SIZE | 10000 | 持久时间序列插入的批量大小 |
| sql.ts.batch_max_delay | SQL_TS_BATCH_MAX_DELAY_MS | 100 | 时间序列条目队列轮询的最大超时。设置的值以毫秒为单位 |
| sql.ts.stats_print_interval_ms | SQL_TS_BATCH_STATS_PRINT_MS | 10000 | 打印时间序列插入统计信息的时间间隔(以毫秒为单位) |
| sql.ts.batch_threads | SQL_TS_BATCH_THREADS | 3 | 批处理线程数必须是素数,如3或5,以获得完美的哈希分布 |
| sql.ts.value_no_xss_validation | SQL_TS_VALUE_NO_XSS_VALIDATION | false | 若为true将检查遥测值是否存在XSS漏洞 |
| sql.ts.callback_thread_pool_size | SQL_TS_CALLBACK_THREAD_POOL_SIZE | 12 | 遥测回调执行器的线程池大小 |
| sql.ts_latest.batch_size | SQL_TS_LATEST_BATCH_SIZE | 1000 | 用于持久保存最新遥测更新的批量大小 |
| sql.ts_latest.batch_max_delay | SQL_TS_LATEST_BATCH_MAX_DELAY_MS | 50 | 最新遥测条目队列轮询的最大超时。设置的值以毫秒为单位 |
| sql.ts_latest.stats_print_interval_ms | SQL_TS_LATEST_BATCH_STATS_PRINT_MS | 10000 | 打印最新遥测更新统计数据的时间间隔(以毫秒为单位) |
| sql.ts_latest.batch_threads | SQL_TS_LATEST_BATCH_THREADS | 3 | 批处理线程数必须是素数,如3或5,以获得完美的哈希分布 |
| sql.ts_latest.update_by_latest_ts | SQL_TS_UPDATE_BY_LATEST_TIMESTAMP | true | 仅当新记录的时间戳大于或等于已保存最新值的时间戳时,才更新最新值。最新值与历史值分开存储,以便从数据库快速查找。历史值的插入在任何情况下都会执行 |
| sql.events.batch_size | SQL_EVENTS_BATCH_SIZE | 10000 | 持久事件插入的批量大小 |
| sql.events.batch_max_delay | SQL_EVENTS_BATCH_MAX_DELAY_MS | 100 | 事件条目队列轮询的最大超时。设置的值以毫秒为单位 |
| sql.events.stats_print_interval_ms | SQL_EVENTS_BATCH_STATS_PRINT_MS | 10000 | 打印事件插入统计信息的时间间隔(以毫秒为单位) |
| sql.events.batch_threads | SQL_EVENTS_BATCH_THREADS | 3 | 批处理线程数必须是素数,如3或5,以获得完美的哈希分布 |
| sql.events.partition_size | SQL_EVENTS_REGULAR_PARTITION_SIZE_HOURS | 168 | 划分事件的小时数。当前值对应于一周。 |
| sql.events.debug_partition_size | SQL_EVENTS_DEBUG_PARTITION_SIZE_HOURS | 1 | 划分调试事件的小时数。当前值对应于一小时。 |
| sql.edge_events.batch_size | SQL_EDGE_EVENTS_BATCH_SIZE | 1000 | 持久边缘事件插入的批量大小 |
| sql.edge_events.batch_max_delay | SQL_EDGE_EVENTS_BATCH_MAX_DELAY_MS | 100 | 边缘事件条目队列轮询的最大超时。设置的值以毫秒为单位 |
| sql.edge_events.stats_print_interval_ms | SQL_EDGE_EVENTS_BATCH_STATS_PRINT_MS | 10000 | 打印边缘事件插入统计数据的时间间隔(以毫秒为单位) |
| sql.edge_events.partition_size | SQL_EDGE_EVENTS_PARTITION_SIZE_HOURS | 168 | 划分边缘事件的小时数。当前值对应于一周。 |
| sql.audit_logs.partition_size | SQL_AUDIT_LOGS_PARTITION_SIZE_HOURS | 168 | 默认值 - 1周 |
| sql.cloud_events.batch_size | SQL_CLOUD_EVENTS_BATCH_SIZE | 1000 | 持久云事件插入的批量大小 |
| sql.cloud_events.batch_max_delay | SQL_CLOUD_EVENTS_BATCH_MAX_DELAY_MS | 100 | 云事件条目队列轮询的最大超时。设置的值以毫秒为单位 |
| sql.cloud_events.stats_print_interval_ms | SQL_CLOUD_EVENTS_BATCH_STATS_PRINT_MS | 10000 | 打印云事件插入统计信息的时间间隔(以毫秒为单位) |
| sql.cloud_events.partition_size | SQL_CLOUD_EVENTS_PARTITION_SIZE_HOURS | 24 | 划分云事件的小时数。当前值对应于一周。 |
| sql.alarm_comments.partition_size | SQL_ALARM_COMMENTS_PARTITION_SIZE_HOURS | 168 | 默认值 - 1周 |
| sql.notifications.partition_size | SQL_NOTIFICATIONS_PARTITION_SIZE_HOURS | 168 | 默认值 - 1周 |
| sql.batch_sort | SQL_BATCH_SORT | true | 指定批量更新前是否对实体进行排序。应启用集群模式以避免死锁 |
| sql.remove_null_chars | SQL_REMOVE_NULL_CHARS | true | 指定在插入之前是否从属性和时间序列的strValue中删除空字符 |
| sql.log_queries | SQL_LOG_QUERIES | false | 指定是否记录实体查询存储库生成的数据库查询及其参数 |
| sql.log_queries_threshold | SQL_LOG_QUERIES_THRESHOLD | 5000 | 要记录的慢SQL查询的阈值。设置的值以毫秒为单位 |
| sql.log_tenant_stats | SQL_LOG_TENANT_STATS | true | 启用/禁用记录有关租户的统计信息 |
| sql.log_tenant_stats_interval_ms | SQL_LOG_TENANT_STATS_INTERVAL_MS | 60000 | 打印租户最新统计信息的时间间隔(毫秒) |
| sql.postgres.ts_key_value_partitioning | SQL_POSTGRES_TS_KV_PARTITIONING | MONTHS | 指定时间戳键值存储的分区大小。示例:天、月、年、不定。 |
| sql.timescale.chunk_time_interval | SQL_TIMESCALE_CHUNK_TIME_INTERVAL | 604800000 | 指定新数据块存储的间隔大小。 |
| sql.timescale.batch_threads | SQL_TIMESCALE_BATCH_THREADS | 3 | 批处理线程数必须是素数,如3或5,以获得完美的哈希分布 |
| sql.ttl.ts.enabled | SQL_TTL_TS_ENABLED | true | 启用/禁用时间序列记录的TTL(生存时间) |
| sql.ttl.ts.execution_interval_ms | SQL_TTL_TS_EXECUTION_INTERVAL | 86400000 | 毫秒数。当前值对应一天 |
| sql.ttl.ts.ts_key_value_ttl | SQL_TTL_TS_TS_KEY_VALUE_TTL | 0 | 用于指定时间序列记录的系统TTL(生存时间)值的参数。以秒为单位设置的值。 0 - 记录永不过期。 |
| sql.ttl.events.enabled | SQL_TTL_EVENTS_ENABLED | true | 启用/禁用事件记录的TTL(生存时间) |
| sql.ttl.events.execution_interval_ms | SQL_TTL_EVENTS_EXECUTION_INTERVAL | 3600000 | 毫秒数(最大随机初始延迟和固定周期)。 |
| sql.ttl.events.events_ttl | SQL_TTL_EVENTS_EVENTS_TTL | 0 | 秒数。默认情况下,TTL处于禁用状态。清理的准确性取决于sql.events.partition_size参数。 |
| sql.ttl.events.debug_events_ttl | SQL_TTL_EVENTS_DEBUG_EVENTS_TTL | 604800 | 秒数。当前值对应于一周。清理的准确性取决于sql.events.debug_partition_size参数。 |
| sql.ttl.edge_events.enabled | SQL_TTL_EDGE_EVENTS_ENABLED | true | 启用/禁用边缘事件记录的TTL(生存时间) |
| sql.ttl.edge_events.execution_interval_ms | SQL_TTL_EDGE_EVENTS_EXECUTION_INTERVAL | 86400000 | 毫秒数。当前值对应一天 |
| sql.ttl.edge_events.edge_events_ttl | SQL_TTL_EDGE_EVENTS_TTL | 2628000 | 秒数。当前值对应一个月 |
| sql.ttl.alarms.checking_interval | SQL_ALARMS_TTL_CHECKING_INTERVAL | 7200000 | 毫秒数。当前值对应两小时 |
| sql.ttl.alarms.removal_batch_size | SQL_ALARMS_TTL_REMOVAL_BATCH_SIZE | 3000 | 不以一次性方式、而是分批删除过期的告警 |
| sql.ttl.rpc.enabled | SQL_TTL_RPC_ENABLED | true | 启用/禁用rpc调用记录的TTL(生存时间) |
| sql.ttl.rpc.checking_interval | SQL_RPC_TTL_CHECKING_INTERVAL | 7200000 | 毫秒数。当前值对应两小时 |
| sql.ttl.audit_logs.enabled | SQL_TTL_AUDIT_LOGS_ENABLED | true | 启用/禁用审核日志记录的TTL(生存时间) |
| sql.ttl.audit_logs.ttl | SQL_TTL_AUDIT_LOGS_SECS | 0 | 默认禁用。清理的准确性取决于sql.audit_logs.partition_size |
| sql.ttl.audit_logs.checking_interval_ms | SQL_TTL_AUDIT_LOGS_CHECKING_INTERVAL_MS | 86400000 | 默认值 - 1天 |
| sql.ttl.cloud_events.enabled | SQL_TTL_CLOUD_EVENTS_ENABLED | true | 启用/禁用云事件记录的TTL(生存时间) |
| sql.ttl.cloud_events.execution_interval_ms | SQL_TTL_CLOUD_EVENTS_EXECUTION_INTERVAL | 86400000 | 毫秒数。当前值对应一天 |
| sql.ttl.cloud_events.cloud_events_ttl | SQL_TTL_CLOUD_EVENTS_TTL | 2628000 | 秒数。当前值对应一个月 |
| sql.ttl.notifications.enabled | SQL_TTL_NOTIFICATIONS_ENABLED | true | 启用/禁用通知中心记录的TTL(生存时间) |
| sql.ttl.notifications.ttl | SQL_TTL_NOTIFICATIONS_SECS | 2592000 | 默认值 - 30天 |
| sql.ttl.notifications.checking_interval_ms | SQL_TTL_NOTIFICATIONS_CHECKING_INTERVAL_MS | 86400000 | 默认值 - 1天 |
| sql.relations.max_level | SQL_RELATIONS_MAX_LEVEL | 50 | 该值必须相当小,以尽早防止无限递归 |
| sql.relations.pool_size | SQL_RELATIONS_POOL_SIZE | 4 | 该值必须相当小,以防止关系查询阻塞所有其他数据库调用 |
| sql.relations.query_timeout | SQL_RELATIONS_QUERY_TIMEOUT_SEC | 20 | 该值必须相当小,以防止关系查询阻塞所有其他数据库调用 |
Actor系统参数
| 参数 | 环境变量 | 默认值 | 说明 |
| actors.system.throughput | ACTORS_SYSTEM_THROUGHPUT | 5 | Actor系统在切换到下一个Actor之前,为每个Actor处理的消息数 |
| actors.system.scheduler_pool_size | ACTORS_SYSTEM_SCHEDULER_POOL_SIZE | 1 | Actor系统调度器的线程池大小 |
| actors.system.max_actor_init_attempts | ACTORS_SYSTEM_MAX_ACTOR_INIT_ATTEMPTS | 10 | 禁用Actor之前尝试初始化的最大次数 |
| actors.system.app_dispatcher_pool_size | ACTORS_SYSTEM_APP_DISPATCHER_POOL_SIZE | 1 | 主Actor系统调度器的线程池大小 |
| actors.system.tenant_dispatcher_pool_size | ACTORS_SYSTEM_TENANT_DISPATCHER_POOL_SIZE | 2 | 处理租户Actor消息的调度器线程池大小 |
| actors.system.device_dispatcher_pool_size | ACTORS_SYSTEM_DEVICE_DISPATCHER_POOL_SIZE | 4 | 处理设备Actor消息的调度器线程池大小 |
| actors.system.rule_dispatcher_pool_size | ACTORS_SYSTEM_RULE_DISPATCHER_POOL_SIZE | 8 | 处理规则引擎(链/节点)Actor消息的调度器线程池大小 |
| actors.system.edge_dispatcher_pool_size | ACTORS_SYSTEM_EDGE_DISPATCHER_POOL_SIZE | 4 | 处理Edge Actor消息的调度器线程池大小 |
| actors.system.cfm_dispatcher_pool_size | ACTORS_SYSTEM_CFM_DISPATCHER_POOL_SIZE | 2 | 为CalculatedField管理器actor处理消息的actor系统调度器的线程池大小 |
| actors.system.cfe_dispatcher_pool_size | ACTORS_SYSTEM_CFE_DISPATCHER_POOL_SIZE | 8 | 处理CalculatedField实体Actor消息的调度器线程池大小 |
| actors.tenant.create_components_on_init | ACTORS_TENANT_CREATE_COMPONENTS_ON_INIT | true | 在初始化时创建组件 |
| actors.session.max_concurrent_sessions_per_device | ACTORS_MAX_CONCURRENT_SESSION_PER_DEVICE | 1 | 每台设备的最大并发会话数 |
| actors.session.sync.timeout | ACTORS_SESSION_SYNC_TIMEOUT | 10000 | 使用同步会话(HTTP、CoAP)处理请求的默认超时(以毫秒为单位) |
| actors.rule.db_callback_thread_pool_size | ACTORS_RULE_DB_CALLBACK_THREAD_POOL_SIZE | 50 | 指定数据库请求回调执行器服务的线程池大小 |
| actors.rule.mail_thread_pool_size | ACTORS_RULE_MAIL_THREAD_POOL_SIZE | 40 | 指定邮件发送执行器服务的线程池大小 |
| actors.rule.mail_password_reset_thread_pool_size | ACTORS_RULE_MAIL_PASSWORD_RESET_THREAD_POOL_SIZE | 10 | 指定密码重置电子邮件的线程池大小 |
| actors.rule.sms_thread_pool_size | ACTORS_RULE_SMS_THREAD_POOL_SIZE | 50 | 指定短信发送执行器服务的线程池大小 |
| actors.rule.allow_system_mail_service | ACTORS_RULE_ALLOW_SYSTEM_MAIL_SERVICE | true | 规则是否允许使用系统邮件服务 |
| actors.rule.allow_system_sms_service | ACTORS_RULE_ALLOW_SYSTEM_SMS_SERVICE | true | 规则是否允许使用系统短信服务 |
| actors.rule.external_call_thread_pool_size | ACTORS_RULE_EXTERNAL_CALL_THREAD_POOL_SIZE | 50 | 指定外部调用服务的线程池大小 |
| actors.rule.chain.error_persist_frequency | ACTORS_RULE_CHAIN_ERROR_FREQUENCY | 3000 | 特定Actor的错误按指定毫秒间隔持久化一次 |
| actors.rule.chain.debug_mode_rate_limits_per_tenant.enabled | ACTORS_RULE_CHAIN_DEBUG_MODE_RATE_LIMITS_PER_TENANT_ENABLED | true | 启用/禁用每个租户的所有规则节点的持久调试事件的速率限制 |
| actors.rule.chain.debug_mode_rate_limits_per_tenant.configuration | ACTORS_RULE_CHAIN_DEBUG_MODE_RATE_LIMITS_PER_TENANT_CONFIGURATION | 50000:3600 | DEBUG模式速率限制的值。默认情况下,每小时不超过50,000个事件 |
| actors.rule.node.error_persist_frequency | ACTORS_RULE_NODE_ERROR_FREQUENCY | 3000 | 特定Actor的错误按指定毫秒间隔持久化一次 |
| actors.rule.transaction.queue_size | ACTORS_RULE_TRANSACTION_QUEUE_SIZE | 15000 | 事务规则节点存储消息的队列大小 |
| actors.rule.transaction.duration | ACTORS_RULE_TRANSACTION_DURATION | 60000 | 事务完成的超时时间(毫秒) |
| actors.rule.external.force_ack | ACTORS_RULE_EXTERNAL_NODE_FORCE_ACK | false | 强制确认外部规则节点的传入消息以减少处理延迟。将外部节点处理的结果作为单独的消息排队到规则引擎。 |
| actors.rpc.max_retries | ACTORS_RPC_MAX_RETRIES | 5 | 请求发送失败时持久RPC调用重试的最大数量 |
| actors.rpc.submit_strategy | ACTORS_RPC_SUBMIT_STRATEGY_TYPE | BURST | RPC提交策略。允许的值:BURST、SEQUENTIAL_ON_ACK_FROM_DEVICE、SEQUENTIAL_ON_RESPONSE_FROM_DEVICE。 |
| actors.rpc.response_timeout_ms | ACTORS_RPC_RESPONSE_TIMEOUT_MS | 30000 | RPC交付后收到响应的时间(以毫秒为单位)。仅用于SEQUENTIAL_ON_RESPONSE_FROM_DEVICE提交策略。 |
| actors.rpc.close_session_on_rpc_delivery_timeout | ACTORS_RPC_CLOSE_SESSION_ON_RPC_DELIVERY_TIMEOUT | false | RPC传输超时时关闭传输会话。启用后,RPC将恢复到排队状态。注意:MQTT传输中QoS 0不适用(无需确认),QoS 1适用(需确认),QoS 2不支持。CoAP传输中可确认请求适用,不可确认请求不适用。HTTP和SNMP传输中RPC被视为立即交付,无等待确认逻辑。 |
| actors.statistics.enabled | ACTORS_STATISTICS_ENABLED | true | 启用/禁用Actor统计 |
| actors.statistics.persist_frequency | ACTORS_STATISTICS_PERSIST_FREQUENCY | 3600000 | Actor统计持续频率(以毫秒为单位) |
| actors.calculated_fields.debug_mode_rate_limits_per_tenant.enabled | ACTORS_CALCULATED_FIELD_DEBUG_MODE_RATE_LIMITS_PER_TENANT_ENABLED | true | 启用/禁用每个租户所有计算字段的持久化调试事件的速率限制 |
| actors.calculated_fields.debug_mode_rate_limits_per_tenant.configuration | ACTORS_CALCULATED_FIELD_DEBUG_MODE_RATE_LIMITS_PER_TENANT_CONFIGURATION | 50000:3600 | DEBUG模式速率限制的值。默认情况下,每小时不超过50,000个事件 |
| actors.calculated_fields.calculation_timeout | ACTORS_CALCULATION_TIMEOUT_SEC | 5 | 接收计算结果的时间(以秒为单位)。 |
| debug.settings.default_duration | DEBUG_SETTINGS_DEFAULT_DURATION_MINUTES | 15 | 调试模式的默认持续时间(以分钟为单位)。最小值为1分钟。租户配置设置会覆盖此设置。如果此设置的值无效,则将使用默认值(15分钟)。 |
缓存设置参数
| 参数 | 环境变量 | 默认值 | 说明 |
| cache.type | CACHE_TYPE | caffeine | Caffeine或Redis(7.2为最新兼容版本) |
| cache.maximumPoolSize | CACHE_MAXIMUM_POOL_SIZE | 16 | 处理调用外部缓存的future的最大池大小 |
| cache.attributes.enabled | CACHE_ATTRIBUTES_ENABLED | true | 如果将“maxmemory-policy”Redis配置属性更改为“allkeys-lru”、“allkeys-lfu”或“allkeys-random”,请确保cache.type为“redis”且cache.attributes.enabled为“true” |
| cache.ts_latest.enabled | CACHE_TS_LATEST_ENABLED | true | 将为SQL时间序列最新的DAO启用缓存旁路策略。如果将“maxmemory-policy”Redis配置属性更改为“allkeys-lru”、“allkeys-lfu”或“allkeys-random”,请确保cache.type为“redis”且cache.ts_latest.enabled为“true” |
| cache.specs.relations.timeToLiveInMinutes | CACHE_SPECS_RELATIONS_TTL | 1440 | 关系缓存TTL |
| cache.specs.relations.maxSize | CACHE_SPECS_RELATIONS_MAX_SIZE | 10000 | 0表示缓存被禁用 |
| cache.specs.deviceCredentials.timeToLiveInMinutes | CACHE_SPECS_DEVICE_CREDENTIALS_TTL | 1440 | 设备凭据缓存TTL |
| cache.specs.deviceCredentials.maxSize | CACHE_SPECS_DEVICE_CREDENTIALS_MAX_SIZE | 10000 | 0表示缓存被禁用 |
| cache.specs.devices.timeToLiveInMinutes | CACHE_SPECS_DEVICES_TTL | 1440 | 设备缓存TTL |
| cache.specs.devices.maxSize | CACHE_SPECS_DEVICES_MAX_SIZE | 10000 | 0表示缓存被禁用 |
| cache.specs.sessions.timeToLiveInMinutes | CACHE_SPECS_SESSIONS_TTL | 1440 | 会话缓存TTL |
| cache.specs.sessions.maxSize | CACHE_SPECS_SESSIONS_MAX_SIZE | 10000 | 0表示缓存被禁用 |
| cache.specs.assets.timeToLiveInMinutes | CACHE_SPECS_ASSETS_TTL | 1440 | 资源缓存TTL |
| cache.specs.assets.maxSize | CACHE_SPECS_ASSETS_MAX_SIZE | 10000 | 0表示缓存被禁用 |
| cache.specs.customers.timeToLiveInMinutes | CACHE_SPECS_CUSTOMERS_TTL | 1440 | 客户缓存TTL |
| cache.specs.customers.maxSize | CACHE_SPECS_CUSTOMERS_MAX_SIZE | 10000 | 0表示缓存被禁用 |
| cache.specs.users.timeToLiveInMinutes | CACHE_SPECS_USERS_TTL | 1440 | 用户缓存TTL |
| cache.specs.users.maxSize | CACHE_SPECS_USERS_MAX_SIZE | 10000 | 0表示缓存被禁用 |
| cache.specs.entityViews.timeToLiveInMinutes | CACHE_SPECS_ENTITY_VIEWS_TTL | 1440 | 实体视图缓存TTL |
| cache.specs.entityViews.maxSize | CACHE_SPECS_ENTITY_VIEWS_MAX_SIZE | 10000 | 0表示缓存被禁用 |
| cache.specs.claimDevices.timeToLiveInMinutes | CACHE_SPECS_CLAIM_DEVICES_TTL | 1440 | 设备认领缓存TTL |
| cache.specs.claimDevices.maxSize | CACHE_SPECS_CLAIM_DEVICES_MAX_SIZE | 1000 | 0表示缓存被禁用 |
| cache.specs.securitySettings.timeToLiveInMinutes | CACHE_SPECS_SECURITY_SETTINGS_TTL | 1440 | 安全设置缓存TTL |
| cache.specs.securitySettings.maxSize | CACHE_SPECS_SECURITY_SETTINGS_MAX_SIZE | 10000 | 0表示缓存被禁用 |
| cache.specs.tenantProfiles.timeToLiveInMinutes | CACHE_SPECS_TENANT_PROFILES_TTL | 1440 | 租户配置缓存TTL |
| cache.specs.tenantProfiles.maxSize | CACHE_SPECS_TENANT_PROFILES_MAX_SIZE | 10000 | 0表示缓存被禁用 |
| cache.specs.tenants.timeToLiveInMinutes | CACHE_SPECS_TENANTS_TTL | 1440 | 租户缓存TTL |
| cache.specs.tenants.maxSize | CACHE_SPECS_TENANTS_MAX_SIZE | 10000 | 0表示缓存被禁用 |
| cache.specs.tenantsExist.timeToLiveInMinutes | CACHE_SPECS_TENANTS_TTL | 1440 | 环境变量有意与“租户”缓存中的相同,以使其相等。 |
| cache.specs.tenantsExist.maxSize | CACHE_SPECS_TENANTS_MAX_SIZE | 10000 | 0表示缓存被禁用 |
| cache.specs.deviceProfiles.timeToLiveInMinutes | CACHE_SPECS_DEVICE_PROFILES_TTL | 1440 | 设备配置缓存TTL |
| cache.specs.deviceProfiles.maxSize | CACHE_SPECS_DEVICE_PROFILES_MAX_SIZE | 10000 | 0表示缓存被禁用 |
| cache.specs.assetProfiles.timeToLiveInMinutes | CACHE_SPECS_ASSET_PROFILES_TTL | 1440 | 资产配置缓存TTL |
| cache.specs.assetProfiles.maxSize | CACHE_SPECS_ASSET_PROFILES_MAX_SIZE | 10000 | 0表示缓存被禁用 |
| cache.specs.notificationSettings.timeToLiveInMinutes | CACHE_SPECS_NOTIFICATION_SETTINGS_TTL | 10 | 通知设置缓存TTL |
| cache.specs.notificationSettings.maxSize | CACHE_SPECS_NOTIFICATION_SETTINGS_MAX_SIZE | 1000 | 0表示缓存被禁用 |
| cache.specs.sentNotifications.timeToLiveInMinutes | CACHE_SPECS_SENT_NOTIFICATIONS_TTL | 1440 | 发送通知缓存TTL |
| cache.specs.sentNotifications.maxSize | CACHE_SPECS_SENT_NOTIFICATIONS_MAX_SIZE | 10000 | 0表示缓存被禁用 |
| cache.specs.attributes.timeToLiveInMinutes | CACHE_SPECS_ATTRIBUTES_TTL | 1440 | 属性缓存TTL |
| cache.specs.attributes.maxSize | CACHE_SPECS_ATTRIBUTES_MAX_SIZE | 100000 | 0表示缓存被禁用 |
| cache.specs.tsLatest.timeToLiveInMinutes | CACHE_SPECS_TS_LATEST_TTL | 1440 | 时间序列最新缓存TTL |
| cache.specs.tsLatest.maxSize | CACHE_SPECS_TS_LATEST_MAX_SIZE | 100000 | 0表示缓存被禁用 |
| cache.specs.userSessionsInvalidation.timeToLiveInMinutes | "0" | 该TTL的值将被忽略并替换为JWT刷新令牌过期时间 | |
| cache.specs.userSessionsInvalidation.maxSize | CACHE_SPECS_USERS_UPDATE_TIME_MAX_SIZE | 10000 | 0表示缓存被禁用 |
| cache.specs.otaPackages.timeToLiveInMinutes | CACHE_SPECS_OTA_PACKAGES_TTL | 60 | Ota包缓存TTL |
| cache.specs.otaPackages.maxSize | CACHE_SPECS_OTA_PACKAGES_MAX_SIZE | 10 | 0表示缓存被禁用 |
| cache.specs.otaPackagesData.timeToLiveInMinutes | CACHE_SPECS_OTA_PACKAGES_DATA_TTL | 60 | OTA包数据缓存TTL |
| cache.specs.otaPackagesData.maxSize | CACHE_SPECS_OTA_PACKAGES_DATA_MAX_SIZE | 10 | 0表示缓存被禁用 |
| cache.specs.edges.timeToLiveInMinutes | CACHE_SPECS_EDGES_TTL | 1440 | 边缘缓存TTL |
| cache.specs.edges.maxSize | CACHE_SPECS_EDGES_MAX_SIZE | 10000 | 0表示缓存被禁用 |
| cache.specs.edgeSessions.timeToLiveInMinutes | CACHE_SPECS_EDGE_SESSIONS_TTL | 0 | 边缘会话缓存TTL;如果设置为“0”则没有过期时间 |
| cache.specs.edgeSessions.maxSize | CACHE_SPECS_EDGE_SESSIONS_MAX_SIZE | 10000 | 0表示缓存被禁用 |
| cache.specs.relatedEdges.timeToLiveInMinutes | CACHE_SPECS_RELATED_EDGES_TTL | 1440 | 相关边缘缓存TTL |
| cache.specs.relatedEdges.maxSize | CACHE_SPECS_RELATED_EDGES_MAX_SIZE | 10000 | 0表示缓存被禁用 |
| cache.specs.repositorySettings.timeToLiveInMinutes | CACHE_SPECS_REPOSITORY_SETTINGS_TTL | 1440 | 存储库设置缓存TTL |
| cache.specs.repositorySettings.maxSize | CACHE_SPECS_REPOSITORY_SETTINGS_MAX_SIZE | 10000 | 0表示缓存被禁用 |
| cache.specs.autoCommitSettings.timeToLiveInMinutes | CACHE_SPECS_AUTO_COMMIT_SETTINGS_TTL | 1440 | 自动提交设置缓存TTL |
| cache.specs.autoCommitSettings.maxSize | CACHE_SPECS_AUTO_COMMIT_SETTINGS_MAX_SIZE | 10000 | 0表示缓存被禁用 |
| cache.specs.twoFaVerificationCodes.timeToLiveInMinutes | CACHE_SPECS_TWO_FA_VERIFICATION_CODES_TTL | 60 | 二因素验证码缓存TTL |
| cache.specs.twoFaVerificationCodes.maxSize | CACHE_SPECS_TWO_FA_VERIFICATION_CODES_MAX_SIZE | 100000 | 0表示缓存被禁用 |
| cache.specs.versionControlTask.timeToLiveInMinutes | CACHE_SPECS_VERSION_CONTROL_TASK_TTL | 20 | 版本控制任务缓存TTL |
| cache.specs.versionControlTask.maxSize | CACHE_SPECS_VERSION_CONTROL_TASK_MAX_SIZE | 100000 | 0表示缓存被禁用 |
| cache.specs.userSettings.timeToLiveInMinutes | CACHE_SPECS_USER_SETTINGS_TTL | 1440 | 用户设置缓存TTL |
| cache.specs.userSettings.maxSize | CACHE_SPECS_USER_SETTINGS_MAX_SIZE | 100000 | 0表示缓存被禁用 |
| cache.specs.dashboardTitles.timeToLiveInMinutes | CACHE_SPECS_DASHBOARD_TITLES_TTL | 1440 | 仪表板标题缓存TTL |
| cache.specs.dashboardTitles.maxSize | CACHE_SPECS_DASHBOARD_TITLES_MAX_SIZE | 100000 | 0表示缓存被禁用 |
| cache.specs.entityCount.timeToLiveInMinutes | CACHE_SPECS_ENTITY_COUNT_TTL | 1440 | 实体计数缓存TTL |
| cache.specs.entityCount.maxSize | CACHE_SPECS_ENTITY_COUNT_MAX_SIZE | 100000 | 0表示缓存被禁用 |
| cache.specs.resourceInfo.timeToLiveInMinutes | CACHE_SPECS_RESOURCE_INFO_TTL | 1440 | 资源信息缓存TTL |
| cache.specs.resourceInfo.maxSize | CACHE_SPECS_RESOURCE_INFO_MAX_SIZE | 100000 | 0表示缓存被禁用 |
| cache.specs.alarmTypes.timeToLiveInMinutes | CACHE_SPECS_ALARM_TYPES_TTL | 60 | 警报类型缓存TTL |
| cache.specs.alarmTypes.maxSize | CACHE_SPECS_ALARM_TYPES_MAX_SIZE | 10000 | 0表示缓存被禁用 |
| cache.specs.qrCodeSettings.timeToLiveInMinutes | CACHE_SPECS_MOBILE_APP_SETTINGS_TTL | 1440 | 二维码设置缓存TTL |
| cache.specs.qrCodeSettings.maxSize | CACHE_SPECS_MOBILE_APP_SETTINGS_MAX_SIZE | 10000 | 0表示缓存被禁用 |
| cache.specs.mobileSecretKey.timeToLiveInMinutes | CACHE_MOBILE_SECRET_KEY_TTL | 2 | QR密钥缓存TTL |
| cache.specs.mobileSecretKey.maxSize | CACHE_MOBILE_SECRET_KEY_MAX_SIZE | 10000 | 0表示缓存被禁用 |
| cache.specs.trendzSettings.timeToLiveInMinutes | CACHE_SPECS_TRENDZ_SETTINGS_TTL | 1440 | Trendz设置缓存TTL |
| cache.specs.trendzSettings.maxSize | CACHE_SPECS_TRENDZ_SETTINGS_MAX_SIZE | 10000 | 0表示缓存被禁用 |
| cache.notificationRules.timeToLiveInMinutes | CACHE_SPECS_NOTIFICATION_RULES_TTL | 30 | 通知规则缓存TTL |
| cache.notificationRules.maxSize | CACHE_SPECS_NOTIFICATION_RULES_MAX_SIZE | 1000 | 0表示缓存被禁用 |
| cache.rateLimits.timeToLiveInMinutes | CACHE_SPECS_RATE_LIMITS_TTL | 120 | 速率限制缓存TTL |
| cache.rateLimits.maxSize | CACHE_SPECS_RATE_LIMITS_MAX_SIZE | 200000 | 0表示缓存被禁用 |
| cache.entityLimits.timeToLiveInMinutes | CACHE_SPECS_ENTITY_LIMITS_TTL | 5 | 实体限制缓存TTL |
| cache.entityLimits.maxSize | CACHE_SPECS_ENTITY_LIMITS_MAX_SIZE | 100000 | 0表示缓存被禁用 |
| cache.image.etag.timeToLiveInMinutes | CACHE_SPECS_IMAGE_ETAGS_TTL | 44640 | 图像ETag缓存TTL |
| cache.image.etag.maxSize | CACHE_SPECS_IMAGE_ETAGS_MAX_SIZE | 10000 | 0表示缓存被禁用 |
| cache.image.systemImagesBrowserTtlInMinutes | CACHE_SPECS_IMAGE_SYSTEM_BROWSER_TTL | 0 | 浏览器缓存系统图片的TTL(分钟)。0表示缓存被禁用 |
| cache.image.tenantImagesBrowserTtlInMinutes | CACHE_SPECS_IMAGE_TENANT_BROWSER_TTL | 0 | 浏览器缓存租户图片的TTL(分钟)。0表示缓存被禁用 |
Spring Data参数
| 参数 | 环境变量 | 默认值 | 说明 |
| spring.data.redis.repositories.enabled | false | 禁用它,因为它不是必需的。 |
Redis/Valkey配置参数
| 参数 | 环境变量 | 默认值 | 说明 |
| redis.connection.type | REDIS_CONNECTION_TYPE | standalone | Redis部署类型:独立(单Redis节点部署)或集群 |
| redis.standalone.host | REDIS_HOST | localhost | Redis连接主机 |
| redis.standalone.port | REDIS_PORT | 6379 | Redis连接端口 |
| redis.standalone.useDefaultClientConfig | REDIS_USE_DEFAULT_CLIENT_CONFIG | true | 使用默认的Redis配置文件 |
| redis.standalone.clientName | REDIS_CLIENT_NAME | standalone | 仅当您使用非默认ClientConfig时才可以使用此值 |
| redis.standalone.connectTimeout | REDIS_CLIENT_CONNECT_TIMEOUT | 30000 | 仅当您使用非默认ClientConfig时才可以使用此值 |
| redis.standalone.readTimeout | REDIS_CLIENT_READ_TIMEOUT | 60000 | 仅当您使用非默认ClientConfig时才可以使用此值 |
| redis.standalone.usePoolConfig | REDIS_CLIENT_USE_POOL_CONFIG | false | 仅当您使用非默认ClientConfig时才可以使用此值 |
| redis.cluster.nodes | REDIS_NODES | 要引导的“主机:端口”对的逗号分隔列表。 | |
| redis.cluster.max-redirects | REDIS_MAX_REDIRECTS | 12 | 跨集群执行命令时允许的最大重定向次数 |
| redis.cluster.useDefaultPoolConfig | REDIS_USE_DEFAULT_POOL_CONFIG | true | 若设置为false,将使用池配置部分的值来构建连接池配置 |
| redis.sentinel.master | REDIS_MASTER | 主节点名称 | |
| redis.sentinel.sentinels | REDIS_SENTINELS | 以逗号分隔的“主机:端口”哨兵对列表 | |
| redis.sentinel.password | REDIS_SENTINEL_PASSWORD | 与哨兵进行身份验证的密码 | |
| redis.sentinel.useDefaultPoolConfig | REDIS_USE_DEFAULT_POOL_CONFIG | true | 若设置为false,将使用池配置部分的值来构建连接池配置 |
| redis.db | REDIS_DB | 0 | 数据库索引 |
| redis.password | REDIS_PASSWORD | 数据库密码 | |
| redis.ssl.enabled | TB_REDIS_SSL_ENABLED | false | 启用/禁用安全连接 |
| redis.ssl.credentials.cert_file | TB_REDIS_SSL_PEM_CERT | Redis服务器(CA)证书的路径 | |
| redis.ssl.credentials.user_cert_file | TB_REDIS_SSL_PEM_KEY | 用户证书文件的路径。此项对客户端为可选配置,可用于双向身份验证 | |
| redis.ssl.credentials.user_key_file | TB_REDIS_SSL_PEM_KEY_PASSWORD | 用户私钥文件的路径。这对于客户端来说是可选的,并且仅在配置了“user_cert_file”时才需要。 | |
| redis.pool_config.maxTotal | REDIS_POOL_CONFIG_MAX_TOTAL | 128 | 连接池可分配的最大连接数 |
| redis.pool_config.maxIdle | REDIS_POOL_CONFIG_MAX_IDLE | 128 | 池中可维持且不被关闭的最大空闲连接数 |
| redis.pool_config.minIdle | REDIS_POOL_CONFIG_MIN_IDLE | 16 | 池中可以维持且不被关闭的最小空闲连接数 |
| redis.pool_config.testOnBorrow | REDIS_POOL_CONFIG_TEST_ON_BORROW | true | 启用/禁用借用连接时发送的PING命令 |
| redis.pool_config.testOnReturn | REDIS_POOL_CONFIG_TEST_ON_RETURN | true | 该属性用于指定在将连接返回到连接池之前是否对其进行测试。 |
| redis.pool_config.testWhileIdle | REDIS_POOL_CONFIG_TEST_WHILE_IDLE | true | 该属性用于Redis中的连接池上下文 |
| redis.pool_config.minEvictableMs | REDIS_POOL_CONFIG_MIN_EVICTABLE_MS | 60000 | 空闲连接在被连接池逐出之前所需的最短空闲时间,单位为毫秒 |
| redis.pool_config.evictionRunsMs | REDIS_POOL_CONFIG_EVICTION_RUNS_MS | 30000 | 指定两次连续驱逐运行之间的时间间隔(以毫秒为单位) |
| redis.pool_config.maxWaitMills | REDIS_POOL_CONFIG_MAX_WAIT_MS | 60000 | 当所有连接都耗尽时,客户端愿意等待池中连接的最长时间(以毫秒为单位) |
| redis.pool_config.numberTestsPerEvictionRun | REDIS_POOL_CONFIG_NUMBER_TESTS_PER_EVICTION_RUN | 3 | 指定每次逐出运行期间要测试逐出的连接数 |
| redis.pool_config.blockWhenExhausted | REDIS_POOL_CONFIG_BLOCK_WHEN_EXHAUSTED | true | 确定当线程从池中请求连接但没有可用连接并且由于maxTotal配置而池无法创建更多连接时的行为 |
| redis.evictTtlInMs | REDIS_EVICT_TTL_MS | 60000 | TTL用于替代DEL以启用事务支持的短期SET命令 |
更新版本参数
| 参数 | 环境变量 | 默认值 | 说明 |
| updates.enabled | UPDATES_ENABLED | true | 启用/禁用新版本检查 |
Spring CORS配置参数
| 参数 | 环境变量 | 默认值 | 说明 |
| spring.mvc.cors.mappings."[/api/**]".allowed-origin-patterns | "*" | 允许的以逗号分隔的来源列表。 '*' 允许所有来源。如果未设置,则禁用CORS支持。 | |
| spring.mvc.cors.mappings."[/api/**]".allowed-methods | "*" | 允许的以逗号分隔的方法列表。 '*' 允许所有方法。 | |
| spring.mvc.cors.mappings."[/api/**]".allowed-headers | "*" | 请求中允许的以逗号分隔的标头列表。 '*' 允许所有标头。 | |
| spring.mvc.cors.mappings."[/api/**]".max-age | "1800" | 客户端可以缓存飞行前请求的响应多长时间(以秒为单位)。 | |
| spring.mvc.cors.mappings."[/api/**]".allow-credentials | "true" | 设置是否支持凭据。如果未设置,则不支持凭据。 |
通用Spring参数
| 参数 | 环境变量 | 默认值 | 说明 |
| spring.main.allow-circular-references | "true" | Spring Boot配置属性控制是否允许bean之间的循环依赖。 | |
| spring.freemarker.checkTemplateLocation | "false" | spring freemarker配置 | |
| spring.mvc.async.request-timeout | SPRING_MVC_ASYNC_REQUEST_TIMEOUT | 30000 | 异步请求的默认超时时间(以毫秒为单位) |
| spring.mvc.pathmatch.matching-strategy | "ANT_PATH_MATCHER" | 对于Swagger中的端点匹配 | |
| spring.resources.chain.compressed | "true" | 此属性启用或禁用对提供预压缩资源(例如 .gzip或 .br文件)的支持 | |
| spring.resources.chain.strategy.content.enabled | "true" | 此属性启用或禁用内容版本策略。这种策略允许Spring为静态资源生成一个唯一的版本,该版本基于资源的内容 | |
| spring.servlet.multipart.max-file-size | SPRING_SERVLET_MULTIPART_MAX_FILE_SIZE | 50MB | 配置文件上传时总文件大小不能超过50MB |
| spring.servlet.multipart.max-request-size | SPRING_SERVLET_MULTIPART_MAX_REQUEST_SIZE | 50MB | multipart/form-data的总请求大小不能超过50MB |
| spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation | "true" | 修复Postgres JPA错误(方法org.postgresql.jdbc.PgConnection.createClob() 尚未实现) | |
| spring.jpa.properties.hibernate.order_by.default_null_ordering | SPRING_JPA_PROPERTIES_HIBERNATE_ORDER_BY_DEFAULT_NULL_ORDERING | last | 注意:对于当前的Spring JPA版本,忽略Sort.Order的自定义NullHandling并使用此参数 |
| spring.jpa.properties.hibernate.dialect | SPRING_JPA_DIALECT | org.thingsboard.server.dao.ThingsboardPostgreSQLDialect | 我们使用包含ilike(arg1, arg2) 函数的自定义方言(解释为postgres ILIKE运算符) |
SQL DAO配置参数
| 参数 | 环境变量 | 默认值 | 说明 |
| spring.data.jpa.repositories.enabled | "true" | 启用/禁用Spring Data JPA存储库支持 | |
| spring.jpa.properties.jakarta.persistence.query.timeout | JAVAX_PERSISTENCE_QUERY_TIMEOUT | 30000 | JDBC查询的一般超时 |
| spring.jpa.open-in-view | "false" | 默认启用。因此,可以在视图渲染期间执行数据库查询。显式配置spring.jpa.open-in-view以禁用此警告 | |
| spring.jpa.hibernate.ddl-auto | "none" | 您可以设置Hibernate功能,以更细粒度的方式控制DDL行为。标准的Hibernate属性值为none、validate、update、create-drop。 Spring Boot根据它认为您的数据库是否嵌入(默认创建-删除)或不(默认无)为您选择默认值 | |
| spring.datasource.driverClassName | SPRING_DRIVER_CLASS_NAME | org.postgresql.Driver | Spring JPA的数据库驱动程序 - org.postgresql.Driver |
| spring.datasource.url | SPRING_DATASOURCE_URL | jdbc:postgresql://localhost:5432/tb_edge | 数据库连接地址 |
| spring.datasource.username | SPRING_DATASOURCE_USERNAME | postgres | 数据库用户名 |
| spring.datasource.password | SPRING_DATASOURCE_PASSWORD | postgres | 数据库用户密码 |
| spring.datasource.hikari.leakDetectionThreshold | SPRING_DATASOURCE_HIKARI_LEAK_DETECTION_THRESHOLD | 0 | 此属性控制在记录指示可能的连接泄漏的消息之前连接可以脱离池的时间量。值为0表示禁用泄漏检测 |
| spring.datasource.hikari.maximumPoolSize | SPRING_DATASOURCE_MAXIMUM_POOL_SIZE | 16 | 随着需求的增加,此属性会增加池中的连接数量。同时,该属性确保池不会增长到耗尽系统资源的程度,从而最终影响应用程序的性能和可用性 |
| spring.datasource.hikari.registerMbeans | SPRING_DATASOURCE_HIKARI_REGISTER_MBEANS | false | 启用MBean通过JMX诊断池状态 |
| spring.datasource.events.enabled | SPRING_DEDICATED_EVENTS_DATASOURCE_ENABLED | false | 为事件和审核日志启用专用数据源(单独的数据库)。在启用此功能之前,请确保已在新数据库中设置以下表:error_event、lc_event、rule_chain_debug_event、rule_node_debug_event、stats_event、audit_log、cf_debug_event |
| spring.datasource.events.driverClassName | SPRING_EVENTS_DATASOURCE_DRIVER_CLASS_NAME | org.postgresql.Driver | 用于事件数据源的Spring JPA数据库驱动程序 |
| spring.datasource.events.url | SPRING_EVENTS_DATASOURCE_URL | jdbc:postgresql://localhost:5432/thingsboard_events | 事件数据源的数据库连接URL |
| spring.datasource.events.username | SPRING_EVENTS_DATASOURCE_USERNAME | postgres | 事件数据源的数据库用户名 |
| spring.datasource.events.password | SPRING_EVENTS_DATASOURCE_PASSWORD | postgres | 事件数据源的数据库用户密码 |
| spring.datasource.events.hikari.leakDetectionThreshold | SPRING_EVENTS_DATASOURCE_HIKARI_LEAK_DETECTION_THRESHOLD | 0 | 此属性控制在记录一条消息(指示事件数据源可能存在连接泄漏)之前连接可以脱离池的时间量。值为0表示禁用泄漏检测 |
| spring.datasource.events.hikari.maximumPoolSize | SPRING_EVENTS_DATASOURCE_MAXIMUM_POOL_SIZE | 4 | 随着事件数据源需求的增加,此属性会增加池中的连接数。同时,该属性确保池不会增长到耗尽系统资源的程度,从而最终影响应用程序的性能和可用性 |
| spring.datasource.events.hikari.registerMbeans | SPRING_EVENTS_DATASOURCE_HIKARI_REGISTER_MBEANS | false | 启用MBean通过JMX诊断事件数据源的池状态 |
审计日志参数
| 参数 | 环境变量 | 默认值 | 说明 |
| audit-log.enabled | AUDIT_LOG_ENABLED | true | 启用/禁用审核日志功能 |
| audit-log.logging-level.mask."device" | AUDIT_LOG_MASK_DEVICE | W | 设备日志记录级别。允许值:OFF(禁用)、W(日志写入操作)、RW(日志读写操作) |
| audit-log.logging-level.mask."asset" | AUDIT_LOG_MASK_ASSET | W | 资产记录级别。允许值:OFF(禁用)、W(日志写入操作)、RW(日志读写操作) |
| audit-log.logging-level.mask."dashboard" | AUDIT_LOG_MASK_DASHBOARD | W | 仪表板日志记录级别。允许值:OFF(禁用)、W(日志写入操作)、RW(日志读写操作) |
| audit-log.logging-level.mask."widget_type" | AUDIT_LOG_MASK_WIDGET_TYPE | W | 小部件类型日志记录级别。允许值:OFF(禁用)、W(日志写入操作)、RW(日志读写操作) |
| audit-log.logging-level.mask."widgets_bundle" | AUDIT_LOG_MASK_WIDGETS_BUNDLE | W | 小部件捆绑记录级别。允许值:OFF(禁用)、W(日志写入操作)、RW(日志读写操作) |
| audit-log.logging-level.mask."customer" | AUDIT_LOG_MASK_CUSTOMER | W | 客户记录级别。允许值:OFF(禁用)、W(日志写入操作)、RW(日志读写操作) |
| audit-log.logging-level.mask."user" | AUDIT_LOG_MASK_USER | W | 用户日志记录级别。允许值:OFF(禁用)、W(日志写入操作)、RW(日志读写操作) |
| audit-log.logging-level.mask."rule_chain" | AUDIT_LOG_MASK_RULE_CHAIN | W | 规则链日志记录级别。允许值:OFF(禁用)、W(日志写入操作)、RW(日志读写操作) |
| audit-log.logging-level.mask."alarm" | AUDIT_LOG_MASK_ALARM | W | 报警记录级别。允许值:OFF(禁用)、W(日志写入操作)、RW(日志读写操作) |
| audit-log.logging-level.mask."entity_view" | AUDIT_LOG_MASK_ENTITY_VIEW | W | 实体视图日志记录级别。允许值:OFF(禁用)、W(日志写入操作)、RW(日志读写操作) |
| audit-log.logging-level.mask."device_profile" | AUDIT_LOG_MASK_DEVICE_PROFILE | W | 设备配置日志记录级别。允许值:OFF(禁用)、W(日志写入操作)、RW(日志读写操作) |
| audit-log.logging-level.mask."asset_profile" | AUDIT_LOG_MASK_ASSET_PROFILE | W | 资产配置日志记录级别。允许值:OFF(禁用)、W(日志写入操作)、RW(日志读写操作) |
| audit-log.logging-level.mask."edge" | AUDIT_LOG_MASK_EDGE | W | 边缘日志记录级别。允许值:OFF(禁用)、W(日志写入操作)、RW(日志读写操作) |
| audit-log.logging-level.mask."tb_resource" | AUDIT_LOG_MASK_RESOURCE | W | TB资源日志记录级别。允许值:OFF(禁用)、W(日志写入操作)、RW(日志读写操作) |
| audit-log.logging-level.mask."ota_package" | AUDIT_LOG_MASK_OTA_PACKAGE | W | Ota包日志记录级别。允许值:OFF(禁用)、W(日志写入操作)、RW(日志读写操作) |
| audit-log.logging-level.mask."calculated_field" | AUDIT_LOG_MASK_CALCULATED_FIELD | W | 计算字段日志记录级别。允许值:OFF(禁用)、W(日志写入操作)、RW(日志读写操作) |
| audit-log.sink.type | AUDIT_LOG_SINK_TYPE | none | 外部接收器(Sink)的类型。可选项:none、elasticsearch |
| audit-log.sink.index_pattern | AUDIT_LOG_SINK_INDEX_PATTERN | @{TENANT}_AUDIT_LOG_@{DATE} | 存储审计日志的索引名称 索引名称可以包含下一个占位符(非强制): @{TENANT} - 由租户ID替换 @{DATE} - 由audit_log.sink.date_format中提供的格式的当前日期替换 |
| audit-log.sink.date_format | AUDIT_LOG_SINK_DATE_FORMAT | YYYY.MM.dd | 日期格式。该模式的详细信息可以在这里找到:https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html |
| audit-log.sink.scheme_name | AUDIT_LOG_SINK_SCHEME_NAME | http | http或https |
| audit-log.sink.host | AUDIT_LOG_SINK_HOST | localhost | 外部接收器系统主机 |
| audit-log.sink.port | AUDIT_LOG_SINK_PORT | 9200 | 外部接收器系统端口 |
| audit-log.sink.user_name | AUDIT_LOG_SINK_USER_NAME | 用于访问外部接收器系统的用户名 | |
| audit-log.sink.password | AUDIT_LOG_SINK_PASSWORD | 用于访问外部接收器系统的密码 |
设备状态参数
| 参数 | 环境变量 | 默认值 | 说明 |
| state.defaultInactivityTimeoutInSec | DEFAULT_INACTIVITY_TIMEOUT | 600 | 设备不活动超时是一个全局配置参数,定义服务器何时将设备标记为“不活动”。参数值以秒为单位。用户可以通过设置“inactivityTimeout”服务器端属性来覆盖单个设备的此参数(注意:期望值以毫秒为单位)。我们建议此参数与会话不活动超时(“transport.sessions.inactivity_timeout”或TB_TRANSPORT_SESSIONS_INACTIVITY_TIMEOUT)参数同步,该参数负责检测过时的设备连接会话。会话不活动超时参数的值应大于或等于设备不活动超时。请注意,会话不活动超时以毫秒为单位设置,而设备不活动超时以秒为单位。 |
| state.defaultStateCheckIntervalInSec | DEFAULT_STATE_CHECK_INTERVAL | 60 | 在指定时间后检查设备状态的时间间隔。时间以秒为单位 |
| state.persistToTelemetry | PERSIST_STATE_TO_TELEMETRY | false | 控制我们是否将设备“活动”标志存储在属性(默认)或遥测中。如果您决定更改此参数,则应按照以下方式之一重新创建设备信息视图: 如果“persistToTelemetry”从“false”更改为“true”:“CREATE OR REPLACE VIEW device_info_view AS SELECT * FROM device_info_active_ts_view;”如果“persistToTelemetry”从“true”更改为“false”:“CREATE OR REPLACE VIEW device_info_view AS SELECT * FROM device_info_active_attribute_view;” |
| state.telemetryTtl | STATE_TELEMETRY_TTL | 0 | 定义设备状态遥测数据的生存时间的毫秒值(例如“active”、“lastActivityTime”)。仅当state.persistToTelemetry设置为“true”且Cassandra用于时间序列数据时使用。 0表示生存时间机制已禁用。 |
| state.initFetchPackSize | TB_DEVICE_STATE_INIT_FETCH_PACK_SIZE | 50000 | 初始化设备活动状态时每批获取的设备记录数 |
| state.rule.node.deviceState.rateLimit | DEVICE_STATE_NODE_RATE_LIMIT_CONFIGURATION | 1:1,30:60,60:3600 | 定义设备连接事件的触发速率。以逗号分隔的"容量:持续时间"对列表,用于定义令牌桶限流算法的带宽容量和填充周期。填充策略为贪心模式。详情请参阅Bucket4j库文档。 |
Tbel参数
| 参数 | 环境变量 | 默认值 | 说明 |
| tbel.enabled | TBEL_ENABLED | true | 启用/禁用TBEL功能。 |
| tbel.max_total_args_size | TBEL_MAX_TOTAL_ARGS_SIZE | 100000 | 限制传递给函数以执行脚本的参数数量 |
| tbel.max_result_size | TBEL_MAX_RESULT_SIZE | 300000 | 处理脚本后结果中允许的最大符号数 |
| tbel.max_script_body_size | TBEL_MAX_SCRIPT_BODY_SIZE | 50000 | 脚本主体中允许的最大符号数 |
| tbel.max_memory_limit_mb | TBEL_MAX_MEMORY_LIMIT_MB | 8 | 允许的最大TBEL脚本执行内存 |
| tbel.max_errors | TBEL_MAX_ERRORS | 3 | TBEL脚本被列入黑名单之前允许的最大执行错误数 |
| tbel.max_requests_timeout | TBEL_MAX_REQUEST_TIMEOUT | 500 | TBEL Eval最大请求超时(以毫秒为单位)。 0 - 无超时 |
| tbel.max_black_list_duration_sec | TBEL_MAX_BLACKLIST_DURATION_SEC | 60 | 黑名单功能在列表中停留的最长时间(以秒为单位)。 |
| tbel.thread_pool_size | TBEL_THREAD_POOL_SIZE | 50 | 指定javascript执行器服务的线程池大小 |
| tbel.compiled_scripts_cache_size | TBEL_COMPILED_SCRIPTS_CACHE_SIZE | 1000 | TBEL编译脚本的最大缓存大小 |
| tbel.stats.enabled | TB_TBEL_STATS_ENABLED | false | 启用/禁用TBEL引擎的统计信息收集 |
| tbel.stats.print_interval_ms | TB_TBEL_STATS_PRINT_INTERVAL_MS | 10000 | TBEL统计数据的记录间隔 |
JS参数
| 参数 | 环境变量 | 默认值 | 说明 |
| js.evaluator | JS_EVALUATOR | local | 本地(Nashorn引擎,已弃用)或远程JS执行器 (NodeJS) |
| js.max_total_args_size | JS_MAX_TOTAL_ARGS_SIZE | 100000 | 限制传递给函数以执行脚本的参数数量 |
| js.max_result_size | JS_MAX_RESULT_SIZE | 300000 | 处理脚本后结果中允许的最大符号数 |
| js.max_script_body_size | JS_MAX_SCRIPT_BODY_SIZE | 50000 | 脚本正文中允许的最大符号数 |
| js.local.js_thread_pool_size | LOCAL_JS_THREAD_POOL_SIZE | 50 | 指定javascript执行器服务的线程池大小 |
| js.local.use_js_sandbox | USE_LOCAL_JS_SANDBOX | true | 使用沙盒(安全)JVM JavaScript环境 |
| js.local.monitor_thread_pool_size | LOCAL_JS_SANDBOX_MONITOR_THREAD_POOL_SIZE | 4 | 指定JavaScript沙箱资源监视器的线程池大小 |
| js.local.max_cpu_time | LOCAL_JS_SANDBOX_MAX_CPU_TIME | 8000 | 脚本执行允许的最大CPU时间(以毫秒为单位) |
| js.local.max_memory | LOCAL_JS_SANDBOX_MAX_MEMORY | 104857600 | JS执行器线程可以分配的最大内存(以字节为单位)(近似计算)。由于Nashorn 0.4.2的实现,不建议将零内存限制与非零CPU限制结合使用。对于大多数情况,100MiB实际上是无限的 |
| js.local.max_errors | LOCAL_JS_SANDBOX_MAX_ERRORS | 3 | JavaScript将被列入黑名单之前允许的最大JavaScript执行错误数 |
| js.local.max_requests_timeout | LOCAL_JS_MAX_REQUEST_TIMEOUT | 0 | JS Eval最大请求超时。 0 - 无超时 |
| js.local.max_black_list_duration_sec | LOCAL_JS_SANDBOX_MAX_BLACKLIST_DURATION_SEC | 60 | 黑名单功能在列表中停留的最长时间(以秒为单位)。 |
| js.local.stats.enabled | TB_JS_LOCAL_STATS_ENABLED | false | 启用/禁用本地JS执行器的统计信息收集 |
| js.local.stats.print_interval_ms | TB_JS_LOCAL_STATS_PRINT_INTERVAL_MS | 10000 | 本地JS执行器统计信息的日志记录间隔 |
| js.remote.js_thread_pool_size | REMOTE_JS_THREAD_POOL_SIZE | 50 | 指定javascript执行器服务的线程池大小 |
| js.remote.max_errors | REMOTE_JS_SANDBOX_MAX_ERRORS | 3 | JavaScript将被列入黑名单之前允许的最大JavaScript执行错误数 |
| js.remote.max_black_list_duration_sec | REMOTE_JS_SANDBOX_MAX_BLACKLIST_DURATION_SEC | 60 | 黑名单功能在列表中停留的最长时间(以秒为单位)。 |
| js.remote.stats.enabled | TB_JS_REMOTE_STATS_ENABLED | false | 启用/禁用远程JS执行器的统计信息收集 |
| js.remote.stats.print_interval_ms | TB_JS_REMOTE_STATS_PRINT_INTERVAL_MS | 10000 | 远程JS执行器统计记录的时间间隔 |
传输配置参数
| 参数 | 环境变量 | 默认值 | 说明 |
| transport.sessions.inactivity_timeout | TB_TRANSPORT_SESSIONS_INACTIVITY_TIMEOUT | 600000 | 会话不活动超时是一个全局配置参数,定义最后一条消息从设备到达后设备传输会话将打开的时间。参数值以毫秒为单位。如果设备发送任何消息(包括keepalive消息),设备会话的最后活动时间就会更新。如果没有活动,会话将关闭,所有订阅都将被删除。我们建议此参数与设备不活动超时(“state.defaultInactivityTimeoutInSec”或DEFAULT_INACTIVITY_TIMEOUT)参数同步,该参数负责检测平台核心服务中的设备连接状态。会话不活动超时参数的值应大于或等于设备不活动超时。请注意,会话不活动超时以毫秒为单位设置,而设备不活动超时以秒为单位。 |
| transport.sessions.report_timeout | TB_TRANSPORT_SESSIONS_REPORT_TIMEOUT | 3000 | 定期检查过期会话并报告会话上次活动时间更改的时间间隔 |
| transport.activity.reporting_strategy | TB_TRANSPORT_ACTIVITY_REPORTING_STRATEGY | LAST | 指定每个报告周期内上报活动事件的策略。可选值为FIRST、LAST、FIRST_AND_LAST和ALL。FIRST:仅上报周期内的第一个活动事件;LAST:仅上报周期内的最后一个活动事件;FIRST_AND_LAST:同时上报周期内的第一个和最后一个活动事件;ALL:上报周期内的所有活动事件。 |
| transport.json.type_cast_enabled | JSON_TYPE_CAST_ENABLED | true | 处理遥测/属性JSON时,如果可能,将字符串数据类型转换为数字 |
| transport.json.max_string_value_length | JSON_MAX_STRING_VALUE_LENGTH | 0 | 处理遥测/属性JSON时允许的最大字符串值长度(0值禁用字符串值长度检查) |
| transport.client_side_rpc.timeout | CLIENT_SIDE_RPC_TIMEOUT | 60000 | 客户端RPC命令处理超时时间。时间(以毫秒为单位) |
| transport.api_enabled | TB_TRANSPORT_API_ENABLED | true | 启用/禁用http/mqtt/coap/lwm2m传输协议(比某些协议的“启用”属性具有更高的优先级) |
| transport.log.enabled | TB_TRANSPORT_LOG_ENABLED | true | 启用/禁用遥测传输消息的日志。例如,记录LwM2M注册更新 |
| transport.log.max_length | TB_TRANSPORT_LOG_MAX_LENGTH | 1024 | 日志消息的最大长度。如果需要,内容将被截断为指定值 |
| transport.rate_limits.ip_limits_enabled | TB_TRANSPORT_IP_RATE_LIMITS_ENABLED | false | 启用或禁用通用速率限制。设备和租户特定的速率限制在租户配置中进行控制。 |
| transport.rate_limits.max_wrong_credentials_per_ip | TB_TRANSPORT_MAX_WRONG_CREDENTIALS_PER_IP | 10 | 使用无效凭据的最大连接尝试次数 |
| transport.rate_limits.ip_block_timeout | TB_TRANSPORT_IP_BLOCK_TIMEOUT | 60000 | 阻止IP地址过期的超时(以毫秒为单位) |
| transport.http.enabled | HTTP_ENABLED | true | 启用/禁用本地HTTP传输协议 |
| transport.http.request_timeout | HTTP_REQUEST_TIMEOUT | 60000 | HTTP请求处理超时(以毫秒为单位) |
| transport.http.max_request_timeout | HTTP_MAX_REQUEST_TIMEOUT | 300000 | HTTP最大请求处理超时(以毫秒为单位) |
| transport.http.max_payload_size | HTTP_TRANSPORT_MAX_PAYLOAD_SIZE_LIMIT_CONFIGURATION | /api/v1/*/rpc/**=65536;/api/v1/**=52428800 | 以分号分隔的urlPattern=maxPayloadSize配置列表,用于定义指定URL模式的HTTP请求最大大小。命中第一条后将忽略后续规则 |
| transport.mqtt.enabled | MQTT_ENABLED | true | 启用/禁用mqtt传输协议 |
| transport.mqtt.bind_address | MQTT_BIND_ADDRESS | 0.0.0.0 | MQTT绑定地址 |
| transport.mqtt.bind_port | MQTT_BIND_PORT | 1883 | MQTT绑定端口 |
| transport.mqtt.proxy_enabled | MQTT_PROXY_PROTOCOL_ENABLED | false | 启用代理协议支持。默认禁用。如果启用,则支持v1和v2。对于在日志中获取客户端的真实IP地址和速率限制很有用。 |
| transport.mqtt.timeout | MQTT_TIMEOUT | 10000 | MQTT处理超时(以毫秒为单位) |
| transport.mqtt.disconnect_timeout | MQTT_DISCONNECT_TIMEOUT | 1000 | MQTT断开连接超时(以毫秒为单位)。服务器发送断开连接消息后等待客户端断开连接的时间。 |
| transport.mqtt.msg_queue_size_per_device_limit | MQTT_MSG_QUEUE_SIZE_PER_DEVICE_LIMIT | 100 | 设备连接前在队列中排队等待发送的消息数限制。此限制在TenantProfileLimits机制之前的底层生效 |
| transport.mqtt.gateway_metrics_report_interval_sec | MQTT_GATEWAY_METRICS_REPORT_INTERVAL_SEC | 60 | 网关指标定期上报时间间隔 |
| transport.mqtt.netty.leak_detector_level | NETTY_LEAK_DETECTOR_LVL | DISABLED | Netty检漏仪级别 |
| transport.mqtt.netty.boss_group_thread_count | NETTY_BOSS_GROUP_THREADS | 1 | Netty BOSS线程数 |
| transport.mqtt.netty.worker_group_thread_count | NETTY_WORKER_GROUP_THREADS | 12 | Netty工作线程数 |
| transport.mqtt.netty.max_payload_size | NETTY_MAX_PAYLOAD_SIZE | 65536 | 最大有效负载大小(以字节为单位) |
| transport.mqtt.netty.so_keep_alive | NETTY_SO_KEEPALIVE | false | 启用TCP保活。这意味着当连接空闲一段时间后,TCP开始发送keepalive探测 |
| transport.mqtt.ssl.enabled | MQTT_SSL_ENABLED | false | 启用/禁用SSL支持 |
| transport.mqtt.ssl.bind_address | MQTT_SSL_BIND_ADDRESS | 0.0.0.0 | MQTT SSL绑定地址 |
| transport.mqtt.ssl.bind_port | MQTT_SSL_BIND_PORT | 8883 | MQTT SSL绑定端口 |
| transport.mqtt.ssl.protocol | MQTT_SSL_PROTOCOL | TLSv1.2 | SSL协议:请参阅https://docs.oracle.com/en/java/javase/11/docs/specs/security/standard-names.html#sslcontext-algorithms |
| transport.mqtt.ssl.credentials.type | MQTT_SSL_CREDENTIALS_TYPE | PEM | 服务器凭证类型(PEM - pem证书文件;KEYSTORE - java密钥库) |
| transport.mqtt.ssl.credentials.pem.cert_file | MQTT_SSL_PEM_CERT | mqttserver.pem | 服务器证书文件的路径(保存服务器证书或证书链,可能包括服务器私钥) |
| transport.mqtt.ssl.credentials.pem.key_file | MQTT_SSL_PEM_KEY | mqttserver_key.pem | 服务器证书私钥文件的路径。默认可选。如果服务器证书文件中不存在私钥,则需要; |
| transport.mqtt.ssl.credentials.pem.key_password | MQTT_SSL_PEM_KEY_PASSWORD | server_key_password | 服务器证书私钥密码(可选) |
| transport.mqtt.ssl.credentials.keystore.type | MQTT_SSL_KEY_STORE_TYPE | JKS | 密钥库的类型(JKS或PKCS12) |
| transport.mqtt.ssl.credentials.keystore.store_file | MQTT_SSL_KEY_STORE | mqttserver.jks | 保存SSL证书的密钥库的路径 |
| transport.mqtt.ssl.credentials.keystore.store_password | MQTT_SSL_KEY_STORE_PASSWORD | server_ks_password | 用于访问密钥库的密码 |
| transport.mqtt.ssl.credentials.keystore.key_alias | MQTT_SSL_KEY_ALIAS | 私钥的可选别名。如果未设置,平台将从密钥库加载第一个私钥 | |
| transport.mqtt.ssl.credentials.keystore.key_password | MQTT_SSL_KEY_PASSWORD | server_key_password | 用于访问私钥的可选密码。如果不设置,平台会尝试加载不受密码保护的私钥; |
| transport.mqtt.ssl.skip_validity_check_for_client_cert | MQTT_SSL_SKIP_VALIDITY_CHECK_FOR_CLIENT_CERT | false | 跳过客户端证书的证书有效性检查。 |
| transport.coap.enabled | COAP_ENABLED | true | 启用/禁用CoAP传输协议 |
| transport.coap.timeout | COAP_TIMEOUT | 10000 | CoaP处理超时(以毫秒为单位) |
| transport.coap.piggyback_timeout | COAP_PIGGYBACK_TIMEOUT | 500 | CoaP搭载响应超时(以毫秒为单位) |
| transport.coap.psm_activity_timer | COAP_PSM_ACTIVITY_TIMER | 10000 | 如果设备配置中未指定,则默认PSM活动计时器 |
| transport.coap.paging_transmission_window | COAP_PAGING_TRANSMISSION_WINDOW | 10000 | 如果设备配置中未指定,则默认PSM活动计时器 |
| transport.lwm2m.enabled | LWM2M_ENABLED | true | 启用/禁用LwM2M传输协议 |
| transport.lwm2m.dtls.retransmission_timeout | LWM2M_DTLS_RETRANSMISSION_TIMEOUT_MS | 9000 | RFC7925重传超时(毫秒)=9000 |
| transport.lwm2m.dtls.connection_id_length | LWM2M_DTLS_CONNECTION_ID_LENGTH | LWM2M的CoAP DTLS连接ID长度。 RFC 9146,DTLS 1.2的连接标识符 默认值:8控制DTLS连接ID长度 (CID) 的使用。 - “关闭”以停用它。 - “on”激活连接ID支持(与CID 0或更多0相同)。 - 正值定义生成的CID大小(以字节为单位)。 - 值0表示我们接受使用CID,但不会为外部对等方生成CID(启用支持,但不启用传入流量)。 - 0到 <= 4之间的值:使用SingleNodeConnectionIdGenerator - > 4的值:使用MultiNodeConnectionIdGenerator | |
| transport.lwm2m.server.id | LWM2M_SERVER_ID | 123 | LwM2M服务器ID |
| transport.lwm2m.server.bind_address | LWM2M_BIND_ADDRESS | 0.0.0.0 | LwM2M服务器绑定地址。默认绑定到所有接口 |
| transport.lwm2m.server.bind_port | LWM2M_BIND_PORT | 5685 | LwM2M服务器绑定端口 |
| transport.lwm2m.server.security.bind_address | LWM2M_SECURITY_BIND_ADDRESS | 0.0.0.0 | DTLS的LwM2M服务器绑定地址。默认绑定到所有接口 |
| transport.lwm2m.server.security.bind_port | LWM2M_SECURITY_BIND_PORT | 5686 | 用于DTLS的LwM2M服务器绑定端口 |
| transport.lwm2m.server.security.credentials.enabled | LWM2M_SERVER_CREDENTIALS_ENABLED | false | 是否启用LwM2M服务器X509证书/RPK支持 |
| transport.lwm2m.server.security.credentials.type | LWM2M_SERVER_CREDENTIALS_TYPE | PEM | 服务器凭证类型(PEM - pem证书文件;KEYSTORE - java密钥库) |
| transport.lwm2m.server.security.credentials.pem.cert_file | LWM2M_SERVER_PEM_CERT | lwm2mserver.pem | 服务器证书文件的路径(保存服务器证书或证书链,可能包括服务器私钥) |
| transport.lwm2m.server.security.credentials.pem.key_file | LWM2M_SERVER_PEM_KEY | lwm2mserver_key.pem | 服务器证书私钥文件的路径。默认可选。如果服务器证书文件中不存在私钥,则为必需; |
| transport.lwm2m.server.security.credentials.pem.key_password | LWM2M_SERVER_PEM_KEY_PASSWORD | server_key_password | 服务器证书私钥密码(可选) |
| transport.lwm2m.server.security.credentials.keystore.type | LWM2M_SERVER_KEY_STORE_TYPE | JKS | 密钥库的类型(JKS或PKCS12) |
| transport.lwm2m.server.security.credentials.keystore.store_file | LWM2M_SERVER_KEY_STORE | lwm2mserver.jks | 保存SSL证书的密钥库的路径 |
| transport.lwm2m.server.security.credentials.keystore.store_password | LWM2M_SERVER_KEY_STORE_PASSWORD | server_ks_password | 用于访问密钥库的密码 |
| transport.lwm2m.server.security.credentials.keystore.key_alias | LWM2M_SERVER_KEY_ALIAS | server | 密钥别名 |
| transport.lwm2m.server.security.credentials.keystore.key_password | LWM2M_SERVER_KEY_PASSWORD | server_ks_password | 用于访问密钥的密码 |
| transport.lwm2m.server.security.skip_validity_check_for_client_cert | TB_LWM2M_SERVER_SECURITY_SKIP_VALIDITY_CHECK_FOR_CLIENT_CERT | false | 仅X509证书模式:跳过客户端证书有效性检查 |
| transport.lwm2m.bootstrap.enabled | LWM2M_ENABLED_BS | true | 启用/禁用引导服务器 |
| transport.lwm2m.bootstrap.id | LWM2M_SERVER_ID_BS | null | 在对象的Bootstrap模式下启动后LwM2M客户端中的默认值:名称“LwM2M Security”字段:“Short Server ID”(deviceProfile:Bootstrap.BOOTSTRAP SERVER.Short ID) |
| transport.lwm2m.bootstrap.bind_address | LWM2M_BS_BIND_ADDRESS | 0.0.0.0 | LwM2M引导服务器绑定地址。默认绑定到所有接口 |
| transport.lwm2m.bootstrap.bind_port | LWM2M_BS_BIND_PORT | 5687 | LwM2M引导服务器绑定端口 |
| transport.lwm2m.bootstrap.security.bind_address | LWM2M_BS_SECURITY_BIND_ADDRESS | 0.0.0.0 | DTLS的LwM2M引导服务器绑定地址。默认绑定到所有接口 |
| transport.lwm2m.bootstrap.security.bind_port | LWM2M_BS_SECURITY_BIND_PORT | 5688 | DTLS的LwM2M引导服务器绑定地址。默认绑定到所有接口 |
| transport.lwm2m.bootstrap.security.credentials.enabled | LWM2M_BS_CREDENTIALS_ENABLED | false | 是否启用LWM2M引导服务器X509证书/RPK支持 |
| transport.lwm2m.bootstrap.security.credentials.type | LWM2M_BS_CREDENTIALS_TYPE | PEM | 服务器凭证类型(PEM - pem证书文件;KEYSTORE - java密钥库) |
| transport.lwm2m.bootstrap.security.credentials.pem.cert_file | LWM2M_BS_PEM_CERT | lwm2mserver.pem | 服务器证书文件的路径(保存服务器证书或证书链,可能包括服务器私钥) |
| transport.lwm2m.bootstrap.security.credentials.pem.key_file | LWM2M_BS_PEM_KEY | lwm2mserver_key.pem | 服务器证书私钥文件的路径。默认可选。如果服务器证书文件中不存在私钥,则需要 |
| transport.lwm2m.bootstrap.security.credentials.pem.key_password | LWM2M_BS_PEM_KEY_PASSWORD | server_key_password | 服务器证书私钥密码(可选) |
| transport.lwm2m.bootstrap.security.credentials.keystore.type | LWM2M_BS_KEY_STORE_TYPE | JKS | 密钥库的类型(JKS或PKCS12) |
| transport.lwm2m.bootstrap.security.credentials.keystore.store_file | LWM2M_BS_KEY_STORE | lwm2mserver.jks | 保存SSL证书的密钥库的路径 |
| transport.lwm2m.bootstrap.security.credentials.keystore.store_password | LWM2M_BS_KEY_STORE_PASSWORD | server_ks_password | 用于访问密钥库的密码 |
| transport.lwm2m.bootstrap.security.credentials.keystore.key_alias | LWM2M_BS_KEY_ALIAS | bootstrap | 密钥别名 |
| transport.lwm2m.bootstrap.security.credentials.keystore.key_password | LWM2M_BS_KEY_PASSWORD | server_ks_password | 用于访问密钥的密码 |
| transport.lwm2m.security.trust-credentials.enabled | LWM2M_TRUST_CREDENTIALS_ENABLED | false | 是否加载X509信任证书 |
| transport.lwm2m.security.trust-credentials.type | LWM2M_TRUST_CREDENTIALS_TYPE | PEM | 信任证书存储类型(PEM - pem证书文件;KEYSTORE - java密钥库) |
| transport.lwm2m.security.trust-credentials.pem.cert_file | LWM2M_TRUST_PEM_CERT | lwm2mtruststorechain.pem | 证书文件的路径(保存信任证书) |
| transport.lwm2m.security.trust-credentials.keystore.type | LWM2M_TRUST_KEY_STORE_TYPE | JKS | 密钥库的类型(JKS或PKCS12) |
| transport.lwm2m.security.trust-credentials.keystore.store_file | LWM2M_TRUST_KEY_STORE | lwm2mtruststorechain.jks | 保存X509证书的密钥库的路径 |
| transport.lwm2m.security.trust-credentials.keystore.store_password | LWM2M_TRUST_KEY_STORE_PASSWORD | server_ks_password | 用于访问密钥库的密码 |
| transport.lwm2m.security.recommended_ciphers | LWM2M_RECOMMENDED_CIPHERS | false | 设置推荐密码套件的使用; true - 仅允许推荐的密码套件; false - 允许不推荐的密码套件 |
| transport.lwm2m.security.recommended_supported_groups | LWM2M_RECOMMENDED_SUPPORTED_GROUPS | true | 设置推荐支持组的使用(曲线); true - 仅允许推荐的支持组, false - 允许不推荐的支持组 |
| transport.lwm2m.timeout | LWM2M_TIMEOUT | 120000 | LwM2M操作超时 |
| transport.lwm2m.uplink_pool_size | LWM2M_UPLINK_POOL_SIZE | 10 | 用于处理LwM2M上行链路的线程池大小 |
| transport.lwm2m.downlink_pool_size | LWM2M_DOWNLINK_POOL_SIZE | 10 | 用于处理LwM2M下行链路的线程池大小 |
| transport.lwm2m.ota_pool_size | LWM2M_OTA_POOL_SIZE | 10 | 用于处理OTA更新的线程池大小 |
| transport.lwm2m.clean_period_in_sec | LWM2M_CLEAN_PERIOD_IN_SEC | 2 | 注册信息存储清理周期 |
| transport.lwm2m.log_max_length | LWM2M_LOG_MAX_LENGTH | 1024 | 最大日志大小 |
| transport.lwm2m.psm_activity_timer | LWM2M_PSM_ACTIVITY_TIMER | 10000 | PSM活动计时器(如果设备配置中未指定) |
| transport.lwm2m.paging_transmission_window | LWM2M_PAGING_TRANSMISSION_WINDOW | 10000 | 如果设备配置中未指定,则用于eDRX支持的寻呼传输窗口 |
| transport.snmp.enabled | SNMP_ENABLED | true | 启用/禁用SNMP传输协议 |
| transport.snmp.bind_address | SNMP_BIND_ADDRESS | 0.0.0.0 | SNMP绑定地址 |
| transport.snmp.bind_port | SNMP_BIND_PORT | 0 | SNMP绑定端口。默认为零(随机)。使用SNMP TRAP时 - 确保指定一些静态值,例如1620 |
| transport.snmp.response_processing.parallelism_level | SNMP_RESPONSE_PROCESSING_PARALLELISM_LEVEL | 4 | 负责处理来自SNMP设备响应的执行器 (workStealingPool) 的并行级别 |
| transport.snmp.underlying_protocol | SNMP_UNDERLYING_PROTOCOL | udp | 将SNMP配置为通过UDP或TCP工作 |
| transport.snmp.max_request_oids | SNMP_MAX_REQUEST_OIDS | 100 | PDU的最大大小(单个SNMP请求中的OID映射数量)。如果映射数量超过此数量,请求将被拆分为多个PDU |
| transport.snmp.request_chunk_delay_ms | SNMP_REQUEST_CHUNK_DELAY_MS | 100 | 发送每个请求块后的延迟(如果由于max_request_oids请求被分成多个PDU) |
| transport.snmp.response.ignore_type_cast_errors | SNMP_RESPONSE_IGNORE_TYPE_CAST_ERRORS | false | 忽略与配置的OID映射的数据类型不匹配的SNMP响应值(默认为false - 如果响应的任何值与配置的数据类型不匹配,将引发错误) |
| transport.snmp.scheduler_thread_pool_size | SNMP_SCHEDULER_THREAD_POOL_SIZE | 4 | 执行设备查询任务的调度器的线程池大小 |
| transport.stats.enabled | TB_TRANSPORT_STATS_ENABLED | true | 启用/禁用传输统计数据的收集 |
| transport.stats.print-interval-ms | TB_TRANSPORT_STATS_PRINT_INTERVAL_MS | 60000 | 传输统计记录的间隔 |
| transport.gateway.dashboard.sync.enabled | TB_GATEWAY_DASHBOARD_SYNC_ENABLED | false | 启用/禁用网关仪表板与git存储库同步 |
| transport.gateway.dashboard.sync.repository_url | TB_GATEWAY_DASHBOARD_SYNC_REPOSITORY_URL | https://github.com/thingsboard/gateway-management-extensions-dist.git | 网关仪表板存储库的URL |
| transport.gateway.dashboard.sync.branch | TB_GATEWAY_DASHBOARD_SYNC_BRANCH | release/4.0.0 | 要使用的网关仪表板存储库的分支 |
| transport.gateway.dashboard.sync.fetch_frequency | TB_GATEWAY_DASHBOARD_SYNC_FETCH_FREQUENCY | 24 | 获取网关仪表板存储库的频率(以小时为单位) |
CoAP服务器参数
| 参数 | 环境变量 | 默认值 | 说明 |
| coap.server.enabled | COAP_SERVER_ENABLED | true | 启用/禁用coap服务器 |
| coap.bind_address | COAP_BIND_ADDRESS | 0.0.0.0 | CoAP绑定地址 |
| coap.bind_port | COAP_BIND_PORT | 5683 | CoAP绑定端口 |
| coap.dtls.enabled | COAP_DTLS_ENABLED | false | 启用/禁用DTLS 1.2支持 |
| coap.dtls.retransmission_timeout | COAP_DTLS_RETRANSMISSION_TIMEOUT_MS | 9000 | RFC7925重传超时(毫秒)=9000 |
| coap.dtls.bind_address | COAP_DTLS_BIND_ADDRESS | 0.0.0.0 | CoAP DTLS绑定地址 |
| coap.dtls.bind_port | COAP_DTLS_BIND_PORT | 5684 | CoAP DTLS绑定端口 |
| coap.dtls.connection_id_length | COAP_DTLS_CONNECTION_ID_LENGTH | CoAP DTLS连接ID长度。 RFC 9146,DTLS 1.2的连接标识符 默认值:8控制DTLS连接ID长度 (CID) 的使用。 - “关闭”以停用它。 - “on”激活连接ID支持(与CID 0或更多0相同)。 - 正值定义生成的CID大小(以字节为单位)。 - 值0表示我们接受使用CID,但不会为外部对等方生成CID(启用支持,但不启用传入流量)。 - 0到 <= 4之间的值:使用SingleNodeConnectionIdGenerator - > 4的值:使用MultiNodeConnectionIdGenerator | |
| coap.dtls.max_transmission_unit | COAP_DTLS_MAX_TRANSMISSION_UNIT | 1024 | 指定MTU(最大传输单元)。如果未使用LAN MTU,则应使用,例如如果使用IP隧道或者客户端使用小于LAN MTU的值。默认 = 1024最小值 = 64如果设置为0 - 使用LAN MTU。 |
| coap.dtls.max_fragment_length | COAP_DTLS_MAX_FRAGMENT_LENGTH | 1024 | DTLS最大片段长度(RFC 6066,第4节)。默认值 = 1024可能的值:512、1024、2048、4096。如果设置为0,则使用默认最大片段大小2^14字节(16,384字节)。如果没有此扩展,TLS指定固定的最大明文片段长度为2^14字节。由于内存限制或带宽限制,受限客户端可能需要协商较小的最大片段长度。为了协商较小的最大片段长度,客户端可以在(扩展的)客户端问候中包含“max_fragment_length”类型的扩展。该扩展的“extension_data”字段应包含: enum { 2^9(1) == 512, 2^10(2) == 1024, 2^11(3) == 2048, 2^12(4) == 4096, (255) } MaxFragmentLength; TLS已经要求客户端和服务器支持握手消息的分段。 |
| coap.dtls.credentials.type | COAP_DTLS_CREDENTIALS_TYPE | PEM | 服务器凭证类型(PEM - pem证书文件;KEYSTORE - java密钥库) |
| coap.dtls.credentials.pem.cert_file | COAP_DTLS_PEM_CERT | coapserver.pem | 服务器证书文件的路径(保存服务器证书或证书链,可能包括服务器私钥) |
| coap.dtls.credentials.pem.key_file | COAP_DTLS_PEM_KEY | coapserver_key.pem | 服务器证书私钥文件的路径。默认可选。如果服务器证书文件中不存在私钥,则为必需; |
| coap.dtls.credentials.pem.key_password | COAP_DTLS_PEM_KEY_PASSWORD | server_key_password | 服务器证书私钥密码(可选) |
| coap.dtls.credentials.keystore.type | COAP_DTLS_KEY_STORE_TYPE | JKS | 密钥库的类型(JKS或PKCS12) |
| coap.dtls.credentials.keystore.store_file | COAP_DTLS_KEY_STORE | coapserver.jks | 保存SSL证书的密钥库的路径 |
| coap.dtls.credentials.keystore.store_password | COAP_DTLS_KEY_STORE_PASSWORD | server_ks_password | 用于访问密钥库的密码 |
| coap.dtls.credentials.keystore.key_alias | COAP_DTLS_KEY_ALIAS | serveralias | 密钥别名 |
| coap.dtls.credentials.keystore.key_password | COAP_DTLS_KEY_PASSWORD | server_key_password | 用于访问密钥的密码 |
| coap.dtls.x509.skip_validity_check_for_client_cert | TB_COAP_X509_DTLS_SKIP_VALIDITY_CHECK_FOR_CLIENT_CERT | false | 跳过客户端证书的证书有效性检查。 |
| coap.dtls.x509.dtls_session_inactivity_timeout | TB_COAP_X509_DTLS_SESSION_INACTIVITY_TIMEOUT | 86400000 | DTLS会话不活动超时。用于清理缓存 |
| coap.dtls.x509.dtls_session_report_timeout | TB_COAP_X509_DTLS_SESSION_REPORT_TIMEOUT | 1800000 | 定期驱逐超时DTLS会话的时间间隔 |
设备连接参数
| 参数 | 环境变量 | 默认值 | 说明 |
| device.connectivity.http.enabled | DEVICE_CONNECTIVITY_HTTP_ENABLED | true | 如果为true,检查连接服务将使用DEVICE_CONNECTIVITY_HTTP_HOST和DEVICE_CONNECTIVITY_HTTP_PORT变量将curl命令包含到所有测试命令的列表中 |
| device.connectivity.http.host | DEVICE_CONNECTIVITY_HTTP_HOST | http传输服务的主机。如果为空,则将使用基本URL。 | |
| device.connectivity.http.port | DEVICE_CONNECTIVITY_HTTP_PORT | 8080 | http传输服务的端口。如果为空,将使用默认的http端口。 |
| device.connectivity.https.enabled | DEVICE_CONNECTIVITY_HTTPS_ENABLED | false | 如果为true,检查连接服务将使用DEVICE_CONNECTIVITY_HTTPS_HOST和DEVICE_CONNECTIVITY_HTTPS_PORT变量将curl命令包含到所有测试命令的列表中 |
| device.connectivity.https.host | DEVICE_CONNECTIVITY_HTTPS_HOST | http传输服务的主机。如果为空,则将使用基本URL。 | |
| device.connectivity.https.port | DEVICE_CONNECTIVITY_HTTPS_PORT | 443 | http传输服务的端口。如果为空,则将使用默认的https端口。 |
| device.connectivity.mqtt.enabled | DEVICE_CONNECTIVITY_MQTT_ENABLED | true | 若为true,mosquitto命令将包含在使用DEVICE_CONNECTIVITY_MQTT_HOST和DEVICE_CONNECTIVITY_MQTT_PORT的所有测试命令列表中 |
| device.connectivity.mqtt.host | DEVICE_CONNECTIVITY_MQTT_HOST | mqtt传输服务的主机。如果为空,则将使用基本url主机。 | |
| device.connectivity.mqtt.port | DEVICE_CONNECTIVITY_MQTT_PORT | 1883 | mqtt传输服务端口 |
| device.connectivity.mqtts.enabled | DEVICE_CONNECTIVITY_MQTTS_ENABLED | false | 若为true,mosquitto命令将包含在使用DEVICE_CONNECTIVITY_MQTTS_HOST和DEVICE_CONNECTIVITY_MQTTS_PORT的所有测试命令列表中 |
| device.connectivity.mqtts.host | DEVICE_CONNECTIVITY_MQTTS_HOST | mqtt传输服务的主机。如果为空,则将使用基本URL主机。 | |
| device.connectivity.mqtts.port | DEVICE_CONNECTIVITY_MQTTS_PORT | 8883 | mqtt传输服务的端口。如果为空,则将使用mqtts的默认端口。 |
| device.connectivity.mqtts.pem_cert_file | DEVICE_CONNECTIVITY_MQTTS_CA_ROOT_CERT | cafile.pem | MQTT CA根证书文件的路径 |
| device.connectivity.coap.enabled | DEVICE_CONNECTIVITY_COAP_ENABLED | true | 如果为true,coap命令将包含在使用DEVICE_CONNECTIVITY_COAP_HOST和DEVICE_CONNECTIVITY_COAP_PORT的所有测试命令的列表中。 |
| device.connectivity.coap.host | DEVICE_CONNECTIVITY_COAP_HOST | CoAP传输服务的主机。如果为空,则使用基本URL主机。 | |
| device.connectivity.coap.port | DEVICE_CONNECTIVITY_COAP_PORT | 5683 | CoAP传输服务的端口。如果为空,则使用CoAP默认端口。 |
| device.connectivity.coaps.enabled | DEVICE_CONNECTIVITY_COAPS_ENABLED | false | 如果为true,coap命令将包含在使用DEVICE_CONNECTIVITY_COAPS_HOST和DEVICE_CONNECTIVITY_COAPS_PORT的所有测试命令的列表中。 |
| device.connectivity.coaps.host | DEVICE_CONNECTIVITY_COAPS_HOST | CoAP传输服务的主机。如果为空,则使用基本URL主机。 | |
| device.connectivity.coaps.port | DEVICE_CONNECTIVITY_COAPS_PORT | 5684 | CoAPs传输服务的端口。如果为空,则使用CoAPs默认端口。 |
| device.connectivity.coaps.pem_cert_file | DEVICE_CONNECTIVITY_COAPS_CA_ROOT_CERT | cafile.pem | COAP CA根证书文件的路径 |
| device.connectivity.gateway.image_version | DEVICE_CONNECTIVITY_GATEWAY_IMAGE_VERSION | 3.7-stable | docker-compose文件中使用的thingsboard/tb-gateway镜像的docker标签用于网关启动 |
Edges参数
| 参数 | 环境变量 | 默认值 | 说明 |
| edges.enabled | "false" | 必须在边缘禁用 | |
| edges.rpc.port | EDGES_RPC_PORT | 7070 | RPC端口绑定 |
| edges.rpc.client_max_keep_alive_time_sec | EDGES_RPC_CLIENT_MAX_KEEP_ALIVE_TIME_SEC | 1 | 指定客户端发送的keepalive ping之间应经过的最短时间。这可以防止客户端过于频繁地发送ping,这可能会给服务器带来麻烦(如果滥用,甚至可能成为拒绝服务攻击媒介)。如果客户端发送ping的频率超过此间隔,服务器可能会终止连接。 |
| edges.rpc.keep_alive_time_sec | EDGES_RPC_KEEP_ALIVE_TIME_SEC | 10 | 设置不活动时间(连接上没有读取操作),之后服务器将向客户端发送keepalive ping。这用于确保连接仍然有效,并防止网络中介由于不活动而丢弃连接。这是服务器主动检查客户端是否仍然响应的一种方法。 |
| edges.rpc.keep_alive_timeout_sec | EDGES_RPC_KEEP_ALIVE_TIMEOUT_SEC | 5 | 指定服务器等待其keepalive ping响应的最长时间。如果在此时间范围内未确认ping,服务器将认为连接已失效并可能将其关闭。此超时有助于检测无响应的客户端。 |
| edges.rpc.ssl.enabled | EDGES_RPC_SSL_ENABLED | false | 启用/禁用SSL支持 |
| edges.rpc.ssl.cert | EDGES_RPC_SSL_CERT | certChainFile.pem | 在TLS连接到云期间使用的证书文件 |
| edges.rpc.ssl.private_key | EDGES_RPC_SSL_PRIVATE_KEY | privateKeyFile.pem | 与Cert证书关联的私钥文件。该密钥用于安全连接期间的加密过程 |
| edges.rpc.max_inbound_message_size | EDGES_RPC_MAX_INBOUND_MESSAGE_SIZE | 4194304 | 云可以从边缘处理的入站消息的最大大小(以字节为单位)。默认情况下,它可以处理高达4 MB的消息 |
| edges.rpc.max_telemetry_message_size | EDGES_RPC_MAX_TELEMETRY_MESSAGE_SIZE | 0 | 云发送到边缘的遥测(时间序列和属性)消息的最大长度。默认情况下,没有限制。 |
| edges.storage.max_read_records_count | EDGES_STORAGE_MAX_READ_RECORDS_COUNT | 50 | 从数据库读取并发送到边缘的边缘事件的最大记录数 |
| edges.storage.no_read_records_sleep | EDGES_NO_READ_RECORDS_SLEEP | 1000 | 下次检查数据库中的边缘事件之前等待的毫秒数 |
| edges.storage.sleep_between_batches | EDGES_SLEEP_BETWEEN_BATCHES | 60000 | 将失败的一批边缘事件重新发送到边缘之前等待的毫秒数 |
| edges.max_high_priority_queue_size_per_session | EDGES_MAX_HIGH_PRIORITY_QUEUE_SIZE_PER_SESSION | 10000 | 每个边缘会话的高优先级边缘事件的最大数量。没有持久性——存储在内存中 |
| edges.scheduler_pool_size | EDGES_SCHEDULER_POOL_SIZE | 4 | 用于检查数据库边缘事件的线程数 |
| edges.send_scheduler_pool_size | EDGES_SEND_SCHEDULER_POOL_SIZE | 4 | 用于通过gRPC发送下行消息的线程数 |
| edges.grpc_callback_thread_pool_size | EDGES_GRPC_CALLBACK_POOL_SIZE | 4 | 用于将DB中的边缘事件转换为下行消息并发送出去的线程数 |
| edges.state.persistToTelemetry | EDGES_PERSIST_STATE_TO_TELEMETRY | false | 将边缘状态(活动、上次连接、上次断开连接)保留到时间序列或属性表中。 'false' 表示将边缘状态存储到属性表中 |
Spring Doc通用参数
| 参数 | 环境变量 | 默认值 | 说明 |
| springdoc.api-docs.enabled | SWAGGER_ENABLED | true | 如果false swagger API文档将不可用 |
| springdoc.default-produces-media-type | SWAGGER_DEFAULT_PRODUCES_MEDIA_TYPE | application/json | Swagger默认生成媒体类型 |
Swagger通用参数
| 参数 | 环境变量 | 默认值 | 说明 |
| swagger.api_path | SWAGGER_API_PATH | /api/** | swagger UI链接的一般swagger匹配模式 |
| swagger.security_path_regex | SWAGGER_SECURITY_PATH_REGEX | /api/.* | swagger UI链接的通用swagger匹配模式路径 |
| swagger.non_security_path_regex | SWAGGER_NON_SECURITY_PATH_REGEX | /api/(?:noauth|v1)/.* | swagger UI链接的非安全API路径匹配模式 |
| swagger.title | SWAGGER_TITLE | ThingsBoard REST API | API文档UI页面上的标题 |
| swagger.description | SWAGGER_DESCRIPTION | ThingsBoard open-source IoT platform REST API documentation. | API文档UI页面上的描述 |
| swagger.contact.name | SWAGGER_CONTACT_NAME | ThingsBoard team | API文档UI页面上的联系人姓名 |
| swagger.contact.url | SWAGGER_CONTACT_URL | https://thingsboard.io | API文档UI页面上的联系URL |
| swagger.contact.email | SWAGGER_CONTACT_EMAIL | info@thingsboard.io | API文档UI页面上的联系电子邮件 |
| swagger.license.title | SWAGGER_LICENSE_TITLE | Apache License Version 2.0 | API文档UI页面上的许可证标题 |
| swagger.license.url | SWAGGER_LICENSE_URL | https://github.com/thingsboard/thingsboard/blob/master/LICENSE | 链接到API文档UI页面上的许可证正文 |
| swagger.version | SWAGGER_VERSION | 要显示的API文档的版本。默认为包版本。 | |
| swagger.group_name | SWAGGER_GROUP_NAME | thingsboard | API文档UI页面上的组名称(定义)。 |
队列配置参数
| 参数 | 环境变量 | 默认值 | 说明 |
| queue.type | TB_QUEUE_TYPE | in-memory | 内存中或kafka (Apache Kafka) |
| queue.prefix | TB_QUEUE_PREFIX | 全局队列前缀。如果指定,则在默认主题名称之前添加前缀:“prefix.default_topic_name”。前缀应用于所有主题(以及kafka的消费者组)。 | |
| queue.in_memory.stats.print-interval-ms | TB_QUEUE_IN_MEMORY_STATS_PRINT_INTERVAL_MS | 60000 | 对于调试级别 |
| queue.kafka.bootstrap.servers | TB_KAFKA_SERVERS | localhost:9092 | “主机:端口”格式的Kafka Bootstrap节点 |
| queue.kafka.ssl.enabled | TB_KAFKA_SSL_ENABLED | false | 启用/禁用SSL Kafka通信 |
| queue.kafka.ssl.truststore.location | TB_KAFKA_SSL_TRUSTSTORE_LOCATION | 信任库文件的位置 | |
| queue.kafka.ssl.truststore.password | TB_KAFKA_SSL_TRUSTSTORE_PASSWORD | 信任库文件的密码(如果指定) | |
| queue.kafka.ssl.keystore.location | TB_KAFKA_SSL_KEYSTORE_LOCATION | 密钥库文件的位置。这对于客户端来说是可选的,可以用于客户端的双向身份验证 | |
| queue.kafka.ssl.keystore.password | TB_KAFKA_SSL_KEYSTORE_PASSWORD | 密钥库文件的存储密码。这对于客户端来说是可选的,并且仅在配置了“ssl.keystore.location”时才需要。 PEM格式不支持密钥库密码 | |
| queue.kafka.ssl.key.password | TB_KAFKA_SSL_KEY_PASSWORD | 密钥库文件中私钥的密码或“keystore.key”中指定的PEM密钥的密码 | |
| queue.kafka.acks | TB_KAFKA_ACKS | all | 生产者要求领导者在考虑请求完成之前收到的确认数量。这控制发送的记录的持久性。允许以下设置:0、1和全部 |
| queue.kafka.retries | TB_KAFKA_RETRIES | 1 | 重试次数。重新发送发送失败并可能出现暂时性错误的任何记录 |
| queue.kafka.compression.type | TB_KAFKA_COMPRESSION_TYPE | none | 无或gzip |
| queue.kafka.batch.size | TB_KAFKA_BATCH_SIZE | 16384 | 默认批量大小。该设置给出了要发送的批量大小的上限 |
| queue.kafka.linger.ms | TB_KAFKA_LINGER_MS | 1 | 该变量会产生少量的人为延迟,即不会立即发送记录 |
| queue.kafka.max.request.size | TB_KAFKA_MAX_REQUEST_SIZE | 1048576 | 请求的最大大小(以字节为单位)。此设置将限制生产者在单个请求中发送的记录批次数量,以避免发送巨大的请求 |
| queue.kafka.max.in.flight.requests.per.connection | TB_KAFKA_MAX_IN_FLIGHT_REQUESTS_PER_CONNECTION | 5 | 阻塞之前客户端在单个连接上发送的未确认请求的最大数量 |
| queue.kafka.buffer.memory | TB_BUFFER_MEMORY | 33554432 | 生产者可用于缓冲等待发送到服务器的记录的内存总字节数 |
| queue.kafka.replication_factor | TB_QUEUE_KAFKA_REPLICATION_FACTOR | 1 | Kafka多个broker上的多份数据 |
| queue.kafka.max_poll_interval_ms | TB_QUEUE_KAFKA_MAX_POLL_INTERVAL_MS | 300000 | 使用消费者组管理时,调用poll() 方法之间的最大延迟。这对消费者在获取更多记录之前可以空闲的时间设置了上限 |
| queue.kafka.max_poll_records | TB_QUEUE_KAFKA_MAX_POLL_RECORDS | 8192 | 单次调用poll() 方法返回的最大记录数 |
| queue.kafka.max_partition_fetch_bytes | TB_QUEUE_KAFKA_MAX_PARTITION_FETCH_BYTES | 16777216 | 服务器将返回的每个分区的最大数据量。记录由消费者批量获取 |
| queue.kafka.fetch_max_bytes | TB_QUEUE_KAFKA_FETCH_MAX_BYTES | 134217728 | 服务器将返回的最大数据量。记录由消费者批量获取 |
| queue.kafka.request.timeout.ms | TB_QUEUE_KAFKA_REQUEST_TIMEOUT_MS | 30000 | (30秒) |
| queue.kafka.session.timeout.ms | TB_QUEUE_KAFKA_SESSION_TIMEOUT_MS | 10000 | (10秒) |
| queue.kafka.auto_offset_reset | TB_QUEUE_KAFKA_AUTO_OFFSET_RESET | earliest | earliest、latest或none |
| queue.kafka.use_confluent_cloud | TB_QUEUE_KAFKA_USE_CONFLUENT_CLOUD | false | 启用/禁用Confluence Cloud的使用 |
| queue.kafka.confluent.ssl.algorithm | TB_QUEUE_KAFKA_CONFLUENT_SSL_ALGORITHM | https | 客户端用于验证服务器主机名的端点识别算法。默认值为https |
| queue.kafka.confluent.sasl.mechanism | TB_QUEUE_KAFKA_CONFLUENT_SASL_MECHANISM | PLAIN | 用于验证架构注册表请求的机制。 SASL/PLAIN只能与TLS/SSL一起使用作为传输层,以确保明文密码不会在未经加密的情况下在线路上传输 |
| queue.kafka.confluent.sasl.config | TB_QUEUE_KAFKA_CONFLUENT_SASL_JAAS_CONFIG | org.apache.kafka.common.security.plain.PlainLoginModule required username=\"CLUSTER_API_KEY\" password=\"CLUSTER_API_SECRET\"; | 使用JAAS配置在代理上指定多个SASL机制 |
| queue.kafka.confluent.security.protocol | TB_QUEUE_KAFKA_CONFLUENT_SECURITY_PROTOCOL | SASL_SSL | 用于与Broker通信的协议。有效值为:PLAINTEXT、SSL、SASL_PLAINTEXT、SASL_SSL |
| queue.kafka.consumer-properties-per-topic.tb_ota_package.key | max.poll.records | 每个特定主题的Kafka消费者的键值属性,例如tb_ota_package是ota的主题名称,tb_rule_engine.sq是默认SequentialByOriginator队列的主题名称。检查TB_QUEUE_CORE_OTA_TOPIC和TB_QUEUE_RE_SQ_TOPIC参数 | |
| queue.kafka.consumer-properties-per-topic.tb_ota_package.key.value | TB_QUEUE_KAFKA_OTA_MAX_POLL_RECORDS | 10 | 每个主题的特定消费者属性值示例 |
| queue.kafka.consumer-properties-per-topic.tb_version_control.key | max.poll.interval.ms | VC每个主题的特定消费者属性值示例 | |
| queue.kafka.consumer-properties-per-topic.tb_version_control.key.value | TB_QUEUE_KAFKA_VC_MAX_POLL_INTERVAL_MS | 600000 | VC每个主题的特定消费者属性值示例 |
| queue.kafka.consumer-properties-per-topic.tb_edge.key | max.poll.records | 针对边缘服务更新主题的消费者的属性。 | |
| queue.kafka.consumer-properties-per-topic.tb_edge.key.value | TB_QUEUE_KAFKA_EDGE_EVENTS_MAX_POLL_RECORDS | 10 | 定义每个请求可以从tb_edge主题轮询的最大记录数。 |
| queue.kafka.consumer-properties-per-topic.tb_edge.notifications.key | max.poll.records | 针对高优先级边缘通知的消费者的属性。这些通知包括RPC调用、生命周期事件和新队列消息,需要最小的延迟和快速的处理。 | |
| queue.kafka.consumer-properties-per-topic.tb_edge.notifications.key.value | TB_QUEUE_KAFKA_EDGE_HP_EVENTS_MAX_POLL_RECORDS | 10 | 定义可以从tb_edge.notifications.SERVICE_ID主题轮询的最大记录数。 |
| queue.kafka.consumer-properties-per-topic.tb_edge_event.notifications.key | max.poll.records | 针对特定边缘主题的下行链路消费者的属性。主题名称是使用租户和边缘标识符动态构建的。 | |
| queue.kafka.consumer-properties-per-topic.tb_edge_event.notifications.key.value | TB_QUEUE_KAFKA_EDGE_NOTIFICATIONS_MAX_POLL_RECORDS | 10 | 定义可以从tb_edge_event.notifications.TENANT_ID.EDGE_ID主题轮询的最大记录数。 |
| queue.kafka.consumer-properties-per-topic.tb_housekeeper.key | max.poll.records | Housekeeper任务主题的使用者属性 | |
| queue.kafka.consumer-properties-per-topic.tb_housekeeper.key.value | TB_QUEUE_KAFKA_HOUSEKEEPER_MAX_POLL_RECORDS | 1 | 单次轮询中返回的记录数量。对于管家任务主题,我们应该一条一条地消费消息(任务) |
| queue.kafka.consumer-properties-per-topic.tb_housekeeper.reprocessing.key | max.poll.records | Housekeeper重新处理主题的消费者属性 | |
| queue.kafka.consumer-properties-per-topic.tb_housekeeper.reprocessing.key.value | TB_QUEUE_KAFKA_HOUSEKEEPER_REPROCESSING_MAX_POLL_RECORDS | 1 | 单次轮询中返回的记录数量。对于Housekeeper再处理topic,我们应该一条一条地消费消息(任务) |
| queue.kafka.consumer-properties-per-topic.tb_cloud_event.key | max.poll.records | Kafka tb_cloud_event主题的使用者属性 | |
| queue.kafka.consumer-properties-per-topic.tb_cloud_event.key.value | TB_QUEUE_KAFKA_CLOUD_EVENT_MAX_POLL_RECORDS | 50 | 云事件主题的单次轮询中返回的记录数 |
| queue.kafka.consumer-properties-per-topic.tb_cloud_event_ts.key | max.poll.records | Kafka tb_cloud_event_ts主题的使用者属性 | |
| queue.kafka.consumer-properties-per-topic.tb_cloud_event_ts.key.value | TB_QUEUE_KAFKA_CLOUD_EVENT_TS_MAX_POLL_RECORDS | 50 | 云事件时间序列主题的单次轮询中返回的记录数量 |
| queue.kafka.consumer-properties-per-topic.edqs.events.key | max.poll.records | edqs.events主题的Kafka消费者的键值属性 | |
| queue.kafka.consumer-properties-per-topic.edqs.events.key.value | TB_QUEUE_KAFKA_EDQS_EVENTS_MAX_POLL_RECORDS | 512 | edqs.events主题的最大轮询记录 |
| queue.kafka.consumer-properties-per-topic.edqs.state.key | max.poll.records | edqs.state主题的Kafka消费者的键值属性 | |
| queue.kafka.consumer-properties-per-topic.edqs.state.key.value | TB_QUEUE_KAFKA_EDQS_STATE_MAX_POLL_RECORDS | 512 | edqs.state主题的最大轮询记录 |
| queue.kafka.consumer-properties-per-topic.tasks.key | max.poll.records | 任务主题的Kafka使用者的键值属性 | |
| queue.kafka.consumer-properties-per-topic.tasks.key.value | TB_QUEUE_KAFKA_TASKS_MAX_POLL_RECORDS | 1 | 任务主题的最大轮询记录 |
| queue.kafka.consumer-properties-per-topic-inline | TB_QUEUE_KAFKA_CONSUMER_PROPERTIES_PER_TOPIC_INLINE | 如果您使用环境变量覆盖任何默认的Kafka主题名称,则还必须在“consumer-properties-per-topic-inline”中指定新主题的相关使用者属性。否则,主题将不会继承其预期配置(例如max.poll.records、超时等)。每个条目为特定主题设置一个属性。要为主题定义多个属性,请重复主题键。格式:“topic1:key=value;topic1:key=value;topic2:key=value” 示例:tb_core_updated:max.poll.records=10;tb_core_updated:bootstrap.servers=kafka1:9092,kafka2:9092;tb_edge_updated:auto.offset.reset=latest | |
| queue.kafka.other-inline | TB_QUEUE_KAFKA_OTHER_PROPERTIES | 在本节中,您可以为Kafka消费者/生产者/管理员指定自定义参数(分号分隔) | |
| queue.kafka.topic-properties.rule-engine | TB_QUEUE_KAFKA_RE_TOPIC_PROPERTIES | retention.ms:604800000;segment.bytes:52428800;retention.bytes:1048576000;partitions:1;min.insync.replicas:1 | 规则引擎的Kafka属性 |
| queue.kafka.topic-properties.core | TB_QUEUE_KAFKA_CORE_TOPIC_PROPERTIES | retention.ms:604800000;segment.bytes:52428800;retention.bytes:1048576000;partitions:1;min.insync.replicas:1 | 核心主题的Kafka属性 |
| queue.kafka.topic-properties.transport-api | TB_QUEUE_KAFKA_TA_TOPIC_PROPERTIES | retention.ms:604800000;segment.bytes:52428800;retention.bytes:1048576000;partitions:10;min.insync.replicas:1 | Transport Api主题的Kafka属性 |
| queue.kafka.topic-properties.notifications | TB_QUEUE_KAFKA_NOTIFICATIONS_TOPIC_PROPERTIES | retention.ms:604800000;segment.bytes:52428800;retention.bytes:1048576000;partitions:1;min.insync.replicas:1 | 通知主题的Kafka属性 |
| queue.kafka.topic-properties.js-executor | TB_QUEUE_KAFKA_JE_TOPIC_PROPERTIES | retention.ms:604800000;segment.bytes:52428800;retention.bytes:104857600;partitions:100;min.insync.replicas:1 | JS执行器主题的Kafka属性 |
| queue.kafka.topic-properties.ota-updates | TB_QUEUE_KAFKA_OTA_TOPIC_PROPERTIES | retention.ms:604800000;segment.bytes:52428800;retention.bytes:1048576000;partitions:10;min.insync.replicas:1 | OTA更新主题的Kafka属性 |
| queue.kafka.topic-properties.version-control | TB_QUEUE_KAFKA_VC_TOPIC_PROPERTIES | retention.ms:604800000;segment.bytes:52428800;retention.bytes:1048576000;partitions:1;min.insync.replicas:1 | 版本控制主题的Kafka属性 |
| queue.kafka.topic-properties.housekeeper | TB_QUEUE_KAFKA_HOUSEKEEPER_TOPIC_PROPERTIES | retention.ms:604800000;segment.bytes:52428800;retention.bytes:1048576000;partitions:10;min.insync.replicas:1 | Housekeeper任务主题的Kafka属性 |
| queue.kafka.topic-properties.housekeeper-reprocessing | TB_QUEUE_KAFKA_HOUSEKEEPER_REPROCESSING_TOPIC_PROPERTIES | retention.ms:7776000000;segment.bytes:52428800;retention.bytes:1048576000;partitions:1;min.insync.replicas:1 | Housekeeper重新处理主题的Kafka属性; Retention.ms设置为90天;分区设置为1,因为一次仅运行一个重新处理服务 |
| queue.kafka.topic-properties.edge | TB_QUEUE_KAFKA_EDGE_TOPIC_PROPERTIES | retention.ms:604800000;segment.bytes:52428800;retention.bytes:1048576000;partitions:1;min.insync.replicas:1 | Edge主题的Kafka属性 |
| queue.kafka.topic-properties.edge-event | TB_QUEUE_KAFKA_EDGE_EVENT_TOPIC_PROPERTIES | retention.ms:2592000000;segment.bytes:52428800;retention.bytes:1048576000;partitions:1;min.insync.replicas:1 | Edge事件主题的Kafka属性 |
| queue.kafka.topic-properties.cloud_event | TB_QUEUE_KAFKA_CLOUD_EVENT_TOPIC_PROPERTIES | retention.ms:2678400000;segment.bytes:52428800;retention.bytes:1048576000;partitions:1;min.insync.replicas:1 | CloudEvent主题的Kafka属性 |
| queue.kafka.topic-properties.cloud_event_ts | TB_QUEUE_KAFKA_CLOUD_EVENT_TS_TOPIC_PROPERTIES | retention.ms:2678400000;segment.bytes:52428800;retention.bytes:10485760000;partitions:1;min.insync.replicas:1 | TsCloudEvent主题的Kafka属性 |
| queue.kafka.topic-properties.calculated-field | TB_QUEUE_KAFKA_CF_TOPIC_PROPERTIES | retention.ms:604800000;segment.bytes:52428800;retention.bytes:1048576000;partitions:1;min.insync.replicas:1 | 计算字段主题的Kafka属性 |
| queue.kafka.topic-properties.calculated-field-state | TB_QUEUE_KAFKA_CF_STATE_TOPIC_PROPERTIES | retention.ms:-1;segment.bytes:52428800;retention.bytes:104857600000;partitions:1;min.insync.replicas:1;cleanup.policy:compact | 计算字段状态主题的Kafka属性 |
| queue.kafka.topic-properties.edqs-events | TB_QUEUE_KAFKA_EDQS_EVENTS_TOPIC_PROPERTIES | retention.ms:86400000;segment.bytes:52428800;retention.bytes:-1;partitions:1;min.insync.replicas:1 | EDQS事件主题的Kafka属性 |
| queue.kafka.topic-properties.edqs-requests | TB_QUEUE_KAFKA_EDQS_REQUESTS_TOPIC_PROPERTIES | retention.ms:180000;segment.bytes:52428800;retention.bytes:1048576000;partitions:1;min.insync.replicas:1 | EDQS请求主题的Kafka属性(默认值:保留3分钟) |
| queue.kafka.topic-properties.edqs-state | TB_QUEUE_KAFKA_EDQS_STATE_TOPIC_PROPERTIES | retention.ms:-1;segment.bytes:52428800;retention.bytes:-1;partitions:1;min.insync.replicas:1;cleanup.policy:compact | EDQS状态主题的Kafka属性(无限保留、压缩) |
| queue.kafka.topic-properties.tasks | TB_QUEUE_KAFKA_TASKS_TOPIC_PROPERTIES | retention.ms:604800000;segment.bytes:52428800;retention.bytes:104857600;partitions:1;min.insync.replicas:1 | 任务主题的Kafka属性 |
| queue.kafka.consumer-stats.enabled | TB_QUEUE_KAFKA_CONSUMER_STATS_ENABLED | true | 打印Kafka主题中消费者组偏移量和最后消息偏移量之间的滞后 |
| queue.kafka.consumer-stats.print-interval-ms | TB_QUEUE_KAFKA_CONSUMER_STATS_MIN_PRINT_INTERVAL_MS | 60000 | Kafka消费者组统计数据的统计打印间隔 |
| queue.kafka.consumer-stats.kafka-response-timeout-ms | TB_QUEUE_KAFKA_CONSUMER_STATS_RESPONSE_TIMEOUT_MS | 1000 | 等待Kafka的统计数据加载请求完成的时间 |
| queue.partitions.hash_function_name | TB_QUEUE_PARTITIONS_HASH_FUNCTION_NAME | murmur3_128 | murmur3_32、murmur3_128或sha256 |
| queue.transport_api.requests_topic | TB_QUEUE_TRANSPORT_API_REQUEST_TOPIC | tb_transport.api.requests | 用于使用来自传输微服务的api请求的主题 |
| queue.transport_api.responses_topic | TB_QUEUE_TRANSPORT_API_RESPONSE_TOPIC | tb_transport.api.responses | 用于生成传输微服务的api响应的主题 |
| queue.transport_api.max_pending_requests | TB_QUEUE_TRANSPORT_MAX_PENDING_REQUESTS | 10000 | 服务器要处理的来自传输微服务的最大待处理API请求数 |
| queue.transport_api.max_requests_timeout | TB_QUEUE_TRANSPORT_MAX_REQUEST_TIMEOUT | 10000 | 服务器处理来自传输微服务的api请求的最大超时(以毫秒为单位) |
| queue.transport_api.max_callback_threads | TB_QUEUE_TRANSPORT_MAX_CALLBACK_THREADS | 100 | 用于调用回调的线程数量 |
| queue.transport_api.max_core_handler_threads | TB_QUEUE_TRANSPORT_MAX_CORE_HANDLER_THREADS | 16 | 用于传输API请求的线程数量 |
| queue.transport_api.request_poll_interval | TB_QUEUE_TRANSPORT_REQUEST_POLL_INTERVAL_MS | 25 | 从传输微服务轮询api请求的时间间隔(以毫秒为单位) |
| queue.transport_api.response_poll_interval | TB_QUEUE_TRANSPORT_RESPONSE_POLL_INTERVAL_MS | 25 | 从传输微服务轮询api响应的时间间隔(以毫秒为单位) |
| queue.core.topic | TB_QUEUE_CORE_TOPIC | tb_core | 默认主题名称 |
| queue.core.notifications_topic | TB_QUEUE_CORE_NOTIFICATIONS_TOPIC | tb_core.notifications | 对于需要最短延迟和处理时间的高优先级通知 |
| queue.core.poll-interval | TB_QUEUE_CORE_POLL_INTERVAL_MS | 25 | 核心微服务轮询消息的时间间隔(以毫秒为单位) |
| queue.core.partitions | TB_QUEUE_CORE_PARTITIONS | 10 | 核心微服务使用的分区数量 |
| queue.core.pack-processing-timeout | TB_QUEUE_CORE_PACK_PROCESSING_TIMEOUT_MS | 2000 | 核心微服务处理消息包超时 |
| queue.core.consumer-per-partition | TB_QUEUE_CORE_CONSUMER_PER_PARTITION | true | 为核心队列启用/禁用每个分区的单独使用者 |
| queue.core.ota.topic | TB_QUEUE_CORE_OTA_TOPIC | tb_ota_package | OTA更新的默认主题名称 |
| queue.core.ota.pack-interval-ms | TB_QUEUE_CORE_OTA_PACK_INTERVAL_MS | 60000 | 处理设备OTA更新的时间间隔。用于避免由于许多并行OTA更新而对网络造成任何损害 |
| queue.core.ota.pack-size | TB_QUEUE_CORE_OTA_PACK_SIZE | 100 | 从队列中获取的OTA更新通知的大小。队列存储成对的固件和设备ID |
| queue.core.usage-stats-topic | TB_QUEUE_US_TOPIC | tb_usage_stats | 统计主题名称 |
| queue.core.stats.enabled | TB_QUEUE_CORE_STATS_ENABLED | true | 启用/禁用核心微服务的统计信息 |
| queue.core.stats.print-interval-ms | TB_QUEUE_CORE_STATS_PRINT_INTERVAL_MS | 60000 | 核心微服务的统计打印间隔 |
| queue.core.housekeeper.topic | TB_HOUSEKEEPER_TOPIC | tb_housekeeper | Housekeeper任务的主题名称 |
| queue.core.housekeeper.reprocessing-topic | TB_HOUSEKEEPER_REPROCESSING_TOPIC | tb_housekeeper.reprocessing | 要重新处理的Housekeeper任务的主题名称 |
| queue.core.housekeeper.poll-interval-ms | TB_HOUSEKEEPER_POLL_INTERVAL_MS | 500 | Housekeeper相关主题的轮询间隔 |
| queue.core.housekeeper.task-processing-timeout-ms | TB_HOUSEKEEPER_TASK_PROCESSING_TIMEOUT_MS | 120000 | 任务处理超时(以毫秒为单位)。未能按时完成的任务将提交重新处理 |
| queue.core.housekeeper.disabled-task-types | TB_HOUSEKEEPER_DISABLED_TASK_TYPES | 不应处理的任务类型的逗号分隔列表。可用的任务类型:DELETE_ATTRIBUTES、DELETE_TELEMETRY(DELETE_LATEST_TS和DELETE_TS_HISTORY将被禁用)、DELETE_LATEST_TS、DELETE_TS_HISTORY、DELETE_EVENTS、DELETE_ALARMS、UNASSIGN_ALARMS | |
| queue.core.housekeeper.task-reprocessing-delay-ms | TB_HOUSEKEEPER_TASK_REPROCESSING_DELAY_MS | 3000 | 任务重新处理之间的延迟(以毫秒为单位) |
| queue.core.housekeeper.max-reprocessing-attempts | TB_HOUSEKEEPER_MAX_REPROCESSING_ATTEMPTS | 10 | 任务重新处理尝试的最大数量。超过后任务将被丢弃 |
| queue.core.housekeeper.stats.enabled | TB_HOUSEKEEPER_STATS_ENABLED | true | 启用/禁用管家统计 |
| queue.core.housekeeper.stats.print-interval-ms | TB_HOUSEKEEPER_STATS_PRINT_INTERVAL_MS | 60000 | Housekeeper统计打印间隔 |
| queue.edqs.sync.enabled | TB_EDQS_SYNC_ENABLED | false | 启用/禁用EDQS同步 |
| queue.edqs.sync.entity_batch_size | TB_EDQS_SYNC_ENTITY_BATCH_SIZE | 10000 | 与EDQS同步的实体的批量大小 |
| queue.edqs.sync.ts_batch_size | TB_EDQS_SYNC_TS_BATCH_SIZE | 10000 | 与EDQS同步的时间序列数据的批量大小 |
| queue.edqs.api.supported | TB_EDQS_API_SUPPORTED | false | 是否将实体数据查询请求转发到EDQS(否则使用PostgreSQL实现) |
| queue.edqs.api.auto_enable | TB_EDQS_API_AUTO_ENABLE | true | 当数据同步到Kafka完成时是否自动启用EDQS API(如果queue.edqs.api.supported为true) |
| queue.edqs.readiness_check_interval | TB_EDQS_READINESS_CHECK_INTERVAL_MS | 60000 | 检查就绪EDQS服务器的时间间隔(以毫秒为单位) |
| queue.edqs.mode | TB_EDQS_MODE | local | EDQS模式:本地(对于整体)或远程(具有单独的EDQS微服务) |
| queue.edqs.local.rocksdb_path | TB_EDQS_ROCKSDB_PATH | ${user.home}/.rocksdb/edqs | 在本地模式下运行时用于EDQS备份的RocksDB路径 |
| queue.edqs.partitions | TB_EDQS_PARTITIONS | 12 | EDQS主题的分区数量 |
| queue.edqs.partitioning_strategy | TB_EDQS_PARTITIONING_STRATEGY | tenant | EDQS分区策略:tenant(分区通过tenant id解析)或none(无具体策略,通过message key解析) |
| queue.edqs.events_topic | TB_EDQS_EVENTS_TOPIC | edqs.events | EDQS活动主题 |
| queue.edqs.state_topic | TB_EDQS_STATE_TOPIC | edqs.state | EDQS状态主题 |
| queue.edqs.requests_topic | TB_EDQS_REQUESTS_TOPIC | edqs.requests | EDQS请求主题 |
| queue.edqs.responses_topic | TB_EDQS_RESPONSES_TOPIC | edqs.responses | EDQS回复主题 |
| queue.edqs.poll_interval | TB_EDQS_POLL_INTERVAL_MS | 25 | EDQS主题的轮询间隔 |
| queue.edqs.max_pending_requests | TB_EDQS_MAX_PENDING_REQUESTS | 10000 | EDQS待处理请求的最大数量 |
| queue.edqs.max_request_timeout | TB_EDQS_MAX_REQUEST_TIMEOUT | 20000 | 向EDQS请求的最大超时 |
| queue.edqs.request_executor_size | TB_EDQS_REQUEST_EXECUTOR_SIZE | 50 | EDQS请求执行器的线程池大小 |
| queue.edqs.versions_cache_ttl | TB_EDQS_VERSIONS_CACHE_TTL_MINUTES | 60 | EDQS版本缓存的生存时间(分钟)。必须大于同步过程所需的时间。 |
| queue.edqs.string_compression_length_threshold | TB_EDQS_STRING_COMPRESSION_LENGTH_THRESHOLD | 512 | 长度超过此阈值的字符串将被压缩 |
| queue.edqs.stats.enabled | TB_EDQS_STATS_ENABLED | true | 启用/禁用EDQS统计 |
| queue.edqs.stats.slow_query_threshold | TB_EDQS_SLOW_QUERY_THRESHOLD_MS | 3000 | 记录慢速查询的阈值(以毫秒为单位) |
| queue.vc.topic | TB_QUEUE_VC_TOPIC | tb_version_control | 默认主题名称 |
| queue.vc.partitions | TB_QUEUE_VC_PARTITIONS | 10 | 与此队列关联的分区数。用于缩放可以并行处理的消息数量 |
| queue.vc.poll-interval | TB_QUEUE_VC_INTERVAL_MS | 25 | 如果没有新消息到达,轮询消息之间的时间间隔(以毫秒为单位) |
| queue.vc.pack-processing-timeout | TB_QUEUE_VC_PACK_PROCESSING_TIMEOUT_MS | 180000 | 重试处理包中所有失败和超时消息之前的超时 |
| queue.vc.request-timeout | TB_QUEUE_VC_REQUEST_TIMEOUT | 180000 | 向VC执行器请求的超时(请求实体版本、提交费用等) |
| queue.vc.msg-chunk-size | TB_QUEUE_VC_MSG_CHUNK_SIZE | 250000 | 单个队列消息大小限制 |
| queue.js.request_topic | REMOTE_JS_EVAL_REQUEST_TOPIC | js_eval.requests | JS Eval请求主题 |
| queue.js.response_topic_prefix | REMOTE_JS_EVAL_RESPONSE_TOPIC | js_eval.responses | JS Eval响应与节点id结合的主题前缀 |
| queue.js.max_pending_requests | REMOTE_JS_MAX_PENDING_REQUESTS | 10000 | JS Eval最大待处理请求数 |
| queue.js.max_eval_requests_timeout | REMOTE_JS_MAX_EVAL_REQUEST_TIMEOUT | 60000 | JS Eval最大请求超时 |
| queue.js.max_requests_timeout | REMOTE_JS_MAX_REQUEST_TIMEOUT | 10000 | JS最大请求超时时间 |
| queue.js.max_exec_requests_timeout | REMOTE_JS_MAX_EXEC_REQUEST_TIMEOUT | 2000 | JS执行最大请求超时 |
| queue.js.response_poll_interval | REMOTE_JS_RESPONSE_POLL_INTERVAL_MS | 25 | JS响应轮询间隔 |
| queue.rule-engine.topic | TB_QUEUE_RULE_ENGINE_TOPIC | tb_rule_engine | 已弃用。它将在最近的版本中删除 |
| queue.rule-engine.notifications_topic | TB_QUEUE_RULE_ENGINE_NOTIFICATIONS_TOPIC | tb_rule_engine.notifications | 对于需要最短延迟和处理时间的高优先级通知 |
| queue.rule-engine.poll-interval | TB_QUEUE_RULE_ENGINE_POLL_INTERVAL_MS | 25 | 规则引擎轮询消息的时间间隔(以毫秒为单位) |
| queue.rule-engine.pack-processing-timeout | TB_QUEUE_RULE_ENGINE_PACK_PROCESSING_TIMEOUT_MS | 2000 | 规则引擎处理消息包超时时间 |
| queue.rule-engine.stats.enabled | TB_QUEUE_RULE_ENGINE_STATS_ENABLED | true | 启用/禁用规则引擎的统计信息 |
| queue.rule-engine.stats.print-interval-ms | TB_QUEUE_RULE_ENGINE_STATS_PRINT_INTERVAL_MS | 60000 | 规则引擎统计打印间隔 |
| queue.rule-engine.stats.max-error-message-length | TB_QUEUE_RULE_ENGINE_MAX_ERROR_MESSAGE_LENGTH | 4096 | 统计打印错误信息的最大长度 |
| queue.rule-engine.topic-deletion-delay | TB_QUEUE_RULE_ENGINE_TOPIC_DELETION_DELAY_SEC | 15 | 队列被删除(或配置文件的隔离选项被禁用)后,规则引擎将在此期间继续读取相关主题,然后再删除实际主题 |
| queue.rule-engine.management-thread-pool-size | TB_QUEUE_RULE_ENGINE_MGMT_THREAD_POOL_SIZE | 12 | 处理分区更改、配置更新、队列删除等操作的线程池的大小 |
| queue.calculated_fields.event_topic | TB_QUEUE_CF_EVENT_TOPIC | tb_cf_event | 规则引擎中计算字段(CF)事件的主题名称 |
| queue.calculated_fields.state_topic | TB_QUEUE_CF_STATE_TOPIC | tb_cf_state | 计算字段(CF)压缩状态的主题名称 |
| queue.calculated_fields.notifications_topic | TB_QUEUE_CF_NOTIFICATIONS_TOPIC | calculated_field.notifications | 对于需要最短延迟和处理时间的高优先级通知 |
| queue.calculated_fields.poll_interval | TB_QUEUE_CF_POLL_INTERVAL_MS | 1000 | CF(规则引擎)微服务轮询消息的时间间隔(以毫秒为单位) |
| queue.calculated_fields.pack_processing_timeout | TB_QUEUE_CF_PACK_PROCESSING_TIMEOUT_MS | 60000 | CF微服务处理消息包超时 |
| queue.calculated_fields.pool_size | TB_QUEUE_CF_POOL_SIZE | 8 | 用于处理传入消息的线程池大小 |
| queue.calculated_fields.rocks_db_path | TB_QUEUE_CF_ROCKS_DB_PATH | ${user.home}/.rocksdb/edge_cf_states | RocksDB存储CF状态的路径 |
| queue.calculated_fields.init_fetch_pack_size | TB_QUEUE_CF_FETCH_PACK_SIZE | 50000 | 获取大小指定每个初始获取请求将从数据库中获取多少行 |
| queue.calculated_fields.init_tenant_fetch_pack_size | TB_QUEUE_CF_TENANT_FETCH_PACK_SIZE | 1000 | 提取大小指定每个租户提取的每个请求将从数据库中提取多少行 |
| queue.transport.notifications_topic | TB_QUEUE_TRANSPORT_NOTIFICATIONS_TOPIC | tb_transport.notifications | 对于需要最短延迟和处理时间的高优先级通知 |
| queue.transport.poll_interval | TB_QUEUE_TRANSPORT_NOTIFICATIONS_POLL_INTERVAL_MS | 25 | 轮询消息的时间间隔(以毫秒为单位) |
| queue.edge.topic | TB_QUEUE_EDGE_TOPIC | tb_edge | 用于通知边缘服务有关实体更新、分配等的主题名称。 |
| queue.edge.notifications_topic | TB_QUEUE_EDGE_NOTIFICATIONS_TOPIC | tb_edge.notifications | 需要最短延迟和处理时间的高优先级边缘通知(rpc、生命周期、队列中的新消息)的主题前缀。每个tb-core都有自己的主题:PREFIX.SERVICE_ID |
| queue.edge.event_notifications_topic | TB_QUEUE_EDGE_EVENT_NOTIFICATIONS_TOPIC | tb_edge_event.notifications | 要推送到特定边缘的下行链路的主题前缀。每个Edge都有自己独立的主题:PREFIX.TENANT_ID.EDGE_ID |
| queue.edge.partitions | TB_QUEUE_EDGE_PARTITIONS | 10 | Edge服务使用的分区数量 |
| queue.edge.poll-interval | TB_QUEUE_EDGE_POLL_INTERVAL_MS | 25 | 与边缘服务相关的主题的轮询间隔 |
| queue.edge.pack-processing-timeout | TB_QUEUE_EDGE_PACK_PROCESSING_TIMEOUT_MS | 10000 | Edge服务处理消息包的超时 |
| queue.edge.pack-processing-retries | TB_QUEUE_EDGE_MESSAGE_PROCESSING_RETRIES | 3 | 边缘服务重试处理失败消息包 |
| queue.edge.consumer-per-partition | TB_QUEUE_EDGE_CONSUMER_PER_PARTITION | false | 为边缘队列启用/禁用每个分区的单独使用者 |
| queue.edge.stats.enabled | TB_QUEUE_EDGE_STATS_ENABLED | true | 启用/禁用边缘服务的统计信息 |
| queue.edge.stats.print-interval-ms | TB_QUEUE_EDGE_STATS_PRINT_INTERVAL_MS | 60000 | Edge服务统计打印间隔 |
| queue.cloud-event.topic | TB_QUEUE_CLOUD_EVENT_TOPIC | tb_cloud_event | Kafka、RabbitMQ等的默认主题名称。 |
| queue.cloud-event.poll-interval | TB_QUEUE_CLOUD_EVENT_POLL_INTERVAL_MS | 25 | 与Cloud Event服务相关的主题的轮询间隔 |
| queue.cloud-event-ts.topic | TB_QUEUE_CLOUD_EVENT_TS_TOPIC | tb_cloud_event_ts | Kafka、RabbitMQ等的默认主题名称。 |
| queue.cloud-event-ts.poll-interval | TB_QUEUE_CLOUD_EVENT_TS_POLL_INTERVAL_MS | 25 | 与Cloud Event服务相关的主题的轮询间隔 |
| queue.tasks.poll_interval | TB_QUEUE_TASKS_POLL_INTERVAL_MS | 500 | 任务主题的轮询间隔(以毫秒为单位) |
| queue.tasks.partitions | TB_QUEUE_TASKS_PARTITIONS | 12 | 任务队列的分区计数 |
| queue.tasks.partitions_per_type | TB_QUEUE_TASKS_PARTITIONS_PER_TYPE | 每种类型的任务队列的自定义分区计数。格式:'TYPE1:24;TYPE2:36',例如'CF_REPROCESSING:24;TENANT_EXPORT:6' | |
| queue.tasks.partitioning_strategy | TB_QUEUE_TASKS_PARTITIONING_STRATEGY | tenant | 任务分区策略:“租户”或“实体”。默认情况下,使用“租户” - 特定租户的任务在同一分区中处理。在单租户环境中,使用“实体”策略在多个分区之间分配任务。 |
| queue.tasks.stats.topic | TB_QUEUE_TASKS_STATS_TOPIC | jobs.stats | 任务统计主题的名称 |
| queue.tasks.stats.poll_interval | TB_QUEUE_TASKS_STATS_POLL_INTERVAL_MS | 500 | 任务统计主题的轮询间隔(以毫秒为单位) |
| queue.tasks.stats.processing_interval | TB_QUEUE_TASKS_STATS_PROCESSING_INTERVAL_MS | 1000 | 处理作业统计信息的时间间隔(以毫秒为单位) |
事件配置参数
| 参数 | 环境变量 | 默认值 | 说明 |
| event.debug.max-symbols | TB_MAX_DEBUG_EVENT_SYMBOLS | 4096 | 每个调试事件的最大符号数。如果需要,事件内容将被截断 |
通用服务参数
| 参数 | 环境变量 | 默认值 | 说明 |
| service.type | TB_SERVICE_TYPE | monolith | monolith、tb-core或tb-rule-engine |
| service.id | TB_SERVICE_ID | 该服务的唯一ID(如果为空则自动生成) | |
| service.rule_engine.assigned_tenant_profiles | TB_RULE_ENGINE_ASSIGNED_TENANT_PROFILES | 分配给此规则引擎的租户配置ID的逗号分隔列表。该规则引擎将仅对具有这些配置文件的租户负责(如果配置文件中启用了“隔离”选项)。 | |
| service.rule_engine.pubsub.executor_thread_pool_size | TB_RULE_ENGINE_PUBSUB_EXECUTOR_THREAD_POOL_SIZE | 0 | pubsub规则节点执行器提供程序的线程池大小。如果未设置 - 将使用默认的pubsub执行程序提供程序值(5 * 可用处理器的数量) |
指标参数
| 参数 | 环境变量 | 默认值 | 说明 |
| metrics.enabled | METRICS_ENABLED | false | 启用/禁用执行器指标 |
| metrics.timer.percentiles | METRICS_TIMER_PERCENTILES | 0.5 | 计时器指标的执行器返回的指标百分位数。双精度值列表(除以,)。 |
| metrics.system_info.persist_frequency | METRICS_SYSTEM_INFO_PERSIST_FREQUENCY_SECONDS | 60 | 以秒为单位保留系统信息(CPU、内存使用情况等)的频率 |
| metrics.system_info.ttl | METRICS_SYSTEM_INFO_TTL_DAYS | 7 | 系统信息时间序列的TTL(以天为单位) |
版本控制参数
| 参数 | 环境变量 | 默认值 | 说明 |
| vc.thread_pool_size | TB_VC_POOL_SIZE | 6 | 用于处理导出任务的池大小 |
| vc.git.io_pool_size | TB_VC_GIT_POOL_SIZE | 3 | 用于处理git IO操作的池大小 |
| vc.git.repositories-folder | TB_VC_GIT_REPOSITORIES_FOLDER | ${java.io.tmpdir}/repositories | 默认存储库路径 |
通知系统参数
| 参数 | 环境变量 | 默认值 | 说明 |
| notification_system.thread_pool_size | TB_NOTIFICATION_SYSTEM_THREAD_POOL_SIZE | 10 | 指定通知系统处理通知规则和通知发送的线程池大小。推荐值 <= 10 |
| notification_system.rules.deduplication_durations | TB_NOTIFICATION_RULES_DEDUPLICATION_DURATIONS | NEW_PLATFORM_VERSION:0;RATE_LIMITS:14400000; | 触发器类型的以分号分隔的去重持续时间(以毫秒为单位)。格式:'NotificationRuleTriggerType1:123;NotificationRuleTriggerType2:456' |
通用管理参数
| 参数 | 环境变量 | 默认值 | 说明 |
| management.endpoints.web.exposure.include | '${METRICS_ENDPOINTS_EXPOSE:info}' | 公开指标端点(使用值“prometheus”来启用Prometheus指标)。 | |
| management.health.elasticsearch.enabled | "false" | 启用org.springframework.boot.actuate.elasticsearch.ElasticsearchRestClientHealthIndicator.doHealthCheck |
ThingsBoard移动应用设置
| 参数 | 环境变量 | 默认值 | 说明 |
| mobileApp.domain | TB_MOBILE_APP_DOMAIN | demo.thingsboard.io | Thingsboard Live移动应用程序的服务器域名 |
| mobileApp.googlePlayLink | TB_MOBILE_APP_GOOGLE_PLAY_LINK | https://play.google.com/store/apps/details?id=org.thingsboard.demo.app | Thingsboard Live移动应用程序的Google Play商店链接 |
| mobileApp.appStoreLink | TB_MOBILE_APP_APP_STORE_LINK | https://apps.apple.com/us/app/thingsboard-live/id1594355695 | Thingsboard Live移动应用程序的App Store链接 |
| mqtt.client.retransmission.max_attempts | TB_MQTT_CLIENT_RETRANSMISSION_MAX_ATTEMPTS | 3 | 允许的最大重传尝试次数。超过此值后重传将停止,待处理消息将被丢弃 |
| mqtt.client.retransmission.initial_delay_millis | TB_MQTT_CLIENT_RETRANSMISSION_INITIAL_DELAY_MILLIS | 5000 | 第一次重传尝试之前的基本延迟(以毫秒为单位),从发送消息的那一刻开始测量。随后的延迟是使用指数退避计算的。该基本延迟也用作应用抖动的参考值。 |
| mqtt.client.retransmission.jitter_factor | TB_MQTT_CLIENT_RETRANSMISSION_JITTER_FACTOR | 0.15 | 应用于计算的重传延迟的抖动因子。实际延迟在通过将基本延迟乘以 (1 - jitter_factor) 和 (1 + jitter_factor) 之间的因子定义的范围内随机化。 For example, a jitter_factor of 0.15 means the actual delay may vary by up to ±15% of the base delay. |