当前位置:   article > 正文

kafka batch.size怎么设置_基于flume的高可用kafka数据投递管道架构与实践

kafka batch.size

业务场景:

需要从一个Kafka集群投递消息到多个Kafka 集群,这个过程可能只是对某些topic进行分发;同时topic也能支持分发到不同集群;

经过选型后,决定使用flume来实现高可用管道,并使用flume的复制分流拓扑结构来实现源集群的一次消费即可投递到下游的不同目标。

整体设计架构图:

44e0dc868f175eece5974c8c39e9222d.png

节点说明:

2个agent节点,2个collector节点;

2个agent 节点,完全相同的配置起flume agent ,组高可用的Kafka消费组,同步一个topic起一个flume进程;

2个collector节点的作用是,统一投递管理,新加topic source 无需重启应用,减少对全局应用的影响;

agent通过avro sink 向collector的avro source投递数据;

agent 通过设置sink group 来实现高可用或者负载均衡方式向collector投递数据;

注意:为了保证数据不丢失,使用file channel不要使用memory channel 。


详细配置说明:

一、agent 上的消费进程配置:

kafka source配置:

agent.sources.kafkaSource.type = org.apache.flume.source.kafka.KafkaSourceagent.sources.kafkaSource.kafka.bootstrap.servers = xx1:9092,xx2:9092,xx3:9092agent.sources.kafkaSource.kafka.topics = testTopicagent.sources.kafkaSource.kafka.consumer.group.id = dataDelever.flume

source interceptor设置,添加kv对,kfCluster值用于区分Kafka 集群,kfCluster取值:cluster1表示投递消息到Kafka集群cluster1,cluster2表示投递消息到Kafka 集群cluster2,clusterall表示两个集群都投递该topic。

agent.sources.kafkaSource.interceptors = i1agent.sources.kafkaSource.interceptors.i1.type = staticagent.sources.kafkaSource.interceptors.i1.key = kfClusteragent.sources.kafkaSource.interceptors.i1.value = clusterall
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/在线问答5/article/detail/1000635
推荐阅读
相关标签
  

闽ICP备14008679号