目前计划搭建一个能处理6000+TPS的数据采集和分析系统,平均秒入库数据量大概3000条据(单条数据4k),数据保留一周,主要业务是入库和集可数据报表查询,请问大牛我应该怎么搭建此业务系统。
1、需要采用什么技术、数据库、中间件。
2、保证业务可用,造价成本要求合理的情况下,需要什么物理资源、什么配置服务器,数量几台?
一般来说TPS能上1000+的,就应经算是中大型系统了。非一线互联网公司的业务系统平均一天的TPS能维持在100左右,就说明这家公司的业务开展得很不错了。单条数据4K?是系统运行日志信息吗?个人妄自猜测应该是类似舆情分析所需要的文本信息吧。
一个是目前比较传统的,成功案例也比较多的 Python 爬虫+Flume+Kafka+Storm+HDFS方案,个人感觉这个方案应该适用你的需求。单条4K的数据如果采用某款支持事务操作的关系型数据库(例如MySQL),显然不现实。主要原因是重做日志(redo log)太大。
如果是舆情分析文本数据,通过strom完成初筛的数据可以直接放HDFS,这个I/O吨吞吐量绝对符合你的要求。而且可以为下一步数据分析做好数据准备。如果你非要选择一款数据库,那么可以选择HBase、Cassandra等,但是建议4K的数据进行拆分和关联后存入。
这个方案还有一个有点,就是各种资料Google和百度都很好查询,基本上需要踩的坑都可以找到现成的方案。本人专题文章中,也有对Flume有详细的介绍。
另外一个方案是ELK(ElasticSearch, Logstash, Kibana)
这套方案也是目前非常流行的数据采集、分析方案。这两套方案都应该符合你的业务要求,而且安装和运维工作上各有优劣。而且对于搜索引擎来说,建立文本内容的分词点刚好是它的强项。如果你的业务重点是数据分析/报表的实时性,那么可以考虑本方案。