四、通过nacos进行服务调用,并实现自定义的负载均衡

Nacos能够实现服务注册与发现,在服务提供者和服务消费者调用时,使用自带组件。

1. 在服务消费者中注入DiscoveryClient

@Autowired
private DiscoveryClient discoveryClient;

2. 从discoveryClient中用服务名字获取服务地址

// 从nacos中获取服务地址
List<ServiceInstance> serviceInstanceList = discoveryClient.getInstances("service_product");
ServiceInstance serviceInstance = serviceInstanceList.get(0);
String url = serviceInstance.getHost() + ":" + serviceInstance.getPort();

3. 当同一个服务有多个实例时,自定义实现负载均衡

// 从nacos中获取服务地址
List<ServiceInstance> serviceInstanceList = discoveryClient.getInstances("service_product");
// 自定义负载均衡
int index = new Random().nextInt(serviceInstanceList.size());
ServiceInstance serviceInstance = serviceInstanceList.get(index);
String url = serviceInstance.getHost() + ":" + serviceInstance.getPort();
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。