微服务的意义
例如我们在一个基础的商场系统当中,可能分为用户模块,商品模块,订单模块、活动模块等,系统建设初期,
我们也许为了快速上线和节约成本,那么就是直接一整套的模块代码,全部写在一个项目代码中。
而在后期流量上来后,我们会发现,经常因为某个模块的的模块失效,导致整个服务瘫痪。例如活动模块,和商品模块是最容易在高流量下瘫痪的。举个例子,在2018年的双十一活动中,
某商场系统花了很多钱去做广告,导致很高流量直接进入到商场系统当中,而在此之前,也没做服务拆分,那么活动模块的高流量导致数据库和带宽完全无法支撑,整个商场全部进入黑洞状态,,用户即无法进入活动页面,连正常的商场首页也无法打开。
后面,在Easyswoole项目组的建议下,将商场系统进行了模块化服务拆分,例如,活动系统就是一个独立的服务,用户参与活动的时候,直接从客户端调用活动服务接口,活动服务需要验证商品和用户数据的时候,又通过RPC调用进行服务间的数据交互。从而实现
压力的分摊,不再让全部的服务压力都堆积到单台服务器或数据库上,且在最糟糕的情况下,即使活动模块瘫痪,也不会导致整个商场系统不可用。  
因此微服务的主要意义在于,流量分压,模块高度自治,服务隔离保护。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐