39 | 从0搭建基于Kafka的企业级实时日志流处理平台
该思维导图由 AI 生成,仅供参考
流处理架构
- 深入了解
- 翻译
- 解释
- 总结
本文详细介绍了如何利用Kafka构建实时日志流处理平台。作者首先指出了Flume+Kafka+Storm、Spark Streaming或Flink等技术栈的复杂性和运维成本,然后重点介绍了使用Kafka Connect+Kafka Core+Kafka Streams的组合来构建实时日志分析平台。文章通过实际操作演示了如何使用Kafka Connect组件收集数据,并演示了如何启动Kafka Connect和添加File Connector来实时读取Nginx的access日志。接着,作者介绍了Kafka Streams组件的使用,指出了它作为一个类库的优势,并展示了如何编写Kafka Streams程序来实时分析Kafka主题数据。整体而言,本文为读者提供了一套完整的技术实现方案,展示了基于Kafka的实时日志流处理平台的搭建过程。文章还提到了Kafka Streams提供的功能远不止做计数这么简单,并展望了后续将重点介绍Kafka Streams组件的使用和管理。值得一提的是,相比于Flume+Kafka+Flink技术栈,纯Kafka方案在运维和管理成本上有着极大的优势。文章以实际操作为主线,为读者提供了清晰的技术实现路径,对于构建实时流处理平台的读者具有很高的参考价值。
《Kafka 核心技术与实战》,新⼈⾸单¥68
全部留言(29)
- 最新
- 精选
- 陈国林老师好,说下我这边的一些实践。19年一直在做容器日志平台,我们目前的方案是 Fluentd + Kafka + ELK。使用Fluentd做为容器平台的采集器实时采集数据,采集完之后数据写入Kafka通过Kafka进行解耦,使用Logstash消费后写入ES。这套方案目前在容器环境下应该可以说是标配
作者回复: 棒棒:)
2020-02-03222 - 小刀老师,上述Kafka Connect+Kafka Core+Kafka Streams例子中,生产者和消费者分别是什么?
作者回复: 此时,生产者和消费者化身成这个大平台的小组件了。Connect中只有producer,将读取的日志行数据写入到Kafka源主题中。Streams中既有producer也有consumer:producer负责将计算结果实时写入到目标Kafka主题;consumer负责从源主题中读取消息供下游实时计算之用。
2019-09-038 - 石栖胡老师,对于Stream的处理和之前的topic-message,我感觉没什么大的区别,感觉流程是类似的。只不过是在以前的consumer中额外添加了producer的逻辑,把处理结果发送到另一个topic中。感觉不用这里说的stream也能实现一样的效果。我不是个明白本质的区别是什么,麻烦能解释一下吗?谢谢
作者回复: Kafka Streams提供了consume-process-produce的原子性操作,也就是端到端的EOS。如果你自己实现代价很高
2020-05-0527 - ban老师,示例中开启Connect后启动读取的是本机的nginx日志,但如果nginx日志是在其他机器上面,那Connect是不是支持远程读的还是怎么样可以读取到其他机器的日志?
作者回复: 在Nginx日志机器上开启,因为目前File Connector只支持从本地文件读取
2019-09-144 - timmy21老师如果有多个分区,并且消息写入是随机的。那么多个kafka streams实例在对os_type进行group_by统计时,需要相互之间传输数据进行shuffle操作吗?
作者回复: 需要的。Kafka Streams使用特殊的repartition topics来保存shuffle后的数据
2020-10-033 - helloworld写的不太明白啊, 难道每一个nginx服务器上都要部署kafka吗
作者回复: 是的
2020-03-1033 - w老师我想问一下。Kafka Connect 是一个单独的组件么?类似agent一样,可以在目标采集机器(非kafka集群)上部署?那如果要用,岂不是每个业务机器都要装个kafka? 单机模式跟集群模式有啥区别呢?没太懂。比如kafka集群上启动单机模式的connect ?不行么? 最终操作,都往同一个topic里扔就好了?
作者回复: 是单独的组件。需要单独部署。 kafka集群上启动单机模式的connect --- 这是可以的
2020-02-253 - Ball老师我有问题要请教下,添加 Connector 步骤里面是用 http REST 接口新建的,那新建的 Connector 是跑在 Broker 里面还是说又启动了一个新的 Java 进程执行 Connector?
作者回复: 新的java进程
2020-01-143 - 霍格沃兹小学徒老师 想咨询个问题 我这边如果日志不是来自于文件 而是来自于telenet的输出 需要怎么做日志实时分析。 而且需要有上万个telenet实例一起在输出 我需要分别分析每个实例按照某种统一规则
作者回复: 可以为每个telnet的数据流编制一个key来管理
2021-03-2531 - Geek_6e00ab为什么消费者取出来的值是乱码的
作者回复: 因为是二进制字节序列,需要反序列化
2021-01-281