spring cloud 是基于spring boot的
每个微服务都是基于spring boot
微服务是一种架构风格,将单体应用划分为小型的服务单元
- 微服务架构是一种使用一系列粒度小的服务来开发单个应用的方式;
- 每个服务运行在自己的进程中;
- 服务间采用轻量级的方式进行通信---通常是HTTP API
- 这些服务是基于业务逻辑和范围,通过自动化部署的机制来独立部署的,并且服务的集中管理应该是最低限度的,即每个服务可以采用不同的编程语言编写,使用不同数据存储技术
微服务的特性:
- 独立运行在自己的进程中
- 一系列独立服务共同构建起整个系统
- 一个服务只关注自己的独立业务
- 轻量的通信机制RESTFUL API
- 使用不同的语言开发
- 全自动部署机制
spring cloud是实现微服务架构的一系列框架的有机集合
是在srping boot基础上构建的,用于简化分布式系统构建的工具集。是拥有众多子项目的集合。利于spring boot的开发便利性,巧妙的简化了分布式系统基础设施(服务注册与发现、熔断机制、网关路由、配置中心、消息总线、负载均衡、链路追踪等)的开发
spring cloud的优势
- spring的生态圈,功能齐全
- 每个服务提供者可以使用自己的语言、框架,最终提供http接口即可
- 可插拔,http是无状态协议,连接为弱连接,解决网络的不可靠性
spring cloud整体架构
服务注册与发现组件
Eureka、zookeeper、cousul、nacos等
服务调用组件
Hystrix:熔断降级,在出现依赖服务失效的情况下,通过隔离系统依赖服务的方式,防止服务级联失败,同时提供失败回滚机制,使系统更快的从异常中恢复。
Ribbon:客户端负载均衡,用于提供客户端的软件负载均衡算法,提供了一系列完善的配制项:连接超时、重试等
OpenFeign:优雅的封装Ribbon,是一个声明式RESTFUL网络请求客户端,它使用编写web服务客户端变得更方便和快捷
网关
路由和过滤。zuul、Gateway
配制中心
提供了配制集中管理,动态刷新配置的功能,配置通过Git或者其它方式来存储
消息组件
Spring Cloud Stream:对分布式消息进行抽象,包括发布订阅、分组消费等功能,实现了微服务之间的异步通信
Spring Cloud Bus:主要提供服务间的事件通信,如刷新配置
安全控制组件
Spring Cloud Security:基于OAuth2.0开放网络的安全标准,提供了单点登录、资源授权和令牌管理等功能
链路追踪组件
Spring Cloud Sleuth:收集调用链路上的数据
Zipkin:对Sleuth收集的信息,进行存储,统计展示
关于 spring start project
正常的service url是:https://start.spring.io
可更换成国内的镜像:https://start.aliyun.com