随着公司业务发展,各条业务线对数据收集的实时性要求日益增加,为解决该问题,通常有两种数据收集的解决方案。
1、基于日志级别的实时数据收集,使用RabbitMQ(消息队列)、Flume(日志收集)、Elasticsearch + Kibana(数据索引+数据展示)和HDFS(云存储)的实时存储与可视化解决方案;
2、基于业务数据,尤其是爬虫数据的收集和处理,采用Thrift RPC (远程过程调用协议)+Kafka(分布式发布订阅消息系统)和 Spark Streaming(实时数据处理)的实时计算解决方案。
方案一
实时数据存储与可视化解决方案,MQ是消费-生产者模型的一个典型的代表,一端往消息队列中不断写入消息,而另一端则可以读取或者订阅队列中的消息。RabbitMQ支持消息的持久化,保证消息顺序、保证数据不丢失,同时支持多个队列,满足多业务线需求。业务团队在代码架构中将业务日志或服务器日志以Json格式推送到RabbitMQ集群,数据收集团队通过Flume读取RabbitMQ的消息,并将消息转发给Elasticsearch集群与Hadoop集群,在Elasticsearch中,通过对每条消息建立索引,通过倒排索引的技术,能够支持快速查询每条消息,满足技术人员对于日志的分析,同时可以通过Kibana工具对索引数据进行可视化分析。于此同时,同样的数据将持久化保存在HDFS文件系统中进行备份,保证数据不丢失。该方案解决了泰然城的业务线以及门道的日志收集需求,同时提供一部分能力用于大屏数据实时展示。该方案能够提供秒级数据可视化展示,极大的解决了业务中遇到的对于日志分析的需求。具体的架构如图1所示:
日志实时入库情况如图2所示,满足实时查询需求。
方案二
实时数据计算解决方案。针对爬虫团队的网络授权数据抓取,我们提供了自主开发的一套基于RPC的远程过程调用接口,通过向开发团队提供开发工具包,对方在实时抓取数据后只需调用一个接口,该方案首先将数据保存在临时文件中,然后通过扫描临时文件,将增量数据通过RCP客户端发送到远程RPC服务端,我方在接收到数据后,将数据转发到实时消息队列Kafka中,所有消息都将通过Kafka进行保存,最后启动相对应的Spark Streaming对每条数据进行实时处理、分析,并提供相关反馈。方案二架构如图3所示:
以上就是鲸数小宝跟大家分享的关于实时数据收集解决方案的知识,希望对大家有所帮助哦!!
关于:中科研拓
深圳市中科研拓科技有限公司专注提供软件外包、app开发、智能硬件开发、O2O电商平台、手机应用程序、大数据系统、物联网项目等开发外包服务,通过IT技术实现创造客户和社会的价值,成为优秀的软件公司,通过客户需求导向、开放式创新、卓越运营管理等战略的实施,全面打造公司的核心竞争力。很好软件外包公司、软件开发公司,联系电话400-0316-532,邮箱sales@zhongkerd.com,网址www.zhongkerd.com