我有两个未连接的应用程序。一个是在数据库上执行业务逻辑和CRUD的主应用程序。
第二个应用程序会定期重建数据库缓存(长时间运行)。我想在重建开始时向主应用程序发送一个信号,当它完成时,主应用程序应该在重建时采取特定的操作。
我怎样才能使用spring-boot
获得最佳效果?
答案 0 :(得分:1)
使用spring-boot,只需添加active-mq依赖项即可使用jms。
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jms</artifactId>
</dependency>
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-broker</artifactId>
</dependency>
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-pool</artifactId>
</dependency>
在yml配置中,您将在一个应用程序中启动amq jms代理,而不是完全指定broker-url,因为spring.activemq.in-memory属性默认为true(http://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html) 或者像这样配置:
activemq:
broker-url: failover:(vm://localhost:61616?connectionTimeout=3000)
并从其他应用程序(如此
)连接到它activemq:
broker-url: failover:(tcp://machineoftheotherapplication:61616?connectionTimeout=3000)
您可能需要考虑是否需要使用持久可靠传递的消息,这意味着如果您发送消息而其他应用程序未运行,则会在重新启动后收到消息。
答案 1 :(得分:0)
如果您的应用程序使用http请求,您可以添加一个特殊的控制器来处理来自第二个应用程序的请求。 另一种选择是JMX请求。 但是,应考虑安全性。