Rabbitmq 为什么我们只有一半的时间(循环赛)收到的回答是“我不知道”;HTTP请求/响应的Spring云数据流;在PCF中部署的方法?

Rabbitmq 为什么我们只有一半的时间(循环赛)收到的回答是“我不知道”;HTTP请求/响应的Spring云数据流;在PCF中部署的方法?,rabbitmq,spring-integration,cloud-foundry,spring-cloud-stream,spring-cloud-dataflow,Rabbitmq,Spring Integration,Cloud Foundry,Spring Cloud Stream,Spring Cloud Dataflow,此问题与前面的两个问题有关: 正如您可以看到上面问题2的更新,我们可以从rabbit接收器收到正确的响应。但是,它只在循环方式(success timeout success timeout-…)中交替使用了一半的时间。外部http应用程序是通过问题1中显示的Spring集成实现的-将请求发送到请求兔子源队列,并从响应兔子接收器队列接收响应。只有在我们部署了外部http应用程序并在那里创建了流(请参见下面的POC流)之后,才会在PCF环境中发生这种情况。但是,它一直在本地工作(不是交替工作)

此问题与前面的两个问题有关:

  • 正如您可以看到上面问题2的更新,我们可以从rabbit接收器收到正确的响应。但是,它只在循环方式(success timeout success timeout-…)中交替使用了一半的时间。外部http应用程序是通过问题1中显示的Spring集成实现的-将请求发送到请求兔子源队列,并从响应兔子接收器队列接收响应。只有在我们部署了外部http应用程序并在那里创建了流(请参见下面的POC流)之后,才会在PCF环境中发生这种情况。但是,它一直在本地工作(不是交替工作)。我们错过什么了吗?不知道PCF的罪魁祸首是什么。谢谢

    rabbitSource: rabbit --queues=rabbitSource | my-processor | rabbitSink: rabbit --routing-key=pocStream.rabbitSink.pocStream
    

    听起来您在该PCF环境中有多个流实例。这样,同一RabbitMQ队列中就有多个订阅者(轮询感觉像两个订阅者)。其中,该队列必须只有一个使用者,因为只有请求的发起方等待应答,但奇数(或偶数)应答将发送给同一队列的不同使用者。我不把它作为一个答案,只是因为这是最好的猜测,因为你没有看到本地的问题


    请调查您的PCF环境,以及它如何为您的流扩展实例。还可能有一些SCDF选项,可以为我们进行缩放。

    听起来您在PCF环境中有多个流实例。这样,同一RabbitMQ队列中就有多个订阅者(轮询感觉像两个订阅者)。其中,该队列必须只有一个使用者,因为只有请求的发起方等待应答,但奇数(或偶数)应答将发送给同一队列的不同使用者。我不把它作为一个答案,只是因为这是最好的猜测,因为你没有看到当地的问题。谢谢你的快速反应!你说的很有道理。现在的任务是在PCF中找到额外的订户-快速检查并没有发现它,但我们会继续查找并让您知道。我认为这可能类似于PCF中的自动缩放。对不起,我不熟悉应用程序平台。嗨,阿泰姆,对不起,我误导了你。刚刚发现我们在本地也遇到了同样的问题——它过去一直在工作。可能是最近的一些变化造成的。继续调查,进一步调查发现问题在于,无论流的第二步是什么,它总是会在启动时绑定兔子源队列(在我们的原始流中,第二步是一个定制的处理器,我们还尝试添加一个内置的“桥”作为第二步,然后桥成为绑定兔子源队列的桥)-我想这就是它应该做的-每一个相邻的步骤都必须绑定上一个步骤的队列以进行消息传递?如果是,这是否意味着我们不能将内部SCDF流rabbitmq用于外部http应用程序?我们必须使用独立的rabbit服务器吗?