美文网首页spring-...
nacos-01 启动nacos的一些问题

nacos-01 启动nacos的一些问题

作者: whmyahoo | 来源:发表于2020-08-20 16:32 被阅读0次

    今天在使用alinacos 进行spring cloud服务注册、发现、与治理时碰到了一些问题。现记录如下,有需要的同学可以参考下。

    注意几点:

        启动的顺序,不能搞错。否则会有错误。

        发布配置的api的请求方式为post ,

        配置的值根据你的配置上下文的格式不同而有所不同,如yml则值为  key: value  冒号后要有一个空格,properties格式的话,值为key=value,一个是等号,一个是冒号。。

        服务发现和注册的配置与配置变更的配置第四个单词是不相同的,一个是config,一个是discovery:

                spring.cloud.nacos.config.server-addr=127.0.0.1:8848

            spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848


    1、必须先启动nacos,启动方式:Nacos Quick Start

    2、在nacos新建一个配置项,配置项的名称就是nacos中注册服务的dataId,命名规则为:

            ${prefix}-${spring.profiles.active}.${file-extension}

            prefix:默认值为spring.application.name 即服务启动的名称,也可以通过spring.cloud.nacos.config.prefix这个配置项来手动配置    

            spring.profiles.active:的值对应当前spring boot活动环境的名称,配置方式可以参考spring boot的配置。如果spring.profiles.active的值为空,那么相应的连字符"-"也将删除,即dataId的格式为${prefix}.${file-extension}

            file-extension:是spring cloud配置上下文的格式。可以通过spring.cloud.nacos.config.file-extension进行配置,目前只支持properties and yaml两种格式。示例spring.cloud.nacos.config.file-extension=properties    或者   yml

            注意:这些配置项都需要写到bootstrap.yml或者 bootstrap.properties文件中。

    3、一旦nacos服务器启动完成,就可以通过以下几个步骤来测试 配置动态更新了。

        a、 新建一个spring cloud项目,添加如下maven依赖:

            <dependencies>

                <dependency>

                    <groupId>org.springframework.boot</groupId>

                    <artifactId>spring-boot-starter-web</artifactId>

                    <version>2.1.9.RELEASE</version>

                </dependency>

                <dependency>

                    <groupId>com.alibaba.cloud</groupId>

                    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>

                    <version>2.1.1.RELEASE</version>

            </dependency>

    </dependencies> 

            注意:spring-cloud-starter-alibaba-nacos-config各版本对应的spring boot兼容版本如下表:

                spring-cloud-starter-alibaba-nacos-config                               spring boot

                     2.1.x.RELEASE                                                                           2.1.x

                    2.0.x.RELEASE                                                                           2.0.x 

                    1.5.x.RELEASE                                                                            1.5.x

        b、在bootstrap.yml中配置nacos服务器的地址并且指定应用的名称(即第二步配置的dataId).

    c、新建一个controller来测试配置的自动更新,新建的controller中需要添加一个spring boot的原生注解:@RefreshScope

           代码如下:

    d、现在可以启动应用程序了,如果启动正常结果如下:

    注意:这一步我试了好几次才测试通过,因为之前没有先启动nacos,并且在nacos服务器上添加一个配置项,即上面的第二个步骤,所以一直测试不通过,启动结果如下:

    f、测试动态修改配置的值:通过调用nacos的开放api来发布配置信息,

        url:http://192.168.10.202:8848/nacos/v1/cs/configs?dataId=example-dev.yml&group=DEFAULT_GROUP&content=useLocalCache=false

    注意两点:

        》这是个post接口,可以通过postman来调用 ,我就是用postman来调用的,

        》如果你的配置文件格式是yml,那么content字段的值对应的也应该修改为如下内容 :useLocalCache:false,这里是冒号而不是等号

    相关文章

      网友评论

        本文标题:nacos-01 启动nacos的一些问题

        本文链接:https://www.haomeiwen.com/subject/hjzsjktx.html