Flume 的可靠性级别有哪些?
前言本文隶属于专栏《1000个问题搞定大数据技术体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!本专栏目录结构和参考文献请见1000个问题搞定大数据技术体系正文在设计 Flume 架构时,可靠性是需要遵循的核心原则之一。为了实现这种可靠性, Flume 允许用户配置可靠性级别。具体的级别如下:End-to-end当可靠性设置成这个级别时,只要发送端(接收 even
前言
本文隶属于专栏《1000个问题搞定大数据技术体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!
本专栏目录结构和参考文献请见1000个问题搞定大数据技术体系
正文
在设计 Flume 架构时,可靠性是需要遵循的核心原则之一。
为了实现这种可靠性, Flume 允许用户配置可靠性级别。
具体的级别如下:
End-to-end
当可靠性设置成这个级别时,只要发送端(接收 event 的 Agent )是活跃的状态,发送到 Flume 的 event 就一定能到达另一端。
为了实现这个级别的可靠性,接收 event 数据的 Agents 会把数据以预写式日志( Write Ahead Log , WAL )的方式写人磁盘。
当 event 数据到达预定的终端时,会发送一个收条给到始发的 Agent ,然后该 Agent 才会移除这条数据。
这个级别可以承受原始 Agent 之后的任何组件故障。
正如前面指出的那样,可靠性越高,可扩展性就越低,这个级别是 Flume 能提供的最高的可靠性级别。
Store on failure
当可靠性设置成这个级别时, event 数据经过不同的 Agent (跳转) event 的发送方 Agent 只会在接收方 Agent 发生故障时才将数据保存到磁盘。
只有在收不到来自下一跳的确认时,才会向磁盘写入事件的详细信息。
这个级别更加实用,但是如果发生了毫无征兆的失败,事件数据有可能永久丢失。
Best-effort
这个级别的可靠性是最弱的,也是最轻量级的, event 不经写入磁盘而直接被转发给下一跳,也不依赖下一个 Agent 的收条读者可以根据自身的应用需求来选择正确的可靠性级别,
并请始终谨记,可靠性越高可扩展性就越差,并且维护成本也越高。
更多推荐
所有评论(0)