微服务是一个个单个小业务功能的服务,由于各个微服务开发部署都是独立的,因此微服务天然是分布式的。
微服务的典型问题是如何共享状态?
关于共享状态的几个解决方案:
如何在事务一致性的基础上保证高可用呢?
事务日志:
分布式系统中,保证强一致性的安全方式是维持数据库事务操作的有序日志,一个事务日志是一系列数据更新操作动作的有序记录集合;
Event Sourcing:
Event Sourcing 时间溯源是借鉴数据库事务日志的一种持久化方式,在ES中,一系列有序的时间大表模型状态,一个新事件加入事件日志就被某种方式持久化了。
事件流共享:
如果不同微服务之间存在状态共享,可以将这些共享状态的事件保存并共享,将领域事件以日志的方式记录下来,保存在一个统一的存储库中。