根据配置参数决定使用nacos或是eureka

不涉及业务代码,应该可公开吧,理解非常浅薄,仅仅作为个人笔记,只能内网,贴照片了
需求:gateway(其他应用也行)根据配置参数指定使用nacos或eureka
效果:
当改配置为nacos时,本地服务注册到nacos上去,eureka挂掉
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
使用nacos时注意把register-enabled注册改成true,否则直接读的是服务器上的nacos配置
在这里插入图片描述

当改配置为eureka时,本地服务注册到eureka上去, nacos挂掉
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

思路:
1、之前从未搭建过,快速在网上随便找了一个视频两倍速过了一遍gateway、nacos、eureka理论
2、百度gateway集成它俩配置,直到单独分别注册成功,这时还没做好指定哪个
3、考虑到具体使用哪个,想了做个实例加载时的过滤,百度先从gateway过滤器开始,但是大概只有全局过滤器,用来鉴权的。于是考虑到先看nacos自动装配的源代码。大概知道了他的流程
源码(不分析eureka了大概都差不多吧,仅仅大概能看懂个流程,不用细看怎么设计的,先读懂就好)
springboot加载时根据pom中依赖去找这个类(入口),里面
有三个bean。主要是第一个和第三个核心
第一个和第二个

在这里插入图片描述
第三个bean
在这里插入图片描述
先看第一个,其实就是从配置文件读了配置装到XXProperties里在赋给NacosServiceRegistry,可以点进去
在这里插入图片描述
进去这样,把配置文件的nacos配置信息加载进来,对应路径
在这里插入图片描述
在这里插入图片描述
这个类里有个init(),通过注解(注解具体实现先不用看了)加载,这方法就是把配置文件的信息封装了一下给了metadata

在这里插入图片描述
在这里插入图片描述
封装完就是给第二个bean初始化时调的,第二个bean点进去获取这个metadata在这里插入图片描述
第二个bean这个方法里我猜就是映射好配置信息定制一个消费它的入口,但点不进去源码了看不了了。
在这里插入图片描述
这就是发现时注入的bean,可以理解为消费者,同理,不分析了
在这里插入图片描述
注册时的第三个bean
点进去,其实就是把第一个第二个bean都加载到这个方法里
在这里插入图片描述

点进去后有个注册的方法,这时候才开始注册了
在这里插入图片描述
这个注册的方法就是加载第三个bean时一路调的
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

看完后写了一个过滤器。Spring Boot在启动的时候,根据SPI机制会去加载/spring-cloud-starter-alibaba-nacos-discovery-2.2.1.RELEASE.jar/META-INF/spring.factories中的自动配置类,涉及到注册的是com.alibaba.cloud.nacos.registry.NacosServiceRegistryAutoConfiguration
所以在过滤器里适配了com.alibaba.cloud.nacos.registry.NacosServiceRegistryAutoConfiguration就好了。
具体实现代码:
过滤器里的注册项
在这里插入图片描述
在resources下建META-INF的文件夹,META-INF下建spring.factories的文件如图:作用是springboot启动后会根据这个地址去先加载自定义的过滤器
在这里插入图片描述
映射到这个过滤器里进行判断要装载nacos还是eureka
在这里插入图片描述
在bootstrap.yml配置registry和eureka是否根据ip注册,以及每个环境里配置eureka的注册地址
在这里插入图片描述
在这里插入图片描述
增加注解
在这里插入图片描述

eureka源码没看,springboot大概装载都差不多吧

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值