原创

Windows10环境安装nacos

温馨提示:
本文最后更新于 2023年06月19日,已超过 314 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我

1.下载nacos 1.4.2
下载地址:https://nacos.io/zh-cn/index.html

版本号下载地址
2.0.1https://github.com/alibaba/nacos/releases/tag/2.0.1
1.4.2https://github.com/alibaba/nacos/releases/tag/1.4.2
1.3.2https://github.com/alibaba/nacos/releases/tag/1.3.2

2.解压安装

3.修改配置
进入conf目录,修改application.properties

4.新建数据库
新建mysql数据库并执行nacos中conf目录下的的sql语句

6.启动nacos
进入bin目录cmd

startup.cmd -m standalone

Nacos常用命令

命令描述
startup.cmd -m standalone启动 nacos,使用默认端口和Standalone模式。
startup.cmd -m cluster启动 nacos,使用默认端口和Cluster模式。
shutdown.cmd关闭 nacos 命令行。
nacos-cli.sh 或 nacos-cli.cmd用于启动 nacos-cli 命令行工具。
nacos-import-dev.yaml -t localhost:8848导入配置文件到 nacos 的 dev 环境中。
nacos-export-dev.yaml -t localhost:8848导出 nacos dev 环境的所有配置文件。
nacos-sync-dev.yaml -t localhost:8848将 nacos dev 环境的配置同步到指定的其他环境。
nacos-monitor.sh start 或 nacos-monitor.cmd启动 nacos monitor 监控服务。
status.cmd查看 nacos 的服务状态。

7.进入nacos管理控制台
浏览器访问:http://localhost:8848/nacos
账号/密码: nacos/nacos


配合Spring Cloud的微服务示例

假设我们有一个基于 Spring Cloud 构建的微服务系统,其中包含以下几个服务:

  • 注册中心:使用 Nacos 作为注册中心。
  • 网关服务:使用 Spring Cloud Gateway 实现 API 网关。
  • 业务服务:提供一些业务接口,供客户端调用。

依赖配置

在每个服务的 pom.xml 文件中添加如下依赖:(依赖是 Spring Cloud Alibaba Nacos Config 组件的核心依赖,它将自动集成 Nacos Config 功能,从而实现对配置信息的统一管理。)

<dependency>  <groupId>org.springframework.cloud</groupId>    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>    <version>2.2.6.RELEASE</version>
</dependency>

配置文件

在每个服务的 application.yml 文件中添加如下配置:

# 使用 Nacos 作为配置中心
spring:
  application:
    name: service-product
  cloud:
    nacos:
      config:
        server-addr: localhost:8848 # nacos的服务端地址
        file-extension: yaml # 配置文件格式
  profiles:
    active: dev # 环境标识<br/>

上述配置表示使用 Nacos 作为配置中心,在初始化时将会自动从 Nacos 服务器拉取指定的配置信息,并将其转换为 Spring Boot 配置属性。

其中,${nacos.server-addr} 表示 Nacos 服务器地址,可以在应用启动前通过 -D 参数进行指定;${spring.application.name} 则表示当前服务的名称,这个属性会在后面的配置文件中使用到。

示例代码

以业务服务为例,代码如下:(两种方法,推荐第二种注解的方式。)

package com.dengxiyan.shopproduct.controller;
 
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.web.bind.annotation.*;
 
@RestController
@RequestMapping("/nacos-config")
@RefreshScope
public class NacosConfigController {
    @Autowired
    private ConfigurableApplicationContext applicationContext;
    //1 硬编码方式
    @GetMapping("/test1")
    public String nacosConfingTest1() {
        return applicationContext.getEnvironment().getProperty("config.appName");
    }
 
    @Value("${config.appName}")
    private String appName;
    //2 注解方式
    @GetMapping("/test2")
    public String nacosConfingTest2() {
        return appName;
    }
 
}<br/>

上述代码是一个简单的控制器类,用于返回指定 ID 的用户信息。其中,${server.port} 是一个配置属性,它会在应用启动时自动从 Nacos 服务器拉取,并赋值给 port 变量。

验证结果

启动所有服务后,我们可以通过以下步骤验证结果:

  1. 访问 Nacos 控制台,查看业务服务的配置信息是否已经成功注册到 Nacos 服务器上。
  2. 访问网关服务的接口,观察请求是否正确路由到了业务服务上,并返回了正确的结果。

通过这个例子,我们可以看到 Nacos 在微服务中的应用非常广泛,它提供了灵活的配置管理、服务发现和健康检查等功能,帮助开发者快速构建可靠的分布式系统。

正文到此结束
该篇文章的评论功能已被站长关闭
本文目录