如何保持azure事件集线器连接活动以使用amqp接收批量诊断

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何保持azure事件集线器连接活动以使用amqp接收批量诊断相关的知识,希望对你有一定的参考价值。

我们在批处理帐户上启用了诊断功能,以便将事件流式传输到我们在应用程序中捕获的事件中心,以便根据批处理任务状态执行操作。但是我们注意到连接自动关闭(可能是因为没有事件发生在夜间),因此我们不得不每隔一段时间就将服务器反弹回来以再次接收事件/消息。

我们仍然依赖于java 7,这里是我们为批处理添加的依赖项:

       //azure dependency
        compile('com.microsoft.azure:azure-storage:7.0.0')
        compile('com.microsoft.azure:azure-batch:5.0.1') {
            //do not get transitive dependency com.nimbusds:nimbus-jose-jw because spring security still rely on old version of it
            excludes group: 'com.nimbusds', module: 'nimbus-jose-jw'
        }
        compile('com.fasterxml.jackson.core:jackson-core:2.9.8')
        compile('org.apache.qpid:qpid-amqp-1-0-common:0.32')
        compile('org.apache.qpid:qpid-amqp-1-0-client:0.32')
        compile('org.apache.qpid:qpid-amqp-1-0-client-jms:0.32')
        compile('org.apache.qpid:qpid-jms-client:0.40.0')
        compile('org.apache.geronimo.specs:geronimo-jms_1.1_spec:1.1.1')
        //end of azure dependency

这里是连接的代码片段,实际上我们使用了这里给出的代码示例:qazxsw poi,因为我们在azure doc本身找不到java 7的任何工作示例。

http://theitjourney.blogspot.com/2015/12/sendreceive-messages-using-amqp-in-java.html

那么有没有办法跟踪连接是否已关闭,如果是,请重新启动连接? 任何进一步诊断此问题的信息也将受到赞赏。

答案

我想我发现了这个问题,我使用了“SBCFR”作为connectionFactoryName,仔细查看链接中的示例,我应该使用“SBCF”。我还将lib“org.apache.qpid:qpid-jms-client”从版本“0.40.0”更新为“0.41.0”

同样在上面的代码中,我不应该使用AUTO_ACKNOWLEGDE因为最长时间我认为有些错误,因为我从未在本地设置中接收事件。原来其他机器也连接到同一个消费者群体,并且已经收到了消息。

以上是关于如何保持azure事件集线器连接活动以使用amqp接收批量诊断的主要内容,如果未能解决你的问题,请参考以下文章

Azure 事件中心 - 如何使用官方 SDK 并行使用事件?

尝试使用 amqp 连接到 azure 事件中心时出错

Azure 流分析查询以检测特定 deviceId 的丢失活动事件

如何使用 python 烧瓶防止 230 秒 azure 网关超时以进行长时间运行的工作负载

Azure IoT 中心 AMQP 通信多路复用

是否可以将Azure信息保护活动日志流式传输到事件中心?