微服务拆分
微服务拆分时机
微服务拆分绝非一个大跃进运动,由高层发起,把一个应用拆分的七零八落的,最终大大增加运维成本,但是并不会带来收益。微服务拆分的过程,应该是一个由痛点驱动的,是业务真正遇到了快速迭代和高并发的问题,如果不拆分,将对于业务的发展带来影响,只有这个时候,微服务的拆分是有确定收益的,增加的运维成本才是值得的。
为了快速迭代
使用微服务架构的目的就是为了快速迭代,快速上线,这也是微服务架构的最大特点。
- 前后端分离
- 业务域拆分,例如订单、营销、风控、积分资源等。形成独立的业务领域微服务集群
高并发场景
对于微服务化拆分后的服务,可以轻松地进行水平扩容,进行服务优化,满足更多的并发和性能需求。
在高并发场景下(或者资源紧张的场景下),我们希望一个请求如果不成功,不要占用资源,应该尽快失败,尽快返回,而且希望当一些边角的业务不正常的情况下,主要业务流程不受影响。这就需要熔断策略,也即当A调用B,而B总是不正常的时候,为了让B不要波及到A,可以对B的调用进行熔断,也即A不调用B,而是返回暂时的fallback数据,当B正常的时候,再放开熔断,进行正常的调用。
这里的拆分主要是为了服务隔离、数据隔离、异常容错、调配资源
可重用
将公共组件拆分成独立的原子服务,下沉到底层,形成相对独立的原子服务层