Cloud Alibaba Nacos 服务注册和配置中心介绍、安装和使用

Nacos 介绍

为什么叫 Nacos?

Nacos 的前四个字母分别为 Naming (服务的域名管理,即服务注册)和 Configuration (服务的配置中心)的前两个字母,最后的 s 为 Service。

Nacos 能干嘛?

  • 可以替代 Eureka 做服务注册中心
  • 可以替代 Config 做服务配置中心

Nacos 是什么?

Nacos 指 Dynamic Naming and Configuration Service,是一个更易于构建云原生应用的动态服务发现,配置管理和服务管理中心,等价于 Eureka+Config+Bus。

Nacos 安装

  1. 官网下载 Nacos
    Nacos 中文官网
    Nacos 下载地址
    在这里插入图片描述
  2. 解压文件,进入 bin 目录,点击 startup.cmd 文件启动 Nacos。(nacos1.3.2 不能启动(Aug 4, 2020)启动报错:db.num is null)
  3. 验证安装完成:直接访问 http://localhost:8848/nacos(默认账号和密码都是 nacos)
    在这里插入图片描述

使用 Nacos 作为服务注册中心

  1. 新建 Maven 模块:cloudalibaba-provider-payment9001(端口默认 9001)
  2. 父 POM 文件添加 alibaba 依赖
   <!--spring cloud alibaba 2.1.0.RELEASE-->
   <dependency>
       <groupId>com.alibaba.cloud</groupId>
       <artifactId>spring-cloud-alibaba-dependencies</artifactId>
       <version>2.1.0.RELEASE</version>
       <type>pom</type>
       <scope>import</scope>
   </dependency>
  1. 本模块 POM添加如下依赖
<dependencies>
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    </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><dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.62</version>
</dependency>
 </dependencies>
  1. yml 文件
server:
  port: 9001

spring:
  application:
    name: nacos-payment-provider
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848 #配置Nacos地址
# 开启配置
management:
  endpoints:
    web:
      exposure:
        include: '*'
  1. 主启动类上添加 @EnableDiscoveryClient 注解
  2. 编写业务类方便最后一步的测试

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;


@RestController
public class PaymentController
{
    @Value("${server.port}")
    private String serverPort;

    @GetMapping(value = "/payment/nacos/{id}")
    public String getPayment(@PathVariable("id") Integer id)
    {
        return "nacos registry, serverPort: "+ serverPort+"\t id"+id;
    }
}
  1. 测试
    访问9001模块 http://lcoalhost:9001/payment/nacos/1
    查看 nacos 控制台,控制台上显示已经注册了该服务:
    在这里插入图片描述

Nacos 支持 AP 和 CP 模式的切换,C是所有节点在同一时间看到的数据一致(允许报错);而 A 的定义是所有的请求都会收到响应(不允许报错,允许返回旧数据)

使用 Nacos 作为服务配置中心

  1. 分布式下多环境多项目管理的两个繁杂问题如下:
    在这里插入图片描述

  2. Nacos 的图形化管理配置界面介绍:
    在这里插入图片描述

  3. Nacos 采用三个级别来映射到一个具体的配置文件:分别是 Namespace + Group + DataId,他们三者的关系如下:
    在这里插入图片描述

  4. 怎么在项目的配置文件中指定 Namespace、Group、DataId?

  • 指定 Namespace:
spring:
	cloud:
		nacos:
			config:
				namespace: 指定 nacos 上配置文件所在的命名空间
  • 指定 Group
spring:
	cloud:
		nacos:
			config:
				namespace: 指定 nacos 上配置文件所在的命名空间
				group: 指定 nacos 上配置文件所在的组
  • 指定 DataId
spring:
	application:	
		name: nacos-config-client #这里写当前服务名(将会作为生成的 DataId 的前缀)
	profiles:
		active: dev #这里写当前所处环境,如dev、test、pro等(将会作为生成的 DataId 的后缀)

spring:
	cloud:
		nacos:
			config:
				file-extension: yaml # 指定获取的配置文件时 yaml 格式的

则通过如上的三个配置信息,最后生成的 DataId 为:nacos-config-client-dev.yaml

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值