Spring 引导 + Spring 集成 (AMQP)
Spring Boot + Spring Integration (AMQP)
我一直在阅读 Spring 集成的文档,但我仍然无法弄清楚如何为以下集成建模:
+----------+ --- (request) --> +----------+ --- (request) --> +----------+
| Service1 | | RabbitMQ | | Service2 |
+----------+ <--- (reply) ---- +----------+ <--- (reply) ---- +----------+
基本上我想做的是在 Service 1
和 Service 2
之间共享一个接口,比如说
public interface Service2 {
int sum(int a, int b);
int subtract(int a, int b);
}
并且能够打电话
service2proxyInstance.sum(1, 2)
在 Service1
内的某种自动生成的代理 class 上。
根据我的阅读,我认为我必须在 Service1
中使用 OutboundGateway
并在 Service2
中使用 InboundGateway
,但我似乎无法将它们放在一起.任何人都可以阐明一些情况并提供一个非常简单的例子吗? Spring Integration 中的所有示例似乎都使用了 XML 配置,但由于我对 Spring 很陌生并且习惯了基于注释的配置,所以我无法充分阅读它们。
不知道如何帮助你,因为你已经说得对了。
您的服务应该是 @MessagingGateway
或调用这样的服务。这应该向 AmqpOutboundEndpoint
的频道发送消息并等待来自那里的回复。这实际上是由 @MessagingGateway
.
自动完成的
如果它是 POJO 而不是 String 或用于 JSON-编组的东西,你 payload
将被序列化。
另一个应用程序应该从 AmqpInboundGateway
开始,向 Service2 发送反序列化的请求 payload
并等待那里的回复最后发送回您的 Service1。
查看 Spring 集成 Java DSL 和 AMQP tests。
并与您分享 PoC 和您的担忧,以便更好地了解正在发生的事情。
我一直在阅读 Spring 集成的文档,但我仍然无法弄清楚如何为以下集成建模:
+----------+ --- (request) --> +----------+ --- (request) --> +----------+
| Service1 | | RabbitMQ | | Service2 |
+----------+ <--- (reply) ---- +----------+ <--- (reply) ---- +----------+
基本上我想做的是在 Service 1
和 Service 2
之间共享一个接口,比如说
public interface Service2 {
int sum(int a, int b);
int subtract(int a, int b);
}
并且能够打电话
service2proxyInstance.sum(1, 2)
在 Service1
内的某种自动生成的代理 class 上。
根据我的阅读,我认为我必须在 Service1
中使用 OutboundGateway
并在 Service2
中使用 InboundGateway
,但我似乎无法将它们放在一起.任何人都可以阐明一些情况并提供一个非常简单的例子吗? Spring Integration 中的所有示例似乎都使用了 XML 配置,但由于我对 Spring 很陌生并且习惯了基于注释的配置,所以我无法充分阅读它们。
不知道如何帮助你,因为你已经说得对了。
您的服务应该是 @MessagingGateway
或调用这样的服务。这应该向 AmqpOutboundEndpoint
的频道发送消息并等待来自那里的回复。这实际上是由 @MessagingGateway
.
如果它是 POJO 而不是 String 或用于 JSON-编组的东西,你 payload
将被序列化。
另一个应用程序应该从 AmqpInboundGateway
开始,向 Service2 发送反序列化的请求 payload
并等待那里的回复最后发送回您的 Service1。
查看 Spring 集成 Java DSL 和 AMQP tests。
并与您分享 PoC 和您的担忧,以便更好地了解正在发生的事情。