• 补知识点:Feign、Nacos配置中心(命名空间、配置分组)


    一、Feign的应用

    和前面的Feign笔记是一样的,不过这里更深刻的理解一下

     使用Feign的整体步骤就分为以下几个步骤:

    1、引入open-feign依赖坐标

    2、编写一个接口,告诉springCloud这个接口需要调用远程服务

    3、在启动类当中开启远程调用功能注解

    4、自动装配接口,调用功能方法

    具体步骤演示如下所示:

     假定现在有两个微服务,一个是gulimall-coupon服务、一个是gulimall-member服务,现在的需求是:

            gulimall-member服务向gulimall-coupon服务发送远程服务调用,简单的理解就是说gulimall-member服务模块想要调用到gulimall-coupon服务模块中的某个功能

    第一步:引入open-feign依赖坐标

            比如说A服务远程调用B服务,那么就在A服务的pom依赖坐标下导入open-feign依赖坐标,我们这里是gulimall-member服务远程调用gulimall-coupon服务,因此就需要在gulimall-member服务中导入依赖坐标

     

    第二步:编写一个Fegin接口

    假定gulimall-member服务想要远程调用的就是gulimall-coupon服务中的下面这个功能:

     

    确定好gulimall-member服务想要远程调用的某个服务的某个功能之后,那么就可以在gulimall-member服务当中编写Feign接口了:

     

    第三步:在启动类当中开启远程调用功能注解

    A服务远程调用B服务的话,就在A服务启动类上加上@EnableFeignClients注解即可。

     

    第四步:测试

     

     

    二、Nacos配置中心 - 命名空间

     

    在实际的开发过程中,我们肯定不会只用这一个public为名的空间来放置配置文件,毕竟简单的来说,一旦微服务的配置文件过多之后如果都放入在这一个public为名的空间中的话,那么就会非常的混乱。

    2.1、使用不同命名空间场景1

    并且我们项目上线的过程中,肯定也要经过开发、测试、生产、上线等一系列的操作,那么我们肯定就需要多个命名空间来存放配置文件了,毕竟我们测试的时候使用到的配置文件命令空间总不能和开发、上线时候用的命名空间是同一个吧,那不就完犊子了吗,太乱了。

    因此我们就可以创建出多个不同环境的命名空间,然后用来存放配置文件 

    创建不同环境的命名空间操作过程:

     

     通过上面的方式创建出多个环境空间之后:

     

     此时的话,比如我们点击dev进入到开发环境,我们知道我们这个dev开发环境是刚刚新创建的,所以还没有添加一些配置文件,那么现在的话我们就可以把开发中所用到的一些配置文件创建到dev开发环境空间当中了(创建的过程和在public环境下一样,点击加号,然后创建配置文件即可):

     

     

     

    nacos配置中心中dev开发环境中有了配置文件之后,我们该如何在微服务中获取到开发环境中的配置文件数据呢:

     

     

    其他的几个不同的环境空间的使用方式和上面相同,这里就不再演示了~

    2.2、使用不同命名空间场景2

    我们也可以每个微服务使用一个不同的命名空间,这样就会更加的清晰,比如我们gulimall-coupon服务,给他也搞一个命名空间,这样的话这个服务使用到的nacos配置中心的配置文件就放入到该服务对应的命名空间中去,以后用的时候就直接去这个命名空间中找想用的配置文件就可以了。

    使用的操作过程和上面一样,也是新创建好命名空间后,然后在服务的bootstrap配置文件中添加一个namespace属性 配置上对应的命名空间id即可,其他的操作都一样。

     

    三、Nacos配置中心 - 配置分组

     

    我们现在比如说在dev空间下再创建一个gulimall-coupon.properties为名的配置文件(不再是上面的组):

     

     

    现在有个问题就是:我们该如何获取到1111组下的该配置文件数据信息呢:

    注意:如果在bootstrap配置文件中,不加这个group指定组名的话,就会默认指定DEFAULT_GROUP为名的组名,那么就会获取到的是DEFAULT_GROUP为组名的配置文件中的数据信息,不再是1111为组名的配置文件中的数据信息

     同理如果想获取默认情况下的组中的配置文件中的数据的话,只需要把那个组名换成默认的那个组名即可。

     

  • 相关阅读:
    故障分析 | Greenplum 集群 standby 故障处理
    CSS3-多列布局
    P02014093施豪杰信息论作业
    数据库MySQL、SQLServer、Oracle、PostgreSQL各数据类型与java类型对应表,方便查看
    Hbase底层原理简介(一)
    抖音矩阵系统源码,抖音矩阵系统源码,抖音矩阵系统源码,抖音矩阵系统源码,抖音矩阵系统源码,抖音矩阵系统源码。
    javascript-基础知识
    竞赛选题 深度学习 大数据 股票预测系统 - python lstm
    iOS WKWebView H5微信、支付宝支付跳转
    webserver(二)
  • 原文地址:https://blog.csdn.net/lwj_07/article/details/128149405