java高并发,大数据,传感器数据采集,实时显示,历史数据查询

weixin_38067950 2019-07-31 04:20:41
 开发四年只会写业务代码,分布式高并发都不会还做程序员?->>>    项目的大概需求是: 有2000个传感器,传感器50毫秒推送一次数据,PC端要实现这些传感数据的采集,将数据存到数据库用于历史查询;web实时数据显示要求通过选择设备显示对应的实时数据。现在遇到了点问题希望大家帮忙解答下。

我想到的两种方法实现,不知道哪种方法更好:

      方法1:将数据采集和显示做成一个服务程序,将netty框架和springMVC框架整合,每一个传感器对应netty中的一个实例, 怎样将前端选择的设备和对应的实例关联起来,进行实时数据显示;

      方法2:  分为两个程序做,数据采集服务程序和web显示服务程序,问题是数据采集服务程序实时采集的数据要怎样传给web显示服务程序,才能做到实时性高呢;
...全文
641 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38110193 2019-07-31
  • 打赏
  • 举报
回复
建议做成两个服务,因设备之间无需数据交互,仅设备与服务器之间的数据交互,可以考虑使用netty + zookeeper做socket集群;也可以用http集群作为数据采集服务,不过http请求50ms的间隔哪怕在keep-alive的情况下,其压力也会比用netty的集群更大。以上所说的集群多用于更多设备的情况,就你目前2000个设备且无复杂业务逻辑的情况下,单机netty和http(开启nio模式下和keep-alive)也是可以胜任的。 50ms,2000或者以上的设备采集数据,一般关系型数据库难易胜任这样庞大的数据存储,建议结合ES搜索相关的大数据方案,web显示方面,一个http请求web服务器,服务器将ES搜索结果返回给前端展示(ES搜索结果翻页显示),前端也可定时获得ES搜索翻页结果显示为动态波浪效果。 至于“ 前端选择的设备和对应的实例关联起来 ”,应该每个设备都具有唯一标识码,发送采集数据到服务器时应该带上这个唯一标识码,netty实例的channel也应该与此唯一标识码有映射关系。前端显示数据选择哪个设备就是选择对应的唯一标识码进行数据查询。
weixin_38087180 2019-07-31
  • 打赏
  • 举报
回复
信息实时上来推到kafaka上,然后程序批量往数据库里插入。

433

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧