Eureka:
服务注册中心,给客户端提供可供调用的服务列表,客户端在进行远程服务调用时,根据服务列表然后选择服务提供方的服务地址进行服务调用。服务注册中心在分布式系统中大量应用,是分布式系统中不可或缺的组件
服务端:@EnableEurekaServer
//标识这是一个Eureka服务
客户端:@EnableDiscoveryClient
//标识这是一个Eureka客户端
Feign:
微服务远端调用技术
工作流程:
- cms服务将自己注册到注册中心
- 课程管理服务从注册中心获取cms服务的地址
- 课程管理服务远端调用cms服务
@FeignClient(value = XcServiceList.XC_SERVICE_MANAGE_CMS)
public interface CmsPageClient {
@GetMapping("/cms/page/get/{id}")
public CmsPage findById(@PathVariable("id") String id);
}
工作原理:
1、 启动类添加@EnableFeignClients注解,Spring会扫描标记了@FeignClient注解的接口,并生成此接口的代理
对象
2、 @FeignClient(value = XcServiceList.XC_SERVICE_MANAGE_CMS)即指定了cms的服务名称,Feign会从注册中
心获取cms服务列表,并通过负载均衡算法进行服务调用。
3、在接口方法 中使用注解@GetMapping("/cms/page/get/{id}"),指定调用的url,Feign将根据url进行远程调
用。
Ribbon:
负载均衡是微服务架构必须使用的技术,通过负载均衡来实现系统的高可用/集群扩容等功能。
负载均衡的算法由轮训 随机 加权轮训等
在启动类中配置RestTemplate:@LoadBalanced
@Bean
@LoadBalanced
public RestTemplate restTemplate() {
return new RestTemplate(new OkHttp3ClientHttpRequestFactory());
}