Nacos 注册中心的使用方法
一、简单介绍
Nacos 和之前介绍过的 Eureka 都是注册中心,解决的问题和 Eureka 也一样
二、使用方法
这里省略 nacos 的安装方法了
1、引入Spring Cloud Alibaba 依赖
在父工程的pom文件中的 中引入Spring Cloud Alibaba的依赖:
<properties>
<spring-cloud-alibaba.version>2022.0.0.0-RC2</spring-cloud-alibaba.version>
</properties><dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${spring-cloud-alibaba.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
注意:Spring Boot 和Spring Cloud的版本是有⼀定对应关系的. Spring Cloud Alibaba也遵循 Spring Cloud的标准,在引入依赖时,⼀定要确认各个版本的对应关系. Spring Cloud Alibaba和Spring Cloud版本对应关系, 参考官方文档:
2、在 服务消费者(order-service) 和 服务提供者(product-service) 中引入nacos依赖和 LoadBalancer 依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-loadbalancer</artifactId>
</dependency>
3、在 服务消费者(order-service) 和 服务提供者(product-service) 的配置文件中配置 Nacos 地址(这里的地址为我服务器上nacos的地址)
spring:
application:
name: product-service
cloud:
nacos:
discovery:
server-addr: xxxxxxxx
4、远程调用
1、修改IP为项目名
package com.linzhixin.order.service;
import com.linzhixin.order.mapper.OrderMapper;
import com.linzhixin.order.model.OrderInfo;
import com.linzhixin.order.model.ProductInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
@Service
public class OrderService {
@Autowired
private OrderMapper orderMapper;
@Autowired
private RestTemplate restTemplate;
public OrderInfo selectOrderById(Integer orderId) {
OrderInfo orderInfo = orderMapper.selectOrderById(orderId);
String url = "http://product-service/product/" + orderInfo.getProductId();
ProductInfo productInfo = restTemplate.getForObject(url, ProductInfo.class);
orderInfo.setProductInfo(productInfo);
return orderInfo;
}
}
2、为 restTemplate 添加负载均衡注解 @LoadBalanced
package com.linzhixin.order.config;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;
@Configuration
public class BeanConfig {
@Bean
@LoadBalanced
public RestTemplate restTemplate() {
return new RestTemplate();
}
}
5、启动 order-service服务 与 product-service 服务
观察 nacos,可以观察到

6、发起请求测试
测试接口:http://127.0.0.1:8080/order/1
7、启动多个实例,测试负载均衡
更多推荐

所有评论(0)