什么是微服务
随着业务规模的不断扩大,团队开发人员的不断扩张,单体应用架构就会开始出现:部署效率低下、团队协作开发成本高、系统高可用性差、线上发布变慢等问题、
想要解决上面这些问题,服务化的分而治之的思想也就应运而生。
那么微服务相比于服务化又有什么不同呢?在我看来,可以总结为以下四点:
- 服务拆分粒度更细。
微服务可以说是更细维度的服务化,小到一个子模块,只要该模块依赖的资源与其他模块都没有关系,那么就可以拆分为一个微服务。 - 服务独立部署。
每个微服务都严格遵循独立打包部署的准则,互不影响。比如一台物理机上可以部署多个 Docker 实例,每个 Docker 实例可以部署一个微服务的代码。 - 服务独立维护。
每个微服务都可以交由一个小团队甚至个人来开发、测试、发布和运维,并对整个生命周期负责。 - 服务治理能力要求高。
因为拆分为微服务之后,服务的数量变多,因此需要有统一的服务治理平台,来对各个服务进行管理。
总结:
微服务架构是将复杂臃肿的单体应用进行细粒度的服务化拆分,每个拆分出来的服务各自独立打包部署,并交由小团队进行开发和运维,从而极大地提高了应用交付的效率
微服务怎么拆分?
纵向拆分
一个最有效的手段就是将不同的功能模块服务化,独立部署和运维。以社交 App 为例,你可以认为首页信息流是一个服务,评论是一个服务,消息通知是一个服务,个人主页也是一个服务。
这种服务