1 eureka服务发现,可以提供可视化,等同于dubbo中的zookepper
1.1 需要spring-cloud-starter-netflix-eureka-server服务端依赖包并在配置文件中配置可视化的路径
1.2 在启动类上加入注解@EnableEurekaServer
1.3 配置文件:应用名+端口号+ip+注册中心(自己的ip+端口)
2 微服务提供者:负载均衡
ms-provider x2
,配置2个eureka客户端
2.1需要pom文件中假如spring-cloud-starter-netflix-eureka-client客户端依赖包
2.2 在启动类上添加@EnableDiscoveryClient
2.3 提供注册到eureka 的应用名称,也为多实例提供调用名称,和注册中心地址
3 微服务消费者:
ms-consumer,配置eureka客户端-
3.1 需要pom文件中假如spring-cloud-starter-netflix-eureka-client客户端依赖包并在配置文件中配置eureka路径–表示往谁去取
3.2 如需要负载均衡(如何规则可设置,默认轮询)调用不同的提供者
2种方法
方法1:需在消费者启动类 注入RestTemplate(@Bean+@LoadBalanced)
并如此调用(提供者的在配置文件中配置的名字)
方法2:@Bean
如此调用
4 provider新增服务到注册中心,consumer每隔一段时间去注册中心拉取最新的服务(心跳)
5 负载均衡总结
方法1
1)启动类上@Bean+@LoadBalanced返回RestTemplate
2)使用处 注入RestTemplate
url:应用名
String url = "http://提供者应用名/xxx/" + 参数;
3)调用:用restTemplate.getForObject(url,class<T> t)
方法2:
1)启动类上@Bean返回RestTemplate
public RestTemplate restTemplate() {
return new RestTemplate();
}
2)使用处 注入RestTemplate
注入LoadBalancerClient
@Autowired
private LoadBalancerClient client;
url:ip+端口
ServiceInstance instance = client.choose("eureka-provider");
String host = instance.getHost();
int port = instance.getPort();
String url = "http://" + host + ":" + port + "/xxx/" + 参数;
3)调用:用restTemplate.getForObject(url,class<T> t)