跳至主要內容

Nacos

sixkey大约 2 分钟后端SpringCloud微服务Nacos

Nacos

CloudAlibaba之Nacos

架构介绍

screenshot-1713000202053

Nacos简介

是什么?

官网:Nacos官网 | Nacos 官方社区 | Nacos 下载 | Nacosopen in new window一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台

一句话:Nacos就是注册中心 + 配置中心的组合

screenshot-1712985300729
screenshot-1712985300729

各种注册中心比较

screenshot-1712985348127
screenshot-1712985348127

下载安装

官网下载安装nacos,解压安装包,运行bin目录下控制台执行命令startup.cmd -m standalone开启nacos,运行成功后直接访问http://localhost:8848/nacos

作为注册中心

将其他服务注册进nacos

添加依赖

<dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

添加yaml

spring:
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848
        enabled: true

主启动类添加

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

注意:虽然nacos与consul作用相似,但是集成gateway和openfeign时有区别

nacos与gateway网关集成

添加依赖注意一定要添加loadbalancer依赖,否则配置网关时无法通过服务名称去请求,会一直报503错误,与consul与gateway集成就不需要添加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-starter-loadbalancer</artifactId>
        </dependency>

完整yaml配置

spring:
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848
    gateway:
      discovery:
        locator:
          enabled: true
      routes:
        - id: pay_routh1
          uri: lb://cloud-alibaba-openfeign-consumer
          predicates:
            - Path=/feign/pay/query/**

nacos与openfeign网关集成

添加依赖注意一定要添加loadbalancer依赖,否则配置网关时无法通过服务名称去请求,会一直报503错误,与consul与gateway集成就不需要添加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-starter-loadbalancer</artifactId>
        </dependency>

完整yaml配置

spring:
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848
        enabled: true
    openfeign:
      client:
        config:
          default:
            #连接超时时间
            connectTimeout: 20000
            #读取超时时间
            readTimeout: 20000
      httpclient:
        hc5:
          enabled: true