Flume框架关于 Channel 遇到峰值的处理方式是怎样的?

Flume框架关于 Channel 遇到峰值的处理方式是怎样的?

问题描述:

我的理解是 Source 是一个单独的线程,不断的往 Channel 中丢 Event,

Sink 也是一个单独的线程,不断的从 Channel 中拿出 Event,

Channel 作为 Agent 的缓冲区是有一定的容量的,


假如 Sink 端遇到特殊情况阻塞了,这个时候如果 Source 一直丢 Event 过来,那 Channel 中已经满了,这种情况下 Source 会怎么处理?或者说 Agent 会怎么处理?


麻烦老师解答 ~

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
徐老师 2022-02-27 16:49:45

channel是有大小的,可以限制里面的数据条数,如果超过阈值source就写不进去了。
Channel可以选择文件存储,这样就可以把阈值设置大一些,不依赖于内存了

  • 提问者 ischand #1

    超过阈值source就写不进去了,那此时source是一直等待呢,还是抛异常呢?

    2022-02-27 16:57:07
  • 按我的理解是在写入channel之前会判断是否可以写入,无法写入就等待,我们在用的时候没有遇到过这种报错。具体这块逻辑还没有看他的源码
    2022-02-27 17:00:53
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师