nacos启动

nacos版本: 2.2.3(目前最新)

配置
用户登录配置

在官网被成为鉴权,跳转官网鉴权
修改nacos-server-2.2.3\nacos\conf\application.properties
用户登录配置
nacos.core.auth.enabled : 开启鉴权
nacos.core.auth.server.identity.key : 登录名
nacos.core.auth.server.identity.value : 密码
nacos.core.auth.plugin.nacos.token.secret.key : 秘钥串,官网解释:自定义密钥,推荐将配置项设置为Base64编码的字符串,且原始密钥长度不得低于32字符。

配置中心持久化到mysql

conf文件夹下有一个文件叫mysql-schema.sql,这个文件要先在mysql数据库中执行,一定一定。没有执行吃了亏白浪费了一个小时
官网给出的介绍:
集群部署-查看4.确定数据源
系统参数说明-查看congif模块描述
mysql-schema.sql
然后就是mysql在application.priperties中的配置
mysql配置
spring.datasource.platform : 不知道干嘛的,官网没有给出解释
spring.sql.init.platform : 不知道干嘛的,官网没有给出解释
db.num : 数据源的数量
db.url.0 : 连接mysql的串,有网上说早期版本这个串默认的有问题,暂时没有遇到
db.user.0 : 用户名
db.password.0 : 密码

启动
修改参数

由于我是在windows上运行的单机,所以还需要改bin目录下startup.cmd文件中的几个参数
set “JAVA=D:\jdk\jdk-17.0.6\bin\java.exe” : 现在windows版本java一般都是安装包,不用设置JAVA_HOME,所以需要改一下java.exe的目录
set MODE=“standalone” : 设置单机启动模式,如果不想改,可以使用命令启动指定单机,不过比较麻烦
官网部署手册
启动参数修改
最后使用conf下的startup.cmd命令启动nacos,登录http://localhost:8848/nacos/index.html后就可以进入到主页面了
nacos主页面

版本对应

springboot版本: 3.0.7
springCloud版本: 2022.0.3

springCloud与springboot版本对应关系

因为springCloud是基于springboot的,所以springCloud对应springboot要晚一下,最新的springboot版本是用不了springCloud的,这一点一定要注意
以下是框架对应springboot的各个版本
对应springboot版本
打开之后是这个样子的
springboot版本对应
不过不要慌,格式一下,查询springCloud就能找到与springboot对应的版本
springCloud对应springboot版本
可以看到,springCloud最新版本对应springboot版本只支持到了3.0.X

nacos客户端版本选择

在踩了很多坑之后,终于找到了正确的nacos的版本选择
maven中央仓库地址
在nacos官网,springboot集成nacos客户端,
官网集成springboot
可以看到,官网中并没有对spirngboot3.x集成的描述,所以去maven中央仓库看一下
nacos-config-spring-boot-starter
发现此jar包nacos只更新到了2022年,所以总结就是nacos客户端对springboot的支持只到了2.x版本,所以如果是使用了springboot3.x版本的小伙伴,还是老老实实用springCloud吧,看下图可以看出,nacos对于springCloud的支持一直到了2023年
spring-cloud-starter-alibaba-nacos-discovery

java连接nacos

创建命名空间以及配置文件
创建命名空间

点击新建命名空间,输入名字与描述,可以新建命名空间,可以看到,我新建了一个develop的命名空间
public是一个特殊的命名空间,如果在配置的时候,没有指定命名空间,就会出现在public下
新建命名空间develop

新建配置中心文件

点击配置列表,在配置管理下边可以切换命名空间
可以看到,我新建了一个common文件,组名为默认的,
在新建的时候,可以看到,允许自定义组名
配置中心支持多种文件格式
配置中心
新建文件

pom文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.0.7</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>nacosdemo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>pom</packaging>
    <name>nacosdemo</name>
    <description>nacosdemo</description>
    <properties>
        <java.version>17</java.version>
        <spring-cloud.version>2022.0.3</spring-cloud.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</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>
        <!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-dependencies -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>${spring-cloud.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.alibaba.cloud/spring-cloud-starter-alibaba-nacos-config -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
            <version>2022.0.0.0-RC2</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.alibaba.cloud/spring-cloud-starter-alibaba-nacos-discovery -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            <version>2022.0.0.0-RC2</version>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.graalvm.buildtools</groupId>
                <artifactId>native-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>
application.properties

如果不适用配置中心的话,必须设置spring.cloud.config.import-check.enable=false,否则应用不会启动

spring:
  config:
    import:
      - optional:nacos:${spring.cloud.nacos.config.name}#配置中心创建的文件名字,此处是引用下边的名字
  #      - optional:nacos:${spring.cloud.nacos.config.name}.${spring.cloud.nacos.config.file-extension}
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848#服务注册中心地址
        username: nacos#用户名
        password: nacos#密码
        namespace: 05fa9747-9ff9-4575-a3bf-fca45b0ec190#命名空间
      config:
        name: common#配置中心文件名字
        group: DEFAULT_GROUP#配置中心文件对应的组名
        server-addr: localhost:8848#配置中心地址
        namespace: 05fa9747-9ff9-4575-a3bf-fca45b0ec190#配置中心命名空间
#        import-check:
#          enabled: false
        file-extension: yml#配置中心文件类型
        username: nacos#配置中心用户名
        password: nacos#配置中心密码
  application:
    name: nacosSimpleDemo#服务名
启动应用

启动应用之后,可以看到在develop下,多了一个名为nacosSimpleDemo的服务
服务列表

修改配置中心文件

可以看到,我在配置中心只配置了server.port,那么修改这个属性的值为8070,再在本地telnet8070端口,是不通的
所以配置中心对于一些变量的修改,无法做到实时生效。
但是,可以用作系统参数配置的场景,或者修改别的可以实时生效的参数
配置中心

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐