海量设备消息高性能处理实践
业务介绍
涂鸦智能是一家全球化IoT开发平台服务商,赋能全球超过58.2万家制造业、零售商、运营商、地产社区、养老、酒店租住、工农业等生态客户。Tuya IoT PaaS平台具有以下特点:
- 平均响应时间为10毫秒。
- 设备请求处理次数(高峰)达到150万/秒。
- 兼容全球主流云厂商。
- 提供标准化设备接入、设备管理、场景自动化能力。
- 支持多租户模式。
- 全球统一多云部署架构,包括6大数据中心,服务全球200多个国家用户。
架构升级演进历程
- 设备消息处理链路:自研MQTT Broker,基于Erlang开发,单集群并发连接数可达1亿,支持软实时、热更新。优化基于ARM架构,成本效益显著,单机连接数性能提升200%,成本降低80%,性价比提升2.5倍以上。
- 设备影子:通常为K-V结构存储,写多读少,读实时性要求高。选择TiKV作为存储引擎,并进行核心改造,如均匀分布数据节点、扩展客户端实现优先策略、采用Protobuf替换Fastjson序列化。
- 设备消息精准投递:提供通用事件过滤、加工、分发能力,支持通过控制台或API注册订阅规则,满足复杂过滤需求。借助布隆过滤器实现高效的规则匹配,平均命中耗时小于1毫秒。
- 异常设备上报:通过时间窗口限流策略过滤重复消息,减少云端资源浪费。设备精准限流基于时间窗口策略,减少人工干预,提高正常设备误杀率。
技术挑战
- 设备消息处理:面对海量设备和消息,需要精准投递,减少不必要的机器成本和负载压力。
- 设备影子存储:读取实时性要求高,需要优化存储和访问策略。
- 异常设备上报:短时间内大量重复值上报,需通过时间窗口限流和设备精准限流策略来解决。
- 大规模设备重连:应对运营商网络故障和云服务商故障,采取优化断线重连机制和自动扩容策略。
总结与未来展望
- 总结:技术需结合业务场景,注重降本增效和细节优化。
- 未来展望:面对设备数量增长,需探索私有云、混合云的研发效率,进一步优化架构。