You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Quarkus Apache Kafka:无法禁用指定消息连接器的健康检查

解决SmallRye Kafka连接器消息处理错误导致健康状态DOWN的问题

问题分析

你配置的health-readiness-enabled、health-liveness-enabled等参数仅控制Kafka连接器本身的连接健康检查,但当前健康状态DOWN是因为消息处理方法(ActionDlqConnector#onMessage)中的异常被Reactive Messaging的全局健康检查捕获,这类异常属于消息处理逻辑的失败,不属于连接器连接层面的问题,所以原有配置无法覆盖。

解决方案

方法一:使用@HealthIgnore注解排除特定方法的健康追踪

直接在消息处理方法上添加@HealthIgnore注解,让SmallRye Reactive Messaging忽略该方法的失败对健康状态的影响:

import io.smallrye.reactive.messaging.health.HealthIgnore;

@NonBlocking
@ActivateRequestContext
@Incoming("actions-dlq-in")
@Retry(maxRetries = 1, jitter = 1000L, delay = 2000L)
@Acknowledgment(Acknowledgment.Strategy.PRE_PROCESSING)
@HealthIgnore // 添加该注解排除健康检查追踪
public Uni<Void> onMessage(ConsumerRecord<String, ActionKafkaDTO> rejected) {
    log.info(String.format("Received dlq action: %s %s %s",
        rejected.topic(), rejected.partition(), rejected.offset()));
    return sessionFactory.withTransaction(session -> {
      log.info(String.format("Re-processing action: %s", rejected.value()));
      return service.processAction(rejected.value(), kafkaMessageTime(rejected), session)
          .onFailure()
          .invoke(e -> log.log(Level.SEVERE, "Error saving action from dlq", e));
    });
}

方法二:通过配置排除特定通道的健康检查

如果不想修改代码,可以在application.yml中添加配置,指定忽略该通道的健康检查:

mp:
  messaging:
    incoming:
      actions-dlq-in:
        topic: mytopic
        connector: smallrye-kafka
        failure-strategy: ignore
        consumer-rebalance-listener:
          name: consumer-seek.rebalancer
        health-readiness-enabled: false
        health-liveness-enabled: false
        health-enabled: false
        # 添加以下配置忽略该通道的健康追踪
        smallrye.health.ignore: true

若需要忽略多个通道,也可以使用全局配置:

smallrye:
  messaging:
    health:
      ignore: actions-dlq-in

验证

修改后重启应用,访问http://localhost:8080/q/health,此时该消息处理方法的异常将不再影响应用的健康状态,健康检查会返回UP。

内容的提问来源于stack exchange,提问作者GFerruzzi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 08:37:26