![](/img/trans.png)
[英]Azure Event Hubs : QuotaExceededException : 4999 handles limit
[英]Azure Event Hubs: Kafka Consumer polls nothing in java
我正在嘗試從 azure 事件中心讀取我的消費者中的消息
這是我的消費者配置:
private final KafkaConsumer<Integer, String> consumer;
private final String topic;
public SampleConsumer(String topic) throws IOException {
Properties props = new Properties();
props.load(new FileReader("src/main/resources/consumer.config"));
props.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG,
"MyNamespace.servicebus.windows.net:9093");
props.put(ConsumerConfig.GROUP_ID_CONFIG, "GROUP_ID");
props.put(ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG, "true");
props.put(ConsumerConfig.AUTO_COMMIT_INTERVAL_MS_CONFIG, "1000");
props.put(ConsumerConfig.SESSION_TIMEOUT_MS_CONFIG, "30000");
props.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG, "earliest");
props.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG,
"org.apache.kafka.common.serialization.IntegerDeserializer");
props.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG,
"org.apache.kafka.common.serialization.StringDeserializer");
consumer = new KafkaConsumer<>(props);
this.topic = topic;
}
這是我的 consumer.config 文件:
bootstrap.servers=<MyNamespace>.servicebus.windows.net:9093
security.protocol=SASL_SSL
sasl.mechanism=PLAIN
sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required
username="$**********" password="*******";
最后用這種方法我嘗試讀取記錄:
@Override
public void doWork() {
consumer.subscribe(Collections.singletonList(this.topic));
ConsumerRecords<Integer, String> records = consumer.poll(Duration.ofMillis(1000));
System.out.println(records.count());
for (ConsumerRecord<Integer, String> record : records) {
System.out.println("Received message: (" + record.value());
}
}
它正確連接到 azure 和事件中心。 然后它嘗試讀取記錄,但每次都返回 0 而沒有任何錯誤消息。 我在 inte.net 上搜索並使用了很多不同的解決方案,但到目前為止都沒有效果。 事件中心至少應該有一些記錄。
有人可以幫我弄清楚問題出在哪里嗎?
你在積極制作唱片嗎? 如果沒有,那么也許您應該通過為新組 ID 設置auto.offset.reset=earliest
從主題的開頭開始消費
默認行為是在主題結束時開始,並在消費者啟動后輪詢新事件
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.