关于Spring Cloud框架入门
入口:Spring Cloud入门
关于Spring Cloud框架中Eureka集群使用
入口:Eureka集群
关于Spring Cloud框架中Ribbon负载均衡及Feign消费者调用服务使用
入口:Ribbon以及Feign使用
关于Spring Cloud框架中熔断器Hystrix及服务监控Dashboard使用
入口:Hystrix熔断器使用示例
入口:Hystrix集群使用
关于Spring Cloud框架中Zuul网关使用
入口:Zuul网关使用
关于Spring Cloud框架中服务配置中心使用
入口:spring cloud config 使用
Spring Cloud简介
针对当前流行的微服务架构,比较有名的就是阿里的dubbo和spring cloud。dubbo只专注于服务之间的治理,如果我们需要使用配置中心、分布式跟踪这些内容都需要自己去集成,这样无形中增加了使用 Dubbo 的难度。spring cloud是spring家族的产品,几乎考虑了服务治理的方方面面,提供一整套解决方案,通过构建其框架下的各个组件可快速实现微服务设计中的相关功能,Spring cloud针对各个功能都有对应的组件框架可供选择使用。
Spring Cloud 作为Java 语言的微服务框架,它依赖于Spring Boot,有快速开发、持续交付和容易部署等特点。Spring Cloud 的组件非常多,涉及微服务的方方面面,井在开源社区Spring 和Netflix 、Pivotal 两大公司的推动下越来越完善。
微服务的功能主要体现在以下儿个方面:
-
服务的注册和发现(Eureka)。
-
服务的负载均衡(Ribbon)。
-
服务的容错(Hystrix)。
-
服务网关(zuul)。
-
服务配置的统一管理(config)。
-
服务监控(Dashboard与Turbine)
-
链路追踪。
-
实时日志。
微服务具有以下的特点: -
按照业务来划分服务,单个服务代码量小,业务单一,易于维护。
-
每个微服务都有自己独立的基础组件,例如数据库、缓存等,且运行在独立的进程中。
-
微服务之间的通信是通过HTTP 协议或者消息组件,且具有容错能力。
-
微服务有一套服务治理的解决方案,服务之间不相合,可以随时加入和剔除服务。
-
单个微服务能够集群化部署,并且有负载均衡的能力。
-
整个微服务系统应该有一个完整的安全机制,包括用户验证、权限验证、资源保护等。
-
整个微服务系统有链路追踪的能力。
-
有一套完整的实时日志系统。
通过这张图,我们来了解一下各组件配置使用运行流程:
-
请求统一通过API网关(Zuul)来访问内部服务.
-
网关接收到请求后,从注册中心(Eureka)获取可用服务
-
由Ribbon进行均衡负载后,分发到后端具体实例
-
微服务之间通过Feign进行通信处理业务
-
Hystrix负责处理服务超时熔断