Version: Next

服务消费者注册

Cloudalibaba-consumer-nacos-order83

POM

<dependencies>
<!-- SpringCloud ailibaba nacos-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency><!-- 引用自己定义的api通用包,可以使用Payment支付Entity -->
<groupId>org.example</groupId>
<artifactId>cloud-api-commons</artifactId>
<version>1.0-SNAPSHOT</version>
</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>
<!--热部署-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>

YAML

  • 通过 service-url.nacos-user-service: http:// {服务提供者的 spring.application.name} 配置服务消费者要访问的服务提供者微服务
server:
port: 83
spring:
application:
name: nacos-order-consumer
cloud:
nacos:
discovery:
server-addr: localhost:8848 #配置Nacos地址
#消费者将去访问的微服务名称(注册成功进nacos的微服务提供者)
service-url:
nacos-user-service: http://nacos-payment-provider

主启动类

@SpringBootApplication
@EnableDiscoveryClient
public class OrderNacosMain83 {
public static void main(String[] args) {
SpringApplication.run(OrderNacosMain83.class,args);
}
}

业务类

此处通过 83 远程调用 90019002,可采用 OpenFeignRestTemplate

测试

  • 启动 83
  • 访问 http://localhost:83/consumer/payment/nacos/1

微服务负载均衡

默认就开启了负载均衡,不论是使用 RestTemplate 还是 OpenFeign,多次通过 83 调用 nacos-payment-provider 服务,可以在响应信息中看到 90019002 两个服务节点在进行 轮询

  • 根据依赖关系,可以得知 Nacos 也是基于 Ribbon 来实现客户端负载均衡的