我对微服务架构比较陌生。我们有一个中等大小的Web应用程序,我在权衡将其细分为微服务而不是我们目前正在发展的单片系统的利弊。
据我了解,考虑微服务A
,B
每个微服务都依赖于另一个服务。如果通过A
说某件事已发生更改来发布消息,则B
可以使用该消息并复制的信息的本地副本,A
并使用该副本执行所需的任何B
操作。
但是,如果B
出现故障/失败,过一会儿又重新出现,该怎么办。在那段停机时间内,A
又发布了两条消息。如何B
知道如何更新其本地信息副本A
?
当然,如果B
是A
队列的唯一使用者,那么一旦它重新联机,它就可以开始读取它,但是如果该队列还有其他使用者并且这些消息被消耗了怎么办?
作为一个更具体的示例,如果Users
服务在Billing
微服务关闭时更新了其电子邮件地址,如果Billing
微服务又恢复了,它如何知道电子邮件已更新?
当微服务恢复正常运行时,是否会广播说“嘿,我已经备份了,给我您所有的当前信息?”
通常,什么是数据同步的最佳行业实践?
Orders
需要了解什么Users
?