SpringCloudAlibabaNacos-服务注册和配置中⼼详解
概述
Nacos(Naming Configuration Service) 是什么
Nacos 致⼒于帮助您发现、配置和管理微服务。Nacos 提供了⼀组简单易⽤的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。
Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中⼼的现代应⽤架构 (例如微服务范式、云原⽣范式) 的服务基础设施。
简单化:Nacos 就是 注册中⼼ + 配置中⼼
能够替代Eureka做服务中
能够替代Config做服务配置中⼼
Nacos 下载安装运⾏
下载完成后解压⽬录结构如下:
点开bin⽬录,直接双击d(window)即可运⾏ nacos
出现如下页⾯表⽰运⾏成功:
Nacos 作为服务注册中⼼
Nacos配置
引⽤pom依赖
<!--SpringCloud ailibaba nacos -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
spring:
application:
name: springcloud-alibaba-provider-payment
cloud:
nacos:
discovery:
server-addr: localhost:8848 #配置Nacos地址
## 监控端点
management:
endpoints:
web:
exposure:
include:'*'
然后启动服务,查看nacos控制台:
服务的消费者调⽤服务的提供者
服务提供者代码
@RestController
public class PaymentController {
@Autowired
private PaymentService paymentService;
@Value("${server.port}")
public String port;
@GetMapping("/payment/timeout/get/{id}")
public CommonResult<Payment>getPaymenttimeoutById(@PathVariable("id") Long id){        Payment payment = PaymentById(id);
return new CommonResult<Payment>(200, port, payment);
}
@GetMapping("/payment/get/{id}")
public CommonResult<Payment>getPaymentById(@PathVariable("id") Long id){
Payment payment = PaymentById(id);
return new CommonResult<Payment>(200, port, payment);
}
}
服务调⽤者代码:
public class OrderController {
private final String PAYMENT_URI ="springcloud-alibaba-provider-payment";
@Autowired
private RestTemplate restTemplate;
@GetMapping("/order/payment/{id}")
public CommonResult<Payment> paymentByOpenFeign (@PathVariable("id") Long id){
CommonResult forObject = ForObject(PAYMENT_URI +"/payment/get/"+ id, CommonResult.class);
return forObject;
}
@GetMapping("/order/getPaymenttimeoutById/{id}")
public CommonResult<Payment> getPaymenttimeoutById (@PathVariable("id") Long id){
CommonResult commonResult = ForObject(PAYMENT_URI +"/payment/timeout/get/"+ id, CommonResult.class);
return commonResult;
}微服务注册中心有哪些
}
调⽤结果:
通过Nacos注册中⼼,
通过Nacos注册中⼼,服务调⽤者调⽤服务提供者调⽤成功
Nacos负载均衡
Nacos负载均衡和Eureka⼀样,只要在加上:@LoadBalanced
即可实现⾃动负载均衡
@Bean
@LoadBalanced
public RestTemplate restTemplate(){
return new RestTemplate();
}
启动2台服务的提供者注册进Nacos, 即可负载均衡
Nacos 与其他注册中⼼对⽐
Nacos ⽀持AP和CP的切换
Nacos 作为服务配置中⼼
Nacos作为配置中⼼的配置
添加pom依赖
<!--nacos-config-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency>
添加配置l ⽂件
spring:
application:
name: springcloud-alibaba-provider-payment
cloud:
nacos:
discovery:
server-addr: localhost:8848 #Nacos服务注册中⼼地址
config:
server-addr: localhost:8848 #Nacos作为配置中⼼地址
file-extension: yaml #指定yaml格式的配置
group: DEV_GROUP
namespace: 7d8f0f5a-6a53-4785-9686-dd460158e5d4 Nacos配置规则

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。