如何兼顾性能+实时性处理缓冲数据?
原文中文,约5300字,阅读约需13分钟。发表于: 。我们经常会遇到这样的数据处理应用场景:我们利用一个组件实时收集外部交付给它的数据,并由它转发给一个外部处理程序进行处理。考虑到性能,它会将数据存储在本地缓冲区,等累积到指定的数量后打包发送;考虑到实时性,数据不能在缓冲区存太长的时间,必须设置一个延时时间,一旦超过这个时间,缓冲的数据必须立即发出去。看似简单的需求,如果需要综合考虑性能、线程安全、内存分配,要实现起来还真有点麻烦。这个问题有不同的解...
该文章介绍了一个数据处理应用场景的解决方案,使用Batcher<T>类型来接收、缓冲、打包和处理数据,通过设置阈值和延时时间来控制数据的处理时机。同时,还介绍了Batch<T>类型作为最终发送的批量数据的表示,以及Container类型作为存放数据的容器。最后,介绍了Batcher<T>类型的定义和使用方法。