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远程调用9001、9002,可采用OpenFeign或RestTemplate
- OpenFeign
- RestTemplate
测试
- 启动
83 - 访问
http://localhost:83/consumer/payment/nacos/1
微服务负载均衡
默认就开启了负载均衡,不论是使用
RestTemplate还是OpenFeign,多次通过83调用nacos-payment-provider服务,可以在响应信息中看到9001与9002两个服务节点在进行轮询
- 根据依赖关系,可以得知 Nacos 也是基于 Ribbon 来实现客户端负载均衡的