kafka mirror
问题
从卡夫卡镜子制造商转移到布鲁克林有我在这里所写的优势。 但是,进行这种迁移并不容易,因为它本来应该如此。 我面临的主要挑战是:在消费者Kafka经纪人和Brooklin之间建立SSL连接
解
SSL问题
事实证明,这个问题比我预期的要棘手得多。
我一直在使用Brooklin的1.0.2版本进行工作。 我面临的问题是我无法在kafkaMirroringConnector(用于创建要监听Kafka Broker的Kafka使用者的连接器)和Kafka Broker之间创建SSL连接,问题出在代码的限制上。 阅读完代码后 ,我意识到唯一的选择就是修复它并创建一个新构建。
从技术上讲,更改仅属于2个文件。
KafkaMirrorMakerConnectorTask.java
//Add following line to createKafkaConsumer method properties.putIfAbsent(CommonClientConfigs.SECURITY_PROTOCOL_CONFIG, _mirrorMakerSource.isSecure() ? "SSL" : "PLAINTEXT" );
//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参数。 这可以帮助您根据代码创建自定义使用者,但这给我带来了更多问题。
kafka mirror