nacos作为服务注册中心,实现服务调用,负载均衡(轮询)的具体操作

新建两个服务提供者(测试)

在这里插入图片描述

导pom

两个服务提供者都要导入

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

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
    </dependencies>

配置yaml

记得服务端口号,要不一样,另外一份就不粘贴了

server:
  port: 9001

spring:
  application:
    name: nacos-payment-provider
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848  #配置nacos地址

#打开全部的监控端点
management:
  endpoints:
    web:
      exposure:
        include: '*'

主启动

nacos作为服务注册中心,实现服务调用,负载均衡(轮询)的具体操作_第1张图片

业务类

nacos作为服务注册中心,实现服务调用,负载均衡(轮询)的具体操作_第2张图片

**

新建消费者端

**
在这里插入图片描述

改pom

跟消费者的pom一样

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

写yaml

要实现负载均衡一般都是通过服务名称调用的服务

server:
  port: 83

spring:
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848

  application:
    name: nacos-order-consumer
#消费者要去访问的微服务名称
service-url:
  nacos-user-service: http://nacos-payment-provider

主启动

nacos作为服务注册中心,实现服务调用,负载均衡(轮询)的具体操作_第3张图片

业务类

这里简单通过消费者调用服务提供者
用到RestTemplate

@Configuration
public class ApplicationContextConfi {
    @Bean
    @LoadBalanced //开启负载均衡(轮询) **
    public RestTemplate getRestTenplate(){

        return new RestTemplate();
    }
}

业务类

@RestController
public class OrderNacosController {

    //服务地址
    @Value("${service-url.nacos-user-service}")
    private String SERVER_URL;

    @Resource
    private RestTemplate restTemplate;

    @GetMapping("/consumer/payment/nacos/{id}")
    public String paymenInfo(@PathVariable Integer id){

        return restTemplate.getForObject(SERVER_URL+"/payment/nacos/"+id,String.class);
    }

}

启动80 , 9001 ,9002 之后服务将会注册导nacos上面
nacos作为服务注册中心,实现服务调用,负载均衡(轮询)的具体操作_第4张图片

测试
能够两个服务轮询调用就ok了
nacos作为服务注册中心,实现服务调用,负载均衡(轮询)的具体操作_第5张图片
nacos作为服务注册中心,实现服务调用,负载均衡(轮询)的具体操作_第6张图片

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