线上数据一般主要是落地(存储到磁盘)或者通过 socket 传输给另外一个系
统,这种情况下,你很难推动线上应用或服务去修改接口,实现直接向 kafka
里写数据,这时候你可能就需要 flume 这样的系统帮你去做传输。
单机 upd 的 flume source 的配置,100+M/s 数据量,10w qps flume 就开
始大量丢包,因此很多公司在搭建系统时,抛弃了 Flume,自己研发传输系统,
但是往往会参考 Flume 的 Source-Channel-Sink 模式。
一些公司在 Flume 工作过程中,会对业务日志进行监控,例如 Flume agent
中有多少条日志,Flume 到 Kafka 后有多少条日志等等,如果数据丢失保持在
1%左右是没有问题的,当数据丢失达到 5%左右时就必须采取相应措施。
采集层主要可以使用 Flume、Kafka 两种技术。 Flume:Flume 是管道流方式,提供了很多的默认实现,让用户通过参数部
署,及扩展 API。
Kafka:Kafka 是一个可持久化的分布式的消息队列。
Kafka 是一个非常通用的系统。你可以有许多生产者和很多的消费者共享多个主题 Topics。相比之下,Flume 是一个专用工具被设计为旨在往HDFS,HBase 发送数据。它对 HDFS 有特殊的优化,并且集成了 Had