大数据量传递PIPELINE设计

本文探讨了多对多数据处理场景中的管道设计,介绍了FIFO在大数据处理中的缓冲作用及其极限挑战。遇到处理速度瓶颈时,如何权衡数据保存与丢弃策略,并讨论了网络震荡简化客户端的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

多路处理程序中,数据处理需要分到不同的任务中进行,有四种模式,一对一的情况,一对多的情况,多对多的情况,多对一的情况。比如网络通讯模块设计有多个任务,业务模块也设计多个任务,从网络过来的数据从任何SOCKET都可以进入的不同的SOCKET TASK中,数据要发给不同的业务模块,一个SOCKET的数据要发给不同的业务模块,一个SOCKET TASK有多个SOCKET处理,这就是典型的多对多的情况。

大数据处理的过程中,这是常有的使用场景。通过设计PIPELINE,将数据的对应关系单独处理。可以进行分解和合并。通过PIPELINE的FIFO设计,可以对数据有一定的缓冲作用,部分消减不同数据流量的输入和输出处理能力的不匹配。

其中有个极端的场景,FIFO的缓冲能力也不行的情况,如数据进行分解,分解的数据由于后级处理慢,进入不到FIFO中,这时其他的数据要进行处理,当前数据是否需要保存,还是进行丢弃,方便其他数据进行处理。不处理会造成数据丢失,或者是任务被阻塞。简单的做法就是丢弃,返回此数据处理慢的消息给发送端,由发送端进行重发。需要CLIENT的相应处理,可采用网络震荡的方式简化CLIENT的设计,就是回发再回发。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值