首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

微服务业务开发三个难题-拆分、事务、查询(下)

上集:微服务业务开发三个难题-拆分、事务、查询(上) 上集我们阐述了使用微服务体系架构的关键障碍是领域模型,事务和查询,这三个障碍似乎和功能拆分具有天然的对抗。只要功能拆分了,就涉及这三个难题。 然后我们向你展示了一种解决方案就是将每个服务的业务逻辑实现为一组DDD聚合。然后每个事务只能更新或创建一个单独的聚合。然后通过事件来维护聚合(和服务)之间的数据一致性。 在本集中,我们将会向你介绍使用事件的时候遇到了一个新的问题,就是怎么样通过原子方式更新聚合和发布事件。然后会展示如何使用事件源来解决这个问题,

013

缓存层场景实战读缓存,如何更新缓存+缓存的高可用设计+监控

◆ 如何更新缓存 更新缓存的步骤特别简单,共两步:更新数据库和更新缓存。但这简单的两步中需要考虑很多问题。 1)先更新数据库还是先更新缓存?更新缓存时先删除还是直接更新? 2)假设第一步成功了,第二步失败了怎么办? 3)假设两个线程同时更新同一个数据,A线程先完成第一步,B线程先完成第二步怎么办? 其中,第1个问题就存在5种组合方案,下面逐一进行介绍(以上3个问题因为紧密关联,无法单独考虑,下面就一起说明)。 ◆ 组合1:先更新缓存,再更新数据库 对于这个组合,会遇到这种情况:假设第二步更新数据库失败了,要

01
领券