- 服务的注册发现
- 服务的负载均衡
- 服务的容错
- 服务网关
- 服务配置的统一管理
- 链路追踪
- 实时日志
Netflix怀旧版:
- 服务注册和发现组件Eureka
利用Eureka 组件可以很轻松地实现服务的注册和发现的功能。Eureka 组件提供了服务的健康检测,以及界面友好的UI。通过Eureka 组件提供的UI,Eureka 组件可以让开发人员随时了解服务单元的运行情况。另外springcloud也支持consul和zookeeper.nacos等,用于注册和发现服务 - 熔断组件
Hystrix是一个熔断组件,它除了有一些基本的额熔断器功能外,还能实现服务的降级、服务限流的操作。另外Hystrix提供了熔断器的健康监测,以及熔断器健康数据的API接口。Hystrix Dashboard 组件提供了单个服务熔断器的健康状态数据的界面展示功能,Hystrix Tubine 组件提供了多个服务的熔断器的健康状态数据的界面展示功能。 - 负载均衡组件Ribbon
Ribbon是一个负载均衡的组件,它通常和Eureka ,zuul(getaway),RestTemplat、Feign配合使用。ribbon和zuul配合,很容易做到负载均衡,将请求根据负载均衡策略分配到不同的服务实例中。 Ribbon和restTemplate、feign配合,在消费服务时能够做到负载均衡。 - 路由网关zuul
路由网关zuul有智能路由和过滤的功能。内部服务的api接口通过zuul网关统一对外暴露,内部服务的api接口不直接暴露,防止内部服务敏感信息对外暴露。在默认情况下,zuul和ribbon相结合,能够做到负载均衡、智能路由。zuul的过滤功能是通过拦截器请求来实现的可以对一些用户的角色权限进行判断,起到安全验证的作用,同时也可以用于输出实时的请求日志。
上述的4个组件都来自Netflix公司,统一称为 SpringCloud Netflix - Spring Cloud Config
Spring Cloud Config组件提供了配置文件统一管理功能。Spring Cloud Config包括server端和client端,server端读取本地仓库或者远程仓库的配置文件,所有的client向server读取配置信息,从而达到配置文件统一管理的目的。通常情况下,Spring Cloud Config和Spring Cloud Bus 相互配合刷新指定client或所有client的配置文件。
- Spring Cloud Security
Spring Cloud Security 是对Spring Security 组件的封装,Spring Cloud Security向服务单元提供了用户验证和权限认证。一般来说,单独在微服务系统中使用Spring Cloud Security是很少见的,一般它配合Spring Cloud Oauth2组件一起使用,通过搭建授权服务,验证token或者jwt这种形式对整个微服务系统进行安全验证。 - Spring Cloud Security
Spring Cloud Security是一个分布式链路追踪组件,它封装了Dapper、zipkin和kibana等组件,通过它可以知道服务之间的相互依赖关系,并实时观察链路的调用情况。 - Spring Cloud Stream
Spring Cloud Stream是 Spring Cloud 框架的数据流操作包,可以封装RabbitMQ,ActiverMQ、kafka/、redis等消息组件,利用Spring Cloud Stream可以实现消息的接收和发送。
上述列举了一些常用的Spring Cloud怀旧 组件
Spring Cloud Alibaba:
1.Nacos
Nacos;致力于发现、配置和管理微服务。它提供了一组简单易用的功能,帮组开发人员快速实现dongtaifuwu发现、服务配置、服务元数据及流量管理,从而更敏捷和更容易地构建、交付和管理微服务平台。
Nacos是构建以“服务”为中心的现代应用框架(例如微服务范式、云原生范式)的基础设施。
1)服务发现服务健康检查
Nacosj支持基于DNS和http&api的服务发现。服务提供者使用原生SDK、openAPI或一个独立的Agent注册service后,服务消费者可以使用dns或者HTTP&API查找和发现服务
Nacos提供了对服务的实时健康检查,阻止向不健康的主机或服务实例发送请求。Nacos支持传输层和应用层的健康检查。
对于复杂的云环境和网络环境(如 VPC、边缘网络等)中的服务健康检查,Nacos提供了“Agent上报” 和 “服务器端主动检测” 两种健康检查模式。
Nacos还提供了统一的健康检查仪表盘,帮助用户根据健康状态来管理服务的可用性及流量。
2)动态配置服务
动态配置服务可以让用户以中心化、外部化、和动态化的方式,管理所有的应用配置和服务配置。动态配置消除了在配置变更时重新部署应用和服务的需要,让配置管理变得更加高效和敏捷。配置中心化管理让实现无状态服务变得更简单,让服务按需弹性扩展变得更容易。
3)动态DNS服务
动态DNS服务支持;权重路由,能更容易。更灵活地实现中间层负载均衡、路由策略、流量控制,以及数据中心内网的简单DNS解析。
利用动态DNS服务,能更容易地实现以DNS协议为基础的服务注册/订阅。以消除在客户端耦合到厂商私有服务时注册/订阅的可能风险。
4)服务及其元数据管理
Nacos能从微服务平台的建设视角,管理注册中心中的所有服务及元数据,包括管理服务的描述、生命周期、服务的静态依赖分析、服务的健康状态管理、路由及安全策略、服务的SLA,以及最重要的metrics 统计数据。