关于以支持水平扩展的方式分解由kubernetes托管的作业和服务组成的物联网应用程序的建议

关于以支持水平扩展的方式分解由kubernetes托管的作业和服务组成的物联网应用程序的建议,kubernetes,architecture,iot,horizontal-scaling,kubernetes-jobs,Kubernetes,Architecture,Iot,Horizontal Scaling,Kubernetes Jobs,我有一个物联网应用程序,其架构如下:- 有些工厂有自己的设备 现在,整个管道部署在kubernetes,由以下装置组成:- 每x秒唤醒一次的作业,从所有工厂读取数据,将数据推送到mqtt代理 MQTT代理 从所有工厂接收数据并将其推送到timeseries数据库的订户服务 作业以5分钟、15分钟、1小时、4小时、1天的间隔运行,并对所有项目的数据执行下采样,并将其推送到单独的下采样表 每天运行的作业检查数据中是否存在漏洞/缺口,如果可能,尝试将其填满 现在,这种方法对少数工厂适用,但当工厂数量增

我有一个物联网应用程序,其架构如下:-

有些工厂有自己的设备

现在,整个管道部署在kubernetes,由以下装置组成:-

  • 每x秒唤醒一次的作业,从所有工厂读取数据,将数据推送到mqtt代理
  • MQTT代理
  • 从所有工厂接收数据并将其推送到timeseries数据库的订户服务
  • 作业以5分钟、15分钟、1小时、4小时、1天的间隔运行,并对所有项目的数据执行下采样,并将其推送到单独的下采样表
  • 每天运行的作业检查数据中是否存在漏洞/缺口,如果可能,尝试将其填满
  • 现在,这种方法对少数工厂适用,但当工厂数量增加时,使用单个服务/作业执行数据检索、推送和下采样变得困难,因为它会占用太多内存,并在多个位置阻塞。作为一个临时修复,垂直扩展在一定程度上解决了这个问题,但在这种情况下,我需要将所有的pod放在一台机器中,我正在垂直扩展,垂直扩展多个节点是非常昂贵的。 因此,我计划以一种可以横向扩展的方式对系统进行分解,并寻求实现这一目标的可能方法的建议