Kafka 生产者和消费者在单独的 EC2 实例中
Kafka producer and consumer in seperate EC2 instance
我有 2 个 ec2 实例,一个用于 Kafka 代理,另一个用于 Kafka 消费者。我可以知道如何连接两个 ec2 实例以相互通信吗?如果我在我的代理中生成一条消息,我需要在消费者中获取它。
基本上,我正在寻找我需要在代理 ec2 实例中提供消费者信息的配置部分,反之亦然(无论其工作方式如何)。我需要使用一些 api 还是什么?
我已经在单节点集群中尝试过,它成功了。
在 ec-2 或其他地方托管您的代理并不重要,只要消费者可以访问它即可。
Java 中的示例消费者对键和值使用 StringDeserializer。如果您从 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
如果您跨机器使用 Kafka,则需要正确配置侦听器。本文解释了如何:https://rmoff.net/2018/08/02/kafka-listeners-explained/
where i need to give the consumer information in the broker
经纪人不会向消费者推送消息,因此您不会将消费者的信息提供给任何经纪人
假设网络设置配置正确,任何适用于单个代理的代码都应该适用于多个代理
我有 2 个 ec2 实例,一个用于 Kafka 代理,另一个用于 Kafka 消费者。我可以知道如何连接两个 ec2 实例以相互通信吗?如果我在我的代理中生成一条消息,我需要在消费者中获取它。
基本上,我正在寻找我需要在代理 ec2 实例中提供消费者信息的配置部分,反之亦然(无论其工作方式如何)。我需要使用一些 api 还是什么?
我已经在单节点集群中尝试过,它成功了。
在 ec-2 或其他地方托管您的代理并不重要,只要消费者可以访问它即可。
Java 中的示例消费者对键和值使用 StringDeserializer。如果您从 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
如果您跨机器使用 Kafka,则需要正确配置侦听器。本文解释了如何:https://rmoff.net/2018/08/02/kafka-listeners-explained/
where i need to give the consumer information in the broker
经纪人不会向消费者推送消息,因此您不会将消费者的信息提供给任何经纪人
假设网络设置配置正确,任何适用于单个代理的代码都应该适用于多个代理