Eureka服务与发现
有两个部分Eureka Server 和Eureka Client
Eureka Server担任注册中心的角色,提供了服务的发现和注册功能(在主启动类加@EnableEurekaServer开启)
Service Provider 服务提供者,将自身的地址信息服务注册到Eureka Server的服务注册表中,同时通过心跳检查服务的运行状态
Service Consumer 服务调用者,从Eureka Server 得到注册的服务列表,找到对应的服务地址在调用并使用
Eureka Client是一个java客户端,用于简化与服务端的交互
每一个服务提供者都是一个Eureka Client(在主启动类加@EnableEurekaClient),将自身信息注册到Eureka Server里面,并通过心跳保持连接,如果超时没有收到心跳Server端就会把实例从注册表剔除
Eureka保证的是AP,Zookeeper保证的是CP (CAP理论)
Ribbon负载均衡
主要功能是提供客户端的软件负载均衡算法和服务调用
OpenFeign服务调用
是一个声明式的web服务客户端,只需要创建一个接口并在接口上添加注解(@FeignClient(value = "服务名")就可以调用了。类似在Dao接口上标注Mapper注解
Hystrix熔断器
有三个功能:服务降级、服务熔断、服务限流
在分布式系统里,不可避免会遇到调用失败、超时、异常等问题,Hystrix可以保证不会导致整体服务失败。
服务降级:当某个单元发生故障时,通过故障监控,向调用方法返回一个预备响应(FallBack),而不是长时间等待或者抛出异常
服务熔断:类似保险丝,直接拒绝访问,然后调用服务降级并返回预备响应
服务限流:一次只处理少量请求
服务熔断注解@HystrixCommand
Getway服务网关
服务网关负责请求路由、组合以及协议转换。客户端的所有请求通过负载均衡到服务网关,然后由它将请求路由到合适的微服务。简化客户端调用的复杂度,统一处理外部请求、多平台支持,对不同客户端提供不同的支持、统一处理调用过程中的安全、权限问题
Config配置中心
分为服务端和客户端两部分
服务端:也就是配置中心,不同微服务将共同的配置信息放到配置中心,用来连接配置服务器(默认git)并为客户端提供获取的配置信息
客户端:通过指定的配置中心来管理应用资源,可以通过git客户端工具来管理