请推荐最接近成品的实时数据可视化服务端(Plotly + websocket)方案?

142 天前
 faywong8888

辛苦各位技术大拿推荐下,以上只是我有限的调研和选型。如果有其他更好的,也欢迎抛出来。要求是开发工作量尽量小,能直接拿过来用最好。

1247 次点击
所在节点    程序员
7 条回复
xueling
142 天前
看你侧重什么了,如果你侧重前端的交互形式,丰富、炫酷的可视化展示功能,那请忽略。但如果你侧重统计计算方面功能的完善度、性能和稳定性、支撑的数据量级,那你考虑一下我的开源项目: https://github.com/xl-xueling/xl-lighthouse 。优势很多,拿来即用,几乎没任何开发量,将数据指标的原始数据上报上来就 OK 了,既有集群版本也有单机版本,有完善的数据指标管理和权限审批机制,统计项直接在页面配置就可以了。可以考虑一下,有任何问题,我会第一时间帮你解决。
faywong8888
141 天前
@xueling 看到你的热心回复,态度让人感动。我主要用于做 IoT 监控大盘用。主要是实时数据的可视化和历史数据的查询,附带有账户和权限控制。


## 现状

过去我其实用 ThingsBoard 搭建了一个版本,自己额外开发了社区版里缺少的一些特性,现在线上正常使用中。
但是一个人开发维护部署 Thingsboard 架构过于庞大。所以萌生了简化架构的想法。我现在用 c++ epoll 实现了设备接入网关和告警等等,有极小的内存占用,然后把时许数据存入数据库。现在打算来做 IoT 监控大盘。调研下来,前端 echarts 、Plotly 好像生态比较大。后端我比较熟悉 Clojure ,正评估一人框架 [biff]( https://github.com/jacobobryant/biff) 中。

## xl-lighthouse
我大致看了下 https://dtstep.com/zh/helloworld/02.html 里边的介绍,我定义下数据模型和统计项,通过 sdk 上报数据即可,也支持 IoT 设备上的时序数据(几点几分-> 温度/流量),趋势图/实时图。
看起来不错,我打算周末来部署一个试试。

中国程序员的项目,必须优先支持和反馈完善。接地气、不吹牛逼、谦逊的态度难能可贵。
faywong8888
141 天前
@xueling

有几个问题:

1. 上报数据的 sdk 现在是有 java 版本吗?是否开放协议细节,开放的地话,我后边开发一个 c++ 版本。

2. 个人家庭 IoT 使用,是否涉及到软件授权费?如果几台设备的可视化有费用,我就不考虑了。

3. 有适合单机部署的 docker compose 吗?
faywong8888
141 天前
@xueling 还有一个问题:

后台数据发生增加/删除/更新,统计/监控前台界面是否自动刷新?
xueling
141 天前
@faywong8888 1 、目前只有 java 版本的 sdk ,还有个临时的 http 接口,如果不是 java 技术栈,数据量不大的话可以使用 http 接口上报,这样接入成本更低一点。现在 http 接口是一个单独的工程,后续我会把 http 接口和 rpc 服务融合在一起。如果数据量大的话就要考虑用 java sdk 来上报。我还没有试过在 c++中直接调用 java 版的 sdk 是否会存在太大的性能损耗,但我感觉应该没有较大问题,可以试一下。数据量大的话还有一种方案就是中间加一层类似 kafka 的消息组件,先将数据写入消息组件,然后再通过 java 消费的方式。上报方案完全取决于你的数据量。至于开放协议,暂时还没有,因为 sdk 中除了基本的上报逻辑,还涉及一些消息数据的聚合、秘钥验证等逻辑,实现起来其实有点麻烦,至于将上报协议公开,我还要再好好考虑一下看看有没有这种必要。

2 、是否涉及软件授权费用? 企业内部或个人使用都是不收取任何费用的,而且没有任何数据量和数据指标数量的限制。但如果涉及到对外销售相关服务(比如给第三方提供可视化大屏服务并获取收益),就需要收取一定比例的授权费用。

3 、没有单机部署的 docker compose 。不过项目本身就是一键部署,操作很简单。

4 、后台数据发生增加/删除/更新,统计/监控前台界面是否自动刷新?
首先,你说的后台数据是不是指上报的原始消息数据,大部分流式统计场景是不需要删除和更新操作的,只有新增。这与 OLAP,OLTP 类的技术方案不同,XL-LightHouse 本身并不维护原始消息数据,只维护统计结果状态值,所以是不支持删除和更新的,不过项目支持负值运算。
其次,目前前端交互方面支持的功能,如果统计结果发生变化,前端图表不会自动刷新,看下面的图片,需要点击一下统计项标题旁边的刷新按钮,图表才会刷新。后续会提供数据大屏功能,可以免登录、自定义视图、图表自动刷新等功能。

https://camo.githubusercontent.com/cf74e768875fff5628f4f5aec59a106fcffe9fac13d55624dc76771381765785/68747470733a2f2f6c69676874686f75736564702d313330303534323234392e636f732e61702d6e616e6a696e672e6d7971636c6f75642e636f6d2f73637265656e73686f745f76322f32332e6a7067

如有问题,可以加我微信,随时联系我~
faywong8888
141 天前
@xueling 解释得很清楚。

>> 临时的 http 接口
有文档吗?我用 c++ 来尝试上报试试看。
我的数据量很小,就家里几个 IoT 表,撑死 40 个数值。
xueling
141 天前
http 接口,现在不在项目里面,需要单独部署一下。工程地址: https://github.com/xl-xueling/lighthouse-interface ,doc 目录下有说明文档,如有问题随时反馈~

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1053387

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX