微服务之间的最佳调用方式!| CSDN 博文精选( 五 )
再举一个购物的例子。用户选好商品之后进行“Checkout”,生成“Order”,然后需要“payment”,再从“Inventory”取货,最后由“Shipment”发货,它们每一个都是微服务。这个例子用RPC方式和事件通知方式都可以完成。
当用RPC方式时,由“Order”服务调用其他几个服务来完成整个功能。用事件通知方式时,“Checkout”服务完成之后发送“Order Placed”消息,“Payment”服务收到消息,接收用户付款,发送“Payment received”消息。
“Inventory”服务收到消息,从仓库里取货,并发送“Goods fetched”消息。“Shipment”服务得到消息,发送货物,并发送“Goods shipped”消息。
对这个例子来讲,使用事件驱动是一个不错的选择,因为每个服务发消息之后它不需要任何反馈,这个消息由下一个模块接收来完成下一步动作,时间上的要求也比上一个要宽松。用事件驱动的好处是降低了耦合度,坏处是你现在不能在程序里找到整个购物过程的步骤。
推荐阅读
- 客服|自购增值服务不自知?手机被恶意扣费,联通公司还要套路多久?
- 腾讯|LPL年度最佳选手,同队最多三人,选谁?
- edg战队|年度最佳阵容评选,EDG不可能全员上榜?圣枪哥恐将成为牺牲位
- 永劫无间|官宣!《永劫无间》活动期间打7折!萌新入坑最佳时机!
- 我的世界|我的世界:6个“友尽”的小技巧,不要轻易在好友的服务器尝试!
- ag战队|魔兽TBC:免费转服即将开放,四类服务器现状分析,玩家把握机会
- viper|最佳外援是VIPER,新任FMVP坐不住了?本土选手机制了解一下
- 剑网3|剑网三玩家开挂,出生装备服务器第一!开局淘汰95个对手,离大谱
- 任天堂|免费“大作”会有吗?任天堂商业报告提到将改善Switch会员服务
- 泰拉瑞亚|泰拉瑞亚:克鲁苏之眼之间的战斗,“地牢守卫”才是威胁!