日志消息直接发送到kafka设计

背景:

日常工作中,我们一般都有需要分析业务日志的需求,有些业务日志记录了用户点击或者用户购买行为等有用的信息,所以我们一般都需要基于这些日志进行分析,本文我们就来看一下这种日志消息的流转图

技术方案:

目前比较常用的方式是首先日志落盘到本地磁盘文件中,然后通过flume集群采集本地磁盘文件的日志,然后再把这些日志统一推送到kafka集群中,随后实时处理框架比如flink等就可以从kafka中消费日志消息了.
日志消息直接发送到kafka设计_第1张图片

这种方式的最大缺点是日志需要保存两个地方,一个是本地磁盘文件,一个是kafka集群,如果本地磁盘文件仅仅只是作为一个临时的日志中转站的话,我们是否可以把日志落盘到本地磁盘这一步去掉呢?答案是肯定的,这样我们就有了下面的架构:
日志消息直接发送到kafka设计_第2张图片

这种新的架构的优点是日志不用首先保存到本地磁盘中,对本地磁盘IO没有要求,其次由于日志直接发送到kafka集群,省却了flume拉取这一步,所以日志消息的传输会更实时,自然flink等流处理引擎也可以更快的基于日志中的消息进行各种业务处理,例如更及时的告警等.

你可能感兴趣的:(flink,kafka,java,工具类,kafka,分布式)