SpringCloud整合Nacos实现流程详解

 更新时间:2020年09月30日 10:03:51   投稿:yaominghui  
这篇文章主要介绍了SpringCloud整合Nacos实现流程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

1: Nacos搭建可以参考 https://www.jb51.net/article/196842.htm

SpringCloud 版本

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-dependencies</artifactId>
    <version>Greenwich.SR2</version>
    <type>pom</type>
    <scope>import</scope>
</dependency>

Nacos pom

<!--配置中心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

<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 配置

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
描述:开发环境

配置中心功能-测试

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

将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 类型。

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

启动日志:

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 中的配置,启动后在服务列表中看到我们的项目

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

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

<dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>

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

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Shiro与Springboot整合开发的基本步骤过程详解

    Shiro与Springboot整合开发的基本步骤过程详解

    这篇文章主要介绍了Shiro与Springboot整合开发的基本步骤,本文结合实例代码给大家介绍整合过程,感兴趣的朋友跟随小编一起看看吧
    2023-06-06
  • Java swing五子棋的实现方法

    Java swing五子棋的实现方法

    这篇文章主要为大家详细介绍了Java swing五子棋的实现方法,Java开发图形界面程序五子棋的实现方式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • 用Java实现连连看小游戏

    用Java实现连连看小游戏

    这篇文章主要为大家详细介绍了用Java实现连连看小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • jar命令的用法详解

    jar命令的用法详解

    这篇文章主要介绍了jar命令的用法,非常实用,需要的朋友可以参考下
    2014-08-08
  • Java 8 中 Function 接口使用方法介绍

    Java 8 中 Function 接口使用方法介绍

    这篇文章主要介绍了Java 8中 Function接口使用方法介绍,Java8中提供了一个函数式接口Function,这个接口表示对一个参数做一些操作然后返回操作之后的值
    2022-06-06
  • 关于Jackson的JSON工具类封装 JsonUtils用法

    关于Jackson的JSON工具类封装 JsonUtils用法

    这篇文章主要介绍了关于Jackson的JSON工具类封装 JsonUtils用法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • MyBatis-Plus中自动填充功能的用法示例详解

    MyBatis-Plus中自动填充功能的用法示例详解

    有些时候我们可能会有这样的需求,插入或者更新数据时,希望有些字段可以自动填充数据,比如密码、version、注册时默认的用户角色等,在MP中提供了这样的功能,可以实现自动填充功能,需要的朋友可以参考下
    2022-12-12
  • Oracle JDBC连接BUG解决方案

    Oracle JDBC连接BUG解决方案

    这篇文章主要介绍了Oracle JDBC连接BUG解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • java多线程开发ScheduledExecutorService简化方式

    java多线程开发ScheduledExecutorService简化方式

    这篇文章主要为大家介绍了java多线程开发ScheduledExecutorService的简化方式,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2022-03-03
  • Servlet+JavaBean+JSP打造Java Web注册与登录功能

    Servlet+JavaBean+JSP打造Java Web注册与登录功能

    比作MVC的话,控制器部分采用Servlet来实现,模型部分采用JavaBean来实现,而大部分的视图采用Jsp页面来实现,接下来我们就来详细看看如何用Servlet+JavaBean+JSP打造Java Web注册与登录功能
    2016-05-05

最新评论