当然,假设我们需要向Kafka主题发送一些消息,并且有一些处理器将处理消息并将响应发送到另一个需要由camel使用的主题。流动就像, client -> send request -> camel sender route(thread 1)-> Kafka in topic(and ACK goes back to client)-> processing in separate java process -> response in Kafka out topic -> camel consumer route(thread 2)-> response to client 当然,一种方法可以如上所述创建2个路由,但是如果客户端需要同步响应,只有线程1会执行所有操作? 一个可能的解决方案是让发送方路由(线程1)等待来自Kafka的响应(可能是在发送方路由的末尾添加一个消费者),然后从同一路由返回客户端。 有道理吗?
1条答案
按热度按时间2fjabf4q1#
当然,假设我们需要向Kafka主题发送一些消息,并且有一些处理器将处理消息并将响应发送到另一个需要由camel使用的主题。流动就像,
client -> send request -> camel sender route(thread 1)-> Kafka in topic(and ACK goes back to client)-> processing in separate java process -> response in Kafka out topic -> camel consumer route(thread 2)-> response to client
当然,一种方法可以如上所述创建2个路由,但是如果客户端需要同步响应,只有线程1会执行所有操作?
一个可能的解决方案是让发送方路由(线程1)等待来自Kafka的响应(可能是在发送方路由的末尾添加一个消费者),然后从同一路由返回客户端。
有道理吗?