SpringCloud01.pdf
SpringCloud 是当前最流行的微服务架构之一,基于 SpringBoot 实现了微服务功能组件的自动装配。 SpringCloud 集成了各种微服务功能组件,提供了良好的开箱即用体验。本文档总结了微服务架构的优缺点、单体架构、分布式架构和微服务架构的特征,并介绍了 SpringCloud 的基本概念和组件。
微服务架构的优缺点
-------------------
微服务架构的优点:
* 降低服务耦合度
* 有利于服务升级和拓展
* 提高服务的独立性和灵活性
微服务架构的缺点:
* 架构非常复杂
* 运维、监控、部署难度提高
微服务架构的特征
----------------
* 单一职责:每一个服务都对应唯一的业务能力
* 自治:团队独立、技术独立、数据独立
* 面向服务:服务提供统一标准的接口,与语言和技术无关
* 隔离性强:服务调用做好隔离、容错、降级,避免出现级联问题
SpringCloud 的基本概念和组件
---------------------------------
* SpringCloud 是基于 SpringBoot 的微服务框架
* SpringCloud 集成了各种微服务功能组件
* SpringCloud 提供了良好的开箱即用体验
* SpringCloud 的组件包括 Eureka、Ribbon、Feign 等
服务拆分和远程调用
-------------------
服务拆分是微服务架构的核心特征之一。服务拆分的原则包括:
* 不同微服务,不要重复开发相同业务
* 微服务数据独立,不要访问其它微服务的数据库
* 微服务可以将自己的业务暴露为接口,供其它微服务调用
服务拆分的示例包括 cloud-demo 项目,其中包括订单微服务和用户微服务。订单微服务和用户微服务都必须有各自的数据库,相互独立。订单服务和用户服务都对外暴露 Restful 的接口。
远程调用是微服务架构中的重要概念。远程调用可以使用 HTTP、RPC 等协议实现。在 order-service 服务中,有一个根据 id 查询订单的接口,可以使用 HTTP 请求调用 user-service 服务的根据 id 查询用户的接口。
SpringCloud 是微服务架构的一站式解决方案,提供了良好的开箱即用体验。微服务架构可以降低服务耦合度,提高服务的独立性和灵活性。但是,微服务架构也存在着架构复杂、运维、监控、部署难度提高等问题。