分布式服务框架一般是相对传统单体架构而言的。
在业务的早期,为了快速上线和试错,一般都会选用单体架构来构建业务,所有的业务组件都在同一个应用内部。但随着业务的发展,用户量和业务规模越来越大,单体应用的性能会遇到瓶颈,同时用户需求也会越来越多,各个组件耦合在一起会导致研发效率的下降,无法应对快速变更的用户需求。这个时候就需要考虑分布式服务化的架构。
服务化架构需要把原来的单体应用进行服务化的拆分,一般先按照业务领域进行纵向拆分,比如电商平台可以拆分为用户中心、订单中心、支付中心等,再按照通用共享维度进行横向拆分,比如订单中心可以继续拆分为订单基础服务、订单聚合服务、订单应用服务等。服务进行合理的拆分和整合后,就可以独立地进行扩缩容,解决性能瓶颈,同时也可以独立的进行迭代演进,解决研发效率问题。
服务化的架构一般要求选用一套服务化的技术框架,来解决服务之间的互相发现以及服务治理等问题(比如限流、降级、熔断、分流等)。开源框架里面大家用的比较多的有Spring Cloud和Dubbo这两种。SpringCloud提供了服务化框架所需要的一整套工具套件,包括服务注册发现Netflix Eureka、服务调用Ribbo和Feign、服务治理Netflix Hystrix、服务配置SpringCloud Config、服务网关Netflix Zuul和SpringCloud Gateway等。Dubbo也提供了类似的一套解决方案,在国内用户也比较多。
那么分布式服务框架应该怎么学习呢,小编把这份珍藏许久的学习笔记分享给大家,吃透他惊艳所有人
内容提要
该文依托工作实践,从分布式服务框架的架构设计原理到实践经验总结,涵盖了服务化架构演进、订阅发布、路由策略、集群容错和服务治理等多个专题,全方位剖析服务框架的设计原则和原理,结合大量实践案例与读者分享作者对分布式服务框架设计和运维的体会。
同时,对基于Docker部署微服务以及基于微服务架构开发、部署和运维业务系统进行了详细介绍。
完整有314页