我有2个ec2实例,一个用于Kafka经纪人,另一个用于Kafka Consumer。我可以知道如何将两个ec2实例相互连接以进行通信。如果我在经纪人中产生一条消息,则需要在消费者中得到它。
基本上,我正在寻找配置的那部分,我需要在broker ec2实例中提供消费者信息,反之亦然(无论哪种方式)。我需要使用一些api或其他东西吗?
我已经在单节点群集中尝试过,并且可以正常工作。
答案 0 :(得分:0)
您可以在ec-2或其他地方托管经纪人,只要消费者可以访问它就没关系。
使用StringDeserializer的键和值的Java中的样本使用者。如果要从Java程序访问,则需要使用KafkaConsumer API
Properties props = new Properties();
props.put("bootstrap.servers", "YOUR_KAFKA_BROKER_ADDRESS");
props.put("group.id", "test");
props.put("enable.auto.commit", "true");
props.put("auto.commit.interval.ms", "1000");
props.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
props.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
KafkaConsumer<String, String> consumer = new KafkaConsumer<>(props);
consumer.subscribe(Arrays.asList("foo", "bar"));
while (true) {
ConsumerRecords<String, String> records = consumer.poll(100);
for (ConsumerRecord<String, String> record : records)
System.out.printf("offset = %d, key = %s, value = %s%n", record.offset(), record.key(), record.value());
}
https://kafka.apache.org/10/javadoc/?org/apache/kafka/clients/consumer/KafkaConsumer.html
答案 1 :(得分:0)
如果要在多台计算机上使用Kafka,则需要正确配置侦听器。本文介绍了如何:https://rmoff.net/2018/08/02/kafka-listeners-explained/
答案 2 :(得分:0)
我需要在经纪人中提供消费者信息的地方
经纪人不会向消费者发送消息,因此您不会将消费者的信息提供给任何经纪人
假设网络设置配置正确,任何针对单个代理的代码都可以使用多个代码