spring-...

nacos-01 启动nacos的一些问题

2020-08-20  本文已影响0人  whmyahoo

今天在使用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,这里是冒号而不是等号

上一篇 下一篇

猜你喜欢

热点阅读