服务化与微服务(转)
1 . 互联网架构为什么要做服务化?
1)架构痛点
架构痛点一:代码到处拷贝
架构痛点二:复杂性扩散,例如:各个业务线都需要关注缓存的引入导致的复杂性
架构痛点三:库的复用与耦合
架构痛点四:各个业务SQL质量得不到保障,业务相互影响
架构痛点五:疯狂的DB耦合
2)服务化的优点
好处一:调用方爽
好处二:复用性,防止代码拷贝
好处三:专注性,屏蔽底层复杂度
好处四:SQL质量得到保障
好处五:数据库解耦
好处六:提供有限接口,无限性能
2. 微服务架构多“微”才合适?
粒度粗细的优劣
上文中谈到的服务化与微服务,不同粒度的服务化各有什么优劣呢?
总的来说,细粒度拆分的优点有:
(1)服务都能够独立部署
(2)扩容和缩容方便,有利于提高资源利用率
(3)拆得越细,耦合相对会减小
(4)拆得越细,容错相对会更好,一个服务出问题不影响其他服务
(5)扩展性更好
(6)…
细粒度拆分的不足也很明显:
(1)拆得越细,系统越复杂
(2)系统之间的依赖关系也更复杂
(3)运维复杂度提升
(4)监控更加复杂
(5)出问题时定位问题更难
(6)…
个人觉得,以“子业务系统”粒度作为微服务的单位是比较合适的
3.