前言隶属于专栏《1000个问题搞定大数据技术体系》。 这个专栏是笔者原创的。 引用请注明来源。 不足和错误请在评论区指出。 谢谢你。
本专栏的目录结构和参考文献请参考1000个解决问题的大数据技术体系
本文在设计流架构时,可靠性是必须遵循的核心原则之一。
为了实现这一可靠性,Flume允许用户设置可靠性级别。
具体水平为:
端到端可靠性设置为此级别时,如果发送方(接收事件的代理)处于活动状态,发送到Flume的事件一定会到达另一方。
为了实现此级别的可靠性,接收事件数据的代理会将其作为可写入数据的日志(写入头日志,WAL )写入人的磁盘。
当事件数据到达预定终端时,它将向源代理发送一封收件箱,代理将删除该数据。
在此级别,您可以承受原始代理之后的组件故障。
正如我之前指出的,可靠性越高,可扩展性就越低。 此级别是Flume能够提供的最高可靠性级别。
如果Store on failure可靠性设置为此级别,则发送代理(其事件数据通过不同的代理)仅在接收代理出现故障时将数据保存到磁盘。
只有在无法从下一跳接收到确认时,事件的详细信息才会写入磁盘。
此级别更实用,但如果发生无征兆的失败,事件数据可能会永久丢失。
Best-effort这一水平的可靠性是最弱、最轻的水平。 事件直接转发到下一跳,而不写入磁盘,并且与下一个代理无关的收件人可以根据自己的APP应用需求选择正确的信任级别
请记住,可靠性越高,可扩展性越低,维护成本也越高。