最核心的几个组件: Eureka、Ribbon、Feign、Hystrix、Zuul
Eureka 是微服务架构中的注册中心,专门负责服务的注册与发现
Eureka包括两个组件:Eureka Server(注册服务)和Eureka Client(访问)
Eureka Server提供服务注册服务,各个微服务节点通过配置启动后,会在Eureka Server中进行注册,这样Eureka Server中的服务注册表将会存储所有可用服务节点的信息,服务节点的信息可以在界面中直观看到。Eureka Client通过服务注册中心访问,是一个Java客户端,用于简化Eureka Server的交互,客户端同时也具备一个内置的、使用轮询(Round-robin)负载算法的负载均衡器。在应用启动后,将会向Eureka Server发送心跳(默认时间周期为30s)。如果Eureka Server在多个心跳周期内没有接收到某个节点的心跳,Eureka Server将会从注册服务表中把这个服务节点移除(默认为90s)
Eureka:就是服务注册中心(可以是一个集群),对外暴露自己的地址
提供者:启动后向Eureka注册自己信息(地址,提供什么服务)
消费者:向Eureka订阅服务,Eureka会将对应服务的所有提供者地址列表发送给消费者,并且定期更新
心跳(续约):提供者定期通过http方式向Eureka刷新自己的状态,会监听有没有定期更新,如果长时间没有心跳,就会自动把该服务移除
Feign微服务调用
@FeignClient
简化服务之间的调用(建立连接、构造请求、发起请求、获取响应、解析响应)
Ribbon(集群服务器的负载)
它的作用是负载均衡(集群),会帮你在每次请求时选择一台机器,均匀的把请求分发到各个机器上。
Hystrix(熔断服务降级)
比如一个不重要的服务宕机了,造成整个项目不能运行,我们可以给这个不重要服务降级处理。比如:积分系统,可以做一个日志,等服务恢复正常后,进行积分补偿。
Zuul(网关)
网关:统一管理API的一个网络关口、通道,是整个微服务平台所有请求的唯一入口