本文主要介绍如何在springcloud中通过nacos客户端消费者服务通过负载均衡访问生产者服务。本例使用的springcloud版本为:2021.0.3,springboot版本为:2.6.8,springcloudalibaba版本为:2021.0.1.0,nacos服务端版本为:2.1.1。
1、创建nacos-consumer-order-9010项目
打开idea新建项目,选择maven,创建springboot项目nacos-consumer-order-9010项目。

2、pom文件配置
在项目pom中引入spring-cloud-starter-alibaba-nacos-discovery和spring-cloud-starter-loadbalancer依赖:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-loadbalancer</artifactId>
</dependency>
</dependencies>
3、application.yml文件配置
在项目resources文件夹下创建application.yml文件,并按如下内容进行配置:
server:
port: 9010
spring:
application:
name: nacos-consumer-order
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
4、主应用类配置
在项目src/main/java下创建主应用类NacosConsumerOrderApplication.java,添加注解@EnableDiscoveryClient、@SpringBootApplication。
@SpringBootApplication
@EnableDiscoveryClient
public class NacosConsumerOrderApplication {
public static void main(String[] args) {
SpringApplication.run(NacosConsumerOrderApplication.class, args);
}
}
本文主要介绍如何在springcloud中通过nacos客户端消费者服务通过负载均衡访问生产者服务。本例使用的springcloud版本为:2021.0.3,springboot版本为:2.6.8,springcloudalibaba版本为:2021.0.1.0,nacos服务端版本为:2.1.1。
1、创建nacos-consumer-order-9010项目
打开idea新建项目,选择maven,创建springboot项目nacos-consumer-order-9010项目。

2、pom文件配置
在项目pom中引入spring-cloud-starter-alibaba-nacos-discovery和spring-cloud-starter-loadbalancer依赖:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-loadbalancer</artifactId>
</dependency>
</dependencies>
3、application.yml文件配置
在项目resources文件夹下创建application.yml文件,并按如下内容进行配置:
server:
port: 9010
spring:
application:
name: nacos-consumer-order
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
4、主应用类配置
在项目src/main/java下创建主应用类NacosConsumerOrderApplication.java,添加注解@EnableDiscoveryClient、@SpringBootApplication。
@SpringBootApplication
@EnableDiscoveryClient
public class NacosConsumerOrderApplication {
public static void main(String[] args) {
SpringApplication.run(NacosConsumerOrderApplication.class, args);
}
}
5、RestTemplate配置
在项目config文件夹下创建配置类ApplicationContextConfig,进行restTemplate的bean配置,同时增加@LoadBalanced注解实现负载均衡设置。
@Configuration
public class ApplicationContextConfig {
@Bean
@LoadBalanced
RestTemplate getRestTemplate(){
return new RestTemplate();
}
}
6、controller层配置
在项目controller文件夹下创建OrderController,通过restTemplate访问生产者nacos-payment服务。
@RestController
public class OrderController {
@Resource
private RestTemplate restTemplate;
String SERVER_URL = "http://nacos-payment";
@GetMapping("/consumer/get")
String get(){
return restTemplate.getForObject(SERVER_URL + "/nacos/payment/get", String.class);
}
}
7、测试验证
同时启动并运行项目nacos-payment-9001、nacos-payment-9002、nacos-consumer-order-9010。通过访问http://localhost:8848/nacos/ 查看服务是否都正常启动。

在浏览器中通过多次访问 http://localhost:9010/consumer/get 来验证负载均衡是否生效。

