实时大数据处理框架Storm---推送系统
1.背景最近在接触实时大数据框架Storm,要求延时在秒级,需求包括用户转账实时APP和短信通知,新股破板通知等;数据规模在每天百万级,高峰期每秒1000。2.架构设计2.1 分块该系统主要包括三部分:数据采集模块,数据加工模块,数据推送模块。数据采集模块通过接收对应Topic的Kafka消息来实现,需要根据数据量设置分区个数,数据保留周期,数据发送准确级别(不重发,漏发);
1.背景
最近在接触实时大数据框架Storm,要求延时在秒级,需求包括用户转账实时APP和短信通知,新股破板通知等;数据规模在每天百万级,高峰期每秒1000。
2.架构设计
2.1 分块
该系统主要包括三部分:数据采集模块,数据加工模块,数据推送模块。
数据采集模块通过接收对应Topic的Kafka消息来实现,需要根据数据量设置分区个数,数据保留周期,数据发送准确级别(不重发,漏发);
数据加工模块通过Storm处理,从Redis获取一些常用信息,比如客户信息,股票信息,持仓信息等,加工成流水数据,将流水数据发到Kafka;
数据推送模块包括推送系统接收Kafka消息,并调用APP渠道或短信渠道接口进行数据推送。
3.问题
a.数据源延迟问题
数据高峰时期,由于数据源一般来自数据库bin-log日志,读取线程数与读取速度等因素都可能导致数据源延迟。
b.topic分区个数问题
分区个数决定了同一组消费者的最大个数。
c.Storm并发度设置
Spout并发度,bolt并发度
d.推送系统消费者个数设置
Kafka消费者线程数,注意多渠道划分导致总线程数远远超过生产机器的CPU总核数,可能出现部分线程阻塞情况。
e.渠道发送接口调用
http接口orRPC接口,同步或异步调用,批量发送大小设置
4.瓶颈
实时消息推送出现较长时间延迟时,说明系统出现瓶颈,此时应该查看生产系统各部分的吞吐情况,包括数据源延迟,Kafka消费能力,Storm处理能力,推送系统能力等
更多推荐
所有评论(0)