②Spring Cloud Config 配置服务
Spring Config 是 Spring 提供的配置中心轻量级实现,基于 Git 存储,国内用户大多推荐使用 Alibaba 开源的 Nacos(集成配置中心和注册中心)都是非常不错的配置中心的实现。
微服务程序对于配置中心的几点管理原则:
-
应用程序的配置和部署的实际代码分离(配置中心和应用程序分离)。
-
集中(将配置中心集中在少量的存储库中)。
-
稳定(配置中心要保证高可用)。
Spring Config 这款配置中心提供的核心功能:
-
配置服务器允许使用环境特定值。
-
使用 Spring Profile 区分环境值。
-
可以使用基于文件或基于 Git 存储属性。
-
允许对称加密和非对称加密。
③Spring Cloud Eureka 服务发现
服务发现是微服务架构中非常重要的概念,也称注册中心,类似我们生活中的房地产中介的角色,买房卖房都要通过它。
所以它是所有微服务上线/下线的必经之路,也掌握微服务的生杀大权,注册中心会根据 CAP 策略和对微服务的健康检查,作出对具体服务剔除,下线,恢复上线等操作。
主要还有以下几个核心功能:
-
快速对环境中服务数量水平伸缩(功能和 K8s 有些重合,不过也可以设定具体服务的运行时数量)。
-
抽象服务的物理位置(微服务通常运行在 Docker 容器内,没有固定 IP,只能通过注册中心才能找到它)。
-
提高程序的弹性,自动伸缩。
-
信息共享, 健康检测。
微服务架构里面要实现注册中心,需要达到哪些基本要求?
-
高可用,注册信息共享(注册中心集群部署),不可能因为注册中心挂了,导致所有集群不可用。
-
负载均衡(对服务间的动态请求负载均衡),合理在服务间分配流量。
-
有弹性(客户端缓存服务信息)。
-
容错,健康检查(检测坏掉的服务自动移除,无需人工干预)。
Spring Eureka 提供的服务发现实现,具备哪些特点 ?
-
服务发现抽象服务的物理位置。
-
无感知添加和移除服务。
-
为服务间调用提供负载均衡。
-
使用 3 种不同机制来调用服务:DiscoveryClient,支持 Ribbon 的 RestTemplate,Netflix 的 FeignClient。
④Spring Cloud Hystrix 熔断保护
为什么微服务进行熔断 ?当一个服务