当前位置: 首页 > 工具软件 > Brooklin > 使用案例 >

SSL Kafka经纪人从Kafka Mirror Maker迁移到Brooklin的挑战

耿玄裳
2023-12-01

问题

从卡夫卡镜子制造商转移到布鲁克林有我在这里所写的优势。 但是,进行这种迁移并不容易,因为它本来应该如此。 我面临的主要挑战是:在消费者Kafka经纪人和Brooklin之间建立SSL连接

SSL问题

事实证明,这个问题比我预期的要棘手得多。

我一直在使用Brooklin的1.0.2版本进行工作。 我遇到的问题是我无法在kafkaMirroringConnector(用于创建Kafka使用者以监听Kafka Broker的连接器)和Kafka Broker之间创建SSL连接,而问题在于代码的局限性。 阅读完代码后 ,我意识到唯一的选择就是修复它并创建一个新构建。

从技术上讲,更改仅属于2个文件。

KafkaMirrorMakerConnectorTask.java

 //Add following line to createKafkaConsumer method  properties.putIfAbsent(CommonClientConfigs.SECURITY_PROTOCOL_CONFIG, _mirrorMakerSource.isSecure() ? "SSL" : "PLAINTEXT" ); 

server.properties

 //Add below line under 'Kakfa Mirror connector Configs' . //This would be used by createConsumer under //PartitionDisciveryThread  brooklin.server.connector.kafkaMirroringConnector.consumer.security.protocol=SSL 

构建datastream-kafka-connector模块并替换brooklin lib目录中的jar。

现在,当创建一个新的布鲁克林任务时,您可以在源字符串中使用kafka ssl代替kafka

 Example :  bin/brooklin-rest-client.sh -o CREATE -u http: //localhost:32311/ -n first-mirroring-stream -s "kafkassl://localhost:9093/^(first|second)-topic$" -c kafkaMirroringConnector -t kafkaTransportProvider -m '{"owner":"test-user","system.reuseExistingDestination":"false"}' 2>/dev/null 

注意 :我尝试但不起作用的另一种方法是使用ConsumerFactoryClassName参数。 这可以帮助您根据代码创建自定义使用者,但这给我带来了更多问题。

翻译自: https://www.javacodegeeks.com/2020/06/challenges-of-moving-from-kafka-mirror-maker-to-brooklin-for-ssl-kafka-brokers.html

 类似资料: