Skip to content

web集群架构 ​

1. web集群架构 ​

图-1-架构整体图

Web集群架构整体图

图-2-架构详细图

Web集群架构详细图

1. 客户端层

  • 用户终端:浏览器、移动App、第三方系统通过HTTP/HTTPS协议接入。

2. 负载均衡层

  • Nginx集群:
    • 反向代理和负载均衡后端服务。
    • 支持SSL终止和静态资源缓存。
    • 横向扩展确保高可用性。

3. 应用服务层

  • Spring Boot服务集群:
    • 提供RESTful API接口,处理业务逻辑。
    • 横向部署多实例,通过Nginx实现负载均衡。

4. 消息队列层

  • Kafka集群:
    • 分区策略:每个Topic划分为多个分区(如Partition 1、Partition 2),通过分区实现消费者负载均衡。
    • 消费设备数据:从Fmq集群(MQTT/TCP/UDP服务集群)接收设备上报的数据。
    • 生产者:设备网关服务将数据写入Kafka。
    • 消费者:Spring Boot服务消费Kafka数据,处理设备指令、告警等。

5. 数据处理层

  • 规则引擎:
    • LiteFlow:负责场景联动规则执行(如设备联动、告警触发)。
    • Ignite:存储和管理LiteFlow的规则配置,支持动态更新。
  • 分布式任务调度:
    • Quartz集群:部署Modbus轮询任务,通过数据库锁实现集群模式的任务协调。

6. 缓存与元数据层

  • 分布式缓存:
    • Ignite集群:缓存设备元数据(如设备ID、状态、配置),支持分布式查询。
    • 与Spring Boot集成,提供低延迟的元数据访问。
  • Redis主从架构:(待实现....)
    • 主节点:处理写操作(如会话状态、实时计数器)。
    • 从节点:处理读操作,通过哨兵(Sentinel)实现自动故障切换。

7. 数据存储层

  • 关系型数据库:
    • MySQL主从架构:(待实现....)
      • 主库:处理事务性写入(如用户数据、设备配置)。
      • 从库:处理查询请求,通过Binlog同步数据。
  • 时序数据库:
    • TDengine主从架构:
      • 主节点:存储设备采集的历史数据(如温度、湿度)。
      • 从节点:提供高性能时序数据查询,支持降采样和聚合。

8. 设备接入层

  • 协议网关:
    • 支持MQTT/TCP/UDP协议,对接物理设备。
    • 将设备数据转发至Kafka集群。

架构图关键设计 ​

  1. 高可用性:
    • 所有关键组件(Nginx、Kafka、MySQL、Redis等)均采用主从或集群部署。
  2. 数据流向:
    • 设备数据 → MQTT/TCP/UDP网关 → Kafka → Spring Boot服务 → TDengine/MySQL。
    • 规则引擎和任务调度服务通过Ignite实现状态共享。
  3. 性能优化:
    • Ignite缓存设备元数据,降低MySQL查询压力。
    • TDengine针对时序数据优化存储和查询效率。
  4. 扩展性:
    • 通过Kafka分区和Nginx负载均衡实现水平扩展。

蜂信物联 | fastbee.cn