【发布时间】:2016-03-24 07:39:10
【问题描述】:
目前我有一个调用通知服务的前端服务。前端服务不依赖于通知服务的响应。我希望前端服务调用通知,但不等待通知服务的响应。可以在前端服务本身内做到这一点吗?我是否必须使用一些消息服务来“代理”这两个服务之间的调用?
【问题讨论】:
标签: spring spring-boot spring-cloud microservices
目前我有一个调用通知服务的前端服务。前端服务不依赖于通知服务的响应。我希望前端服务调用通知,但不等待通知服务的响应。可以在前端服务本身内做到这一点吗?我是否必须使用一些消息服务来“代理”这两个服务之间的调用?
【问题讨论】:
标签: spring spring-boot spring-cloud microservices
您需要一个队列,该队列可以是独立的服务(RabbitMq、Hornet 等)或者您可以在通知服务中使用队列。
独立队列,这种情况下可以在服务中间使用消息代理,前端服务将消息发送到队列,通知服务从队列中读取消息然后发送。
内部队列,您可以在通知服务中拥有一个内部队列,就像 SpringIntegration 中的队列一样。当服务收到消息时,立即将其放入队列并返回 OK 代码。前端服务不需要等到通知发送。然后通知服务按照自己的节奏处理其队列中的消息。
【讨论】:
您可以进行异步执行。只需将@EnableAsync 添加到您的应用程序类中,并使用@Async 注释调用通知服务的方法。
【讨论】: