java

推荐列表 站点导航

当前位置:首页 > 脚本编程 > java >

SpringCloud整合Nacos实现流程详解

来源:网络  作者:网友投稿  发布时间:2021-01-07 16:12
这篇文章主要介绍了SpringCloud整合Nacos实现流程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一...

1: Nacos搭建可以参考

SpringCloud 版本

1

2

3

4

5

6

7

 

<dependency>

    <groupId>org.springframework.cloud</groupId>

    <artifactId>spring-cloud-dependencies</artifactId>

    <version>Greenwich.SR2</version>

    <type>pom</type>

    <scope>import</scope>

</dependency>

 

Nacos pom

1

2

3

4

5

6

7

8

9

10

11

12

13

 

<!--配置中心pom-->

    <dependency>

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

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

      <version>${alibaba-nacos-config.version}</version>

    </dependency>

 

<!--服务发现pom-->

    <dependency>

      <groupId>org.springframework.cloud</groupId>

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

      <version>${alibaba-nacos-discovery.version}</version>

    </dependency>

 

数据库pom

1

2

3

4

5

6

7

8

9

10

 

<dependency>

      <groupId>com.alibaba</groupId>

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

      <version>${druid.version}</version>

    </dependency>

    <dependency>

      <groupId>mysql</groupId>

      <artifactId>mysql-connector-java</artifactId>

      <version>${mysql.conn.version}</version>

    </dependency>

 

order 项目 bootstrap.yml 配置

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

 

spring:

 application:

  name: order-server

 profiles:

  active: dev

 cloud:

  nacos:

   config:

    server-addr: 10.0.0.51:8848 # 配置中心nacos的地址

    file-extension: yml # 配置文件后缀(格式)

    group: business-app # 分组名称

    namespace: ${spring.profiles.active} # 命令空间,可以用来区分不同的环境

   discovery:

    server-addr: 10.0.0.51:8848 # 服务发现地址nacos的地

    namespace: ${spring.profiles.active}

 

server: port: 8056

在 Nacos的控制台左侧找到命名空间的菜单,新增命名空间

命名空间id : dev
命名空间名称: dev
描述:开发环境

配置中心功能-测试

在配置管理-》配置列表右侧,找到 + 的标志,点击后新增配置

SpringCloud整合Nacos实现流程详解

将yml 中的配置添入进去

之所以需要配置 spring.application.name ,是因为它是构成 Nacos 配置管理 dataId字段的一部分。

在 Nacos Spring Cloud 中,dataId 的完整格式如下:

${prefix}-${spring.profiles.active}.${file-extension}
prefix 默认为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置。
spring.profiles.active 即为当前环境对应的 profile,详情可以参考 Spring Boot文档。 注意:当 spring.profiles.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 ${prefix}.${file-extension}
file-exetension 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持 properties 和 yaml 类型。

上面配置好后,可以启动项目

启动日志:

1

2

3

4

 

Ignore the empty nacos configuration and get it based on dataId[order-server.yml] & group[business-app]

2020-09-16 14:05:07.053 WARN 27342 --- [      main] c.a.c.n.c.NacosPropertySourceBuilder   : Ignore the empty nacos configuration and get it based on dataId[order-server-dev.yml] & group[business-app]

2020-09-16 14:05:07.053 INFO 27342 --- [      main] b.c.PropertySourceBootstrapConfiguration : Located property source: CompositePropertySource {name='NACOS', propertySources=[NacosPropertySource {name='order-server-dev.yml,business-app'}, NacosPropertySource {name='order-server.yml,business-app'}, NacosPropertySource {name='order-server,business-app'}]}

2020-09-16 14:05:07.077 INFO 27342 --- [      main] com.order.OrderApplication        : The following profiles are active: dev

 

从日志可以看到他会从nacos上匹配 based on dataId[order-server-dev.yml] & group[business-app] 和 [order-server.yml] & group[business-app] 配置文件。并且项目也是启动成功的,因为项目中加入了数据库的pom,如果没有获取到配置会启动失败。

服务发现功能-测试

按照上面yml 中的配置,启动后在服务列表中看到我们的项目

SpringCloud整合Nacos实现流程详解

按照上面的配置,再创建一个项目 account-server ,注意修改新项目的spring.application.name

在order 项目的pom中添加feign 配置

1

2

3

4

 

<dependency>

      <groupId>org.springframework.cloud</groupId>

      <artifactId>spring-cloud-starter-openfeign</artifactId>

</dependency>

 

测试用户下单成功后,扣减帐户钱。order 调用 account 服务,使用feign,跟一般的feign使用一样。 启动account服务

SpringCloud整合Nacos实现流程详解

代码目录 : https://gitee.com/zhangxingsheng/seata-demo

相关热词:

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!

本文地址: https://v30.fanwenzhu.com/jiaob/java/11817.shtml

Copyright © www.juheyunku.com      关于 | 合作 | 声明 | 联系 | 更新 | 地图 | Tags

SpringCloud整合Nacos实现流程详解

2021-01-07 编辑:网友投稿

1: Nacos搭建可以参考

SpringCloud 版本

1

2

3

4

5

6

7

 

<dependency>

    <groupId>org.springframework.cloud</groupId>

    <artifactId>spring-cloud-dependencies</artifactId>

    <version>Greenwich.SR2</version>

    <type>pom</type>

    <scope>import</scope>

</dependency>

 

Nacos pom

1

2

3

4

5

6

7

8

9

10

11

12

13

 

<!--配置中心pom-->

    <dependency>

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

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

      <version>${alibaba-nacos-config.version}</version>

    </dependency>

 

<!--服务发现pom-->

    <dependency>

      <groupId>org.springframework.cloud</groupId>

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

      <version>${alibaba-nacos-discovery.version}</version>

    </dependency>

 

数据库pom

1

2

3

4

5

6

7

8

9

10

 

<dependency>

      <groupId>com.alibaba</groupId>

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

      <version>${druid.version}</version>

    </dependency>

    <dependency>

      <groupId>mysql</groupId>

      <artifactId>mysql-connector-java</artifactId>

      <version>${mysql.conn.version}</version>

    </dependency>

 

order 项目 bootstrap.yml 配置

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

 

spring:

 application:

  name: order-server

 profiles:

  active: dev

 cloud:

  nacos:

   config:

    server-addr: 10.0.0.51:8848 # 配置中心nacos的地址

    file-extension: yml # 配置文件后缀(格式)

    group: business-app # 分组名称

    namespace: ${spring.profiles.active} # 命令空间,可以用来区分不同的环境

   discovery:

    server-addr: 10.0.0.51:8848 # 服务发现地址nacos的地

    namespace: ${spring.profiles.active}

 

server: port: 8056

在 Nacos的控制台左侧找到命名空间的菜单,新增命名空间

命名空间id : dev
命名空间名称: dev
描述:开发环境

配置中心功能-测试

在配置管理-》配置列表右侧,找到 + 的标志,点击后新增配置

SpringCloud整合Nacos实现流程详解

将yml 中的配置添入进去

之所以需要配置 spring.application.name ,是因为它是构成 Nacos 配置管理 dataId字段的一部分。

在 Nacos Spring Cloud 中,dataId 的完整格式如下:

${prefix}-${spring.profiles.active}.${file-extension}
prefix 默认为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置。
spring.profiles.active 即为当前环境对应的 profile,详情可以参考 Spring Boot文档。 注意:当 spring.profiles.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 ${prefix}.${file-extension}
file-exetension 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持 properties 和 yaml 类型。

上面配置好后,可以启动项目

启动日志:

1

2

3

4

 

Ignore the empty nacos configuration and get it based on dataId[order-server.yml] & group[business-app]

2020-09-16 14:05:07.053 WARN 27342 --- [      main] c.a.c.n.c.NacosPropertySourceBuilder   : Ignore the empty nacos configuration and get it based on dataId[order-server-dev.yml] & group[business-app]

2020-09-16 14:05:07.053 INFO 27342 --- [      main] b.c.PropertySourceBootstrapConfiguration : Located property source: CompositePropertySource {name='NACOS', propertySources=[NacosPropertySource {name='order-server-dev.yml,business-app'}, NacosPropertySource {name='order-server.yml,business-app'}, NacosPropertySource {name='order-server,business-app'}]}

2020-09-16 14:05:07.077 INFO 27342 --- [      main] com.order.OrderApplication        : The following profiles are active: dev

 

从日志可以看到他会从nacos上匹配 based on dataId[order-server-dev.yml] & group[business-app] 和 [order-server.yml] & group[business-app] 配置文件。并且项目也是启动成功的,因为项目中加入了数据库的pom,如果没有获取到配置会启动失败。

服务发现功能-测试

按照上面yml 中的配置,启动后在服务列表中看到我们的项目

SpringCloud整合Nacos实现流程详解

按照上面的配置,再创建一个项目 account-server ,注意修改新项目的spring.application.name

在order 项目的pom中添加feign 配置

1

2

3

4

 

<dependency>

      <groupId>org.springframework.cloud</groupId>

      <artifactId>spring-cloud-starter-openfeign</artifactId>

</dependency>

 

测试用户下单成功后,扣减帐户钱。order 调用 account 服务,使用feign,跟一般的feign使用一样。 启动account服务

SpringCloud整合Nacos实现流程详解

代码目录 : https://gitee.com/zhangxingsheng/seata-demo

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供学习参考!
本文地址为 https://v30.fanwenzhu.com/jiaob/java/11817.shtml

相关文章

风云图片

推荐阅读

返回java频道首页