【发布时间】:2017-12-20 11:14:02
【问题描述】:
我有一个应用程序,在云上的两个不同节点上维护。我在应用程序中有一个调度程序,它每 5 分钟触发一次,它在数据库中执行一些更新操作。如何避免这两个操作导致数据库异常。有没有一种方法可以让一个应用程序知道其他实例已经被触发,或者在云代工厂中可能发生任何类型的节点间通信。
非常感谢
【问题讨论】:
-
我会研究一种使用面向消息的解决方案的架构。恕我直言,您选择了一个容易出现困难的架构/实现。
-
或者依赖数据库中的数据:事务(和隔离级别)来防止同时更新,可能是一个额外的列存储了一个最后更新的时间戳,你可以在更新之前检查?
-
应用程序托管在多个节点上的云上,并作为休息服务调用。所以只有一个节点会响应外部的休息呼叫。唯一的挑战是在应用程序中执行的调度机制。有没有一种方法可以让两个应用程序知道,一个已经开始调度过程,而另一个不应该这样做..换句话说,托管在两个不同节点上的相同应用程序之间的相互通信。
标签: oracle amazon-web-services spring-boot cloud-foundry paas