目录
SpringCloud核心组件
Eureka: 服务启动时,EurekaClient会将服务注册到EurekaService,EurakeClient从EurekaService拉取注册表,获取服务地址信息。
Feign:接口定义了@FeignClient注解,Feign就会针对这个接口创建一个动态代理,调用哪个服务的接口,动态代理根据在接口上的@RequestMapping注解动态构造出要请求服务的地址,针对这个地址发起请求、解析及响应。如果被调用的接口注册在了多个机器上,怎么确定调用哪台机器?所有的请求都落在一台机器上怎么办?如何把请求均摊在多台机器上做到负载均衡,获取其中一台机器的地址信息,Ribbon组件解决了这个问题。
Ribbon:发起请求的时候,Ribbon会从Eureka Client里面获取到对应的服务注册表,知道服务都部署在了那些机器上,监听哪些端口,基于Ribbon做到负载均衡,使用默认的Round Robin算法从多个机器中选择一台。同一时间大量请求积压在某一个服务上,然后服务就挂掉了