NipGeihou's blog NipGeihou's blog
  • 开发规范
  • 进阶笔记
  • 微服务
  • 快速开始
  • 设计模式
  • NoSQL 数据库

    • Redis
  • 数据结构与算法
  • 计算机网络
烹饪
关于
  • 分类
  • 标签
  • 归档

NipGeihou

我见青山多妩媚,料青山见我应如是
  • 开发规范
  • 进阶笔记
  • 微服务
  • 快速开始
  • 设计模式
  • NoSQL 数据库

    • Redis
  • 数据结构与算法
  • 计算机网络
烹饪
关于
  • 分类
  • 标签
  • 归档
  • 设计模式

  • 开发规范

  • 经验分享

  • 记录

  • 快速开始

  • 笔记

  • 面试题

  • 微服务

    • 项目结构

    • Nacos

      • Microservice - 一文上手Nacos
        • 应用场景
          • 服务配置
          • 服务发现
        • 快速开始
          • 下载
          • 传统
          • docker
          • 启动
          • Linux/Unix/Mac
          • Windows
        • 示例
          • 配置管理
          • 服务注册
          • 生产者
          • 消费者
    • Gateway

    • OpenFeign

  • Java
  • 微服务
  • Nacos
NipGeihou
2022-07-31
目录

Microservice - 一文上手Nacos

注意

由于技术日新月异,本文具有时效性,以官方文档 (opens new window)为准。

什么是 Nacos

Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。

来自 Nacos 官网 (opens new window)

# 应用场景

# 服务配置

可将 application.yml 中的配置写在 nacos 中,可使得在微服务集群中灵活修改配置。

笔记

在启动服务时,添加指定环境参数 spring.profiles.active ,实现灵活切换配置。

# 服务发现

可将微服务注册到 nacos 上,使得网关服务能将请求转发到对应微服务上。

笔记

这就跟 DNS 一样,对于用户来讲,不需要关心某个网站的 ip 地址是多少,只要在浏览器输入指定的域名就可以访问到该网站(如 google.com ),也就不用担心因为网站更换了服务器导致 ip 地址变更导致的访问失败。

# 快速开始

Nacos 快速开始 (opens new window)

# 下载

# 传统

Releases · alibaba/nacos (opens new window)

# docker

Nacos Docker 快速开始 (opens new window)

# 启动

注:Nacos 的运行需要以至少 2C4g60g*3 的机器配置下运行。

# Linux/Unix/Mac

启动命令 (standalone 代表着单机模式运行,非集群模式):

sh startup.sh -m standalone

如果您使用的是 ubuntu 系统,或者运行脚本报错提示 [[符号找不到,可尝试如下运行:

bash startup.sh -m standalone

# Windows

启动命令 (standalone 代表着单机模式运行,非集群模式):

startup.cmd -m standalone
http://127.0.0.1:8848/nacos/index.html
username: nacos
password: nacos

# 示例

# 配置管理

Nacos config · alibaba/spring-cloud-alibaba Wiki (opens new window)

nacos 添加命名空间

添加时需指定 id 与环境变量名称一致,如 dev ,确保切换环境时能正确匹配,如不指定 id,nacos 会自动生成一个随机 id,不便于使用。

nacos 添加配置

  • Data Id:相当于配置文件名,需包含后缀,如 hello-service.yml

添加依赖

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

笔记

版本号与 Spring Boot 版本号一致

在服务中创建 bootstrap.yml 配置文件

spring:
  profiles:
    #启动环境配置
    active: #spring.profiles.active#

  application:
    name: 应用名称("my-application")

  cloud:
    nacos:
      config:
        server-addr: ${my.nacos.config-server:192.168.1.123:8848}
        namespace: ${my.nacos.config-namespace:${spring.profiles.active}}
        file-extension: yml

参考配置:

点击查看
spring:
  profiles:
    #启动环境配置
    active: #spring.profiles.active#

  application:
    name: 应用名称("my-application")

  cloud:
    nacos:
      config:
        # 读取机器bootstrap.yml 开发环境使用server-addr
        server-addr: ${my.nacos.config-server:192.168.1.123:8848}
        # 生产环境是阿里云ACE服务 需要使用endpoint连接
        endpoint: ${my.nacos.config-endpoint:}
        namespace: ${my.nacos.config-namespace:${spring.profiles.active}}
        file-extension: yml
        group: DEFAULT_GROUP
        extension-configs:
          - data-id: common-configuration.yml
            group: DEFAULT_GROUP

          - data-id: resources-config.yml
            group: DEFAULT_GROUP

          - data-id: common-config.yml
            group: DEFAULT_GROUP

          - data-id: db.yml
            group: DEFAULT_GROUP

如何实现加载不同环境的配置?

在不同环境运行应用时,启动时添加 spring.profiles.active 指定运行环境,如果没有指定( my.nacos.config-namespace )命名空间参数,默认使用 spring.profiles.active 作为命名空间名称。

默认会加载哪些配置?

${spring.application.name}.${file-extension:properties}
${spring.application.name}-${profile}.${file-extension:properties}

# 服务注册

# 生产者

导入依赖

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    <version>${latest.version}</version>
</dependency>
  • Maven Repository: com.alibaba.cloud » spring-cloud-starter-alibaba-nacos-discovery (opens new window)
  • Nacos 版本说明 (opens new window),Spring Cloud Alibaba 对 Spring Boot 版本有对应要求,一般都不是最新版的 Spring Boot

image-20220731210540105

配置

spring:
  application:
    name: service-provider
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848

启动类注解

@EnableDiscoveryClient

# 消费者

略,将在网关文章中详述。

上次更新: 2023/06/09, 22:19:39
Nexus(Maven私服)
Microservice - Spring Cloud Gateway(网关)上手

← Nexus(Maven私服) Microservice - Spring Cloud Gateway(网关)上手→

最近更新
01
防火墙 - iptables
06-08
02
网络配置 - ip
06-07
03
第三方登录 - Google
06-07
更多文章>
Theme by Vdoing | Copyright © 2018-2023 NipGeihou | 友情链接
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式