关于实时架构的一点想法
近来做了一个大屏的大项目(效果类似于下图的那种),说是要做到数据实时,甚至把物联网的那一套东西都接进来实时监控!!!
(大屏指挥中心效果图,来自dreamstime.com)
最后在征求多方专家的建议,综合评估各大方面的情况后后得出一方案是:
其实,这样从数据产生,直到前端显示,差了好几分钟。
本着我是做技术的,整理了一下自己的想法,认为整体数据流程是这样的:
- 数据来源。数据来源可以很多,可以来自kafka、DB、日志文件等。
- 通过spark streaming或storm等实现比较实时流获取分析数据。非实时要求的数据,可以由ETL工具处理落地。
- 对要求实时更新显示的数据,spark每处理处理完一批以后,使用MQ+websocket通知到前端进行更新。
- 前端因为不是面向社会大众,所以可以指定使用支持websocket的浏览器。通过websocket与服务器通信,能够及时得知数据动态。而刷新数据,仍然使用rest的方式,H5页面只关心和处理自己关注的事件,并进行刷新就可。同时,通过定时刷新功能,也可以支持非websocket的浏览器正常的使用。
有时间上代码。。。
当然,并不是所有的最新最好的技术就是最好的解决方案。还要综合人力物力需求等各方面的情况,评估出最合适的方案
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
ELK+logback+kafka+nginx 搭建分布式日志分析平台
ELK+logback+kafka+nginx 搭建分布式日志分析平台 ELK(Elasticsearch , Logstash, Kibana)是一套开源的日志收集、存储和分析软件组合。而且不只是java能用,其他的开发语言也可以使用,今天给大家带来的是elk+logback+kafka搭建分布式日志分析平台。本文主要讲解一下两种流程,全程linux环境(模拟现实环境,可用内存一定要大于2G,当然也可以使用windows),至于elk这些组件的原理,百度太多了,我就不重复了,重在整合。 1.我们是通过logback打印日志,然后将日志通过kafka消息队列发送到Logstash,经过处理以后存储到Elasticsearch中,然后通过Kibana图形化界面进行分析和处理。 2.我们使用Logstash读取日志文件,经过处理以后存储到Elasticsearch中,然后通过Kibana图形化界面进行分析和处理。例如我们读取nginx的日志文件,可以统计访问用户的ip地域,请求地址等等。 一、文章案例环境 1.centos 7.2(linux) 2.elasticsearch / logs...
- 下一篇
Spark 创建RDD、DataFrame各种情况的默认分区数
版权声明:本文由董可伦首发于https://dongkelun.com,非商业转载请注明作者及原创出处。商业转载请联系作者本人。 https://blog.csdn.net/dkl12/article/details/81663018 我的原创地址:https://dongkelun.com/2018/08/13/sparkDefaultPartitionNums/ 前言 熟悉Spark的分区对于Spark性能调优很重要,本文总结Spark通过各种函数创建RDD、DataFrame时默认的分区数,其中主要和sc.defaultParallelism、sc.defaultMinPartitions以及HDFS文件的Block数量有关,还有很坑的某些情况的默认分区数为1。 如果分区数少,那么并行执行的task就少,特别情况下,分区数为1,即使你分配的Executor很多,而实际执行的Executor只有1个,如果数据很大的话,那么任务执行的就很慢,好像是卡死了~,所以熟悉各种情况下默认的分区数对于Spark调优就很有必要了,特别是执行完算子返回的结果分区数为1的情况,更需要特别注意。(我就...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS8编译安装MySQL8.0.19
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS关闭SELinux安全模块
- 设置Eclipse缩进为4个空格,增强代码规范
- SpringBoot2整合Redis,开启缓存,提高访问速度