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

1、安装nacos安装

2、服务提供

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

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

 <dependency>
    <groupId>com.alibaba.cloud</groupId>
     <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
 </dependency>

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、服务消费也需要在服务消费模块中引入上边的依赖

 <dependency>
    <groupId>com.alibaba.cloud</groupId>
     <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
 </dependency>

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  # 选择所使用的测略的全路径

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值