为什么某些azure服务总线消息进入Deadletter队列而kubectl日志中没有任何错误?

时间:2019-09-11 03:41:30

标签: node.js kubernetes message-queue servicebus azure-kubernetes

我通过kubectl logs <-POD->检查了Azure AKS日志,该日志在开始处理时在开始时记录了消息ID。但是,没有日志可以记录几封突然发送到Deadletter的消息。我试图再次将它们放到普通队列中,但面临相似的结果。

为什么会这样?如何解决?

下面是有时可以看到的日志,但一段时间后也应该恢复处理消息。 (我并行运行了4个豆荚)

    Error for serviceBusService.receiveQueueMessage()
    Error: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
    <HTML><HEAD><TITLE>Service Unavailable</TITLE>
    <META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD>
    <BODY><h2>Service Unavailable</h2>
    <hr><p>HTTP Error 503. The service is unavailable.</p>
    </BODY></HTML>
        at Function.ServiceClient._normalizeError (/usr/src/app/node_modules/azure-common/lib/services/serviceclient.js:757:12)
        at ServiceBusService.ServiceClient._processResponse (/usr/src/app/node_modules/azure-common/lib/services/serviceclient.js:455:41)
        at Request.processResponseCallback [as _callback] (/usr/src/app/node_modules/azure-common/lib/services/serviceclient.js:213:35)
        at Request.self.callback (/usr/src/app/node_modules/request/request.js:185:22)
        at Request.emit (events.js:203:13)
        at Request.<anonymous> (/usr/src/app/node_modules/request/request.js:1161:10)
        at Request.emit (events.js:203:13)
        at IncomingMessage.<anonymous> (/usr/src/app/node_modules/request/request.js:1083:12)
        at Object.onceWrapper (events.js:291:20)
        at IncomingMessage.emit (events.js:208:15)

1 个答案:

答案 0 :(得分:1)

看起来您可能遇到了transient exception。对于此类错误,您可以设置一个重试并重试,直到成功。

我相信,在大多数情况下,除非当时服务存在重大问题,否则此类错误应在几次重试中解决。