nacos服务提供和发现及客户端负载均衡配置

1、安装nacos安装

2、服务提供

2.1、分别在服务提供及服务消费工程中的pom中添加如下依赖,此依赖的作用是服务发现。

即1、将自己的地址注册到服务发现中心,2、从服务发现中心获取服务列表

 
    com.alibaba.cloud
     spring-cloud-starter-alibaba-nacos-discovery
 

2.2、在对应的application.yaml文件中配置对应的nacos服务发现相关的配置:如下:

 spring:
  application:
    name: nacos-restful-provider #服务名即所在的pom模块的服务名称,也即对外提供访问的服务名称,还是注册到nacos上的服务名称
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848  #服务发现中心地址 nacos的地址,即向这个地址进行注册

2.3重启服务就可以在nacos服务列表看到对应的服务

3、服务消费

3.1、服务消费也需要在服务消费模块中引入上边的依赖

 
    com.alibaba.cloud
     spring-cloud-starter-alibaba-nacos-discovery
 

3.2、同样服务消费也需要在配置列表中配置nacos服务中心的地址才能找到服务

 spring:
  application:
    name: nacos-restful-consumer # 如果只是做服务消费,可以不配服务名,但是如果组个服务消费也需要对外提供服务就必须配,一般建议配
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848  #服务发现中心地址 nacos的地址,即向这个地址进行注册

3.3、配置完成后就可以调用服务提供方提供的服务了

 @Autowired
 LoadBalancerClient loadBalancerClient;
 @GetMapping(value = "/service1")
 public String service1(){
     //远程调用
     RestTemplate restTemplate = new RestTemplate();

     //发现一个地址  # loadBalancerClient客户端负载均衡,Nginx是服务器端负载均衡
     ServiceInstance serviceInstance = loadBalancerClient.choose(serviceId);
     //获取一个http://开头的地址,包括ip和端口
     URI uri = serviceInstance.getUri();
     String result = restTemplate.getForObject(uri + "/service", String.class); // 调用远程服务
     return "consumer 123 invode|"+result;
 }   

负载均衡策略:

在服务消费方的application.yml配置文件中添加如下内容来修改负载均衡策略

nacos-restful-provider: # 服务提供方的服务名
  ribbon:  # 固定
    NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule  # 选择所使用的测略的全路径

你可能感兴趣的:(Java,负载均衡,java,spring,boot)