好的,我有一个微服务用户(A),A发布消息,微服务帖子(B)正在侦听和解析A的事情,当B解析队列时,A需要从中获取的信息B继续其流程。好像我正在向A发出一个GET请求 - >> B,只有兔子。 问题在于A需要在B发布的另一个队列(或同一个队列)中进行侦听,但A如何能够完全消耗B发布的内容。示例微服务A每秒有100个请求,也就是说,队列中发布了100个消息,B消耗了100个消息,你怎么做才能让A完全接收你的回合,因为不是所有的都会带来相同的信息。
`
rabbitClient.start({
val bodyString = gson.toJson( jsonObjectWithTheParametersForTheSearch )
val message = JsonObject().put( "body", bodyString )
rabbitClient.confirmSelect({ confirmResult ->
if (confirmResult.succeeded()) {
rabbitClient.basicPublish("", "Queue", message, { pubResult ->
if (pubResult.succeeded()) {
rabbitClient.waitForConfirms({ waitResult ->
if (waitResult.succeeded()) {
rabbitClient.basicGet( "QueueResponse", true, { getResult ->
if ( getResult.succeeded() ) {
val algo = gson.fromJson( getResult.result().getString( "body"), JsonObject::class.java )
resultHandler!!.handle( Future.succeededFuture( message.getString( "body") ) )
}
})
println("Message published !")
} else {
waitResult.cause().printStackTrace()
}
})
} else {
pubResult.cause().printStackTrace()
}
})
} else {
confirmResult.cause().printStackTrace()
}
})
})
`
所有这些代码都有效,但我怎样才能确保发布者在发布后使用他所拥有的消息。
“Queue”是微服务A发布的队列,Microservice使用该队列,并且在消耗它之后,在队列“QueueResponse”中发布消息,然后A应该使用对应于“QueueResponse”的消息。 就像GET请求一样简单,我需要有关某事的信息,我通过id查找它,我需要你返回该id的信息,而不是别人的信息。