微服务之间的最佳调用方式!| CSDN 博文精选( 六 )
如果一个业务逻辑有它自己相对固定的流程和步骤,那么使用RPC或业务流程管理(BPM)能够更方便地管理这些流程。在这种情况下选哪种方案呢?在我看来好处和坏处是大致相当的。从技术上来讲要选事件驱动,从业务上来讲要选RPC。不过现在越来越多的人采用事件通知作为微服务的集成方式,它似乎已经成了微服务之间的标椎调用方式。
事件溯源(Event Sourcing)
这是一种具有颠覆性质的的设计,它把系统中所有的数据都以事件(Event)的方式记录下来,它的持久存储叫Event Store, 一般是建立在数据库或消息队列(例如Kafka)基础之上,并提供了对事件进行操作的接口,例如事件的读写和查询。事件溯源是由领域驱动设计(Domain-Driven Design)提出来的。
DDD中有一个很重要的概念,有界上下文(Bounded Context),可以用有界上下文来划分微服务,每个有界上下文都可以是一个微服务。下面是有界上下文的示例。下图中有两个服务“Sales”和“Support”。
有界上下文的一个关键是如何处理共享成员, 在图中是“Customer”和“Product”。在不同的有界上下文中,共享成员的含义、用法以及他们的对象属性都会有些不同,DDD建议这些共享成员在各自的有界上下文中都分别建自己的类(包括数据库表),而不是共享。可以通过数据同步的手段来保持数据的一致性。下面还会详细讲解。
推荐阅读
- 客服|自购增值服务不自知?手机被恶意扣费,联通公司还要套路多久?
- 腾讯|LPL年度最佳选手,同队最多三人,选谁?
- edg战队|年度最佳阵容评选,EDG不可能全员上榜?圣枪哥恐将成为牺牲位
- 永劫无间|官宣!《永劫无间》活动期间打7折!萌新入坑最佳时机!
- 我的世界|我的世界:6个“友尽”的小技巧,不要轻易在好友的服务器尝试!
- ag战队|魔兽TBC:免费转服即将开放,四类服务器现状分析,玩家把握机会
- viper|最佳外援是VIPER,新任FMVP坐不住了?本土选手机制了解一下
- 剑网3|剑网三玩家开挂,出生装备服务器第一!开局淘汰95个对手,离大谱
- 任天堂|免费“大作”会有吗?任天堂商业报告提到将改善Switch会员服务
- 泰拉瑞亚|泰拉瑞亚:克鲁苏之眼之间的战斗,“地牢守卫”才是威胁!