iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >关于SpringCloud本地属性覆盖的问题
  • 561
分享到

关于SpringCloud本地属性覆盖的问题

2024-04-02 19:04:59 561人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录SpringCloud本地属性覆盖优先级如下官方给出了解决方案如下springCloudConfig本地配置覆盖远程配置SprinGCloudConfig配置的优先级spring

spring cloud 本地属性覆盖

注:使用版本版本 spring cloud F SR2

当前在项目中使用了Spring cloud 配置中心模式,使用spring.cloud.config.server.overrides对一些公共配置进行下发,比如kafka bus 的server 配置等等,但是在一些特殊情况下需要本地使用其他的kafka配置,所以就有了配置上的冲突。但是远程配置的优先级默认高于本地配置。

优先级如下

  • 1.命令行参数
  • 2.java:comp/env 里的 JNDI 属性
  • 3.JVM 系统属性
  • 4.操作系统环境变量
  • 5.RandomValuePropertySource 属性类生成的 random.* 属性
  • 6.应用以外的 application.properties(或 yml)文件
  • 7.打包在应用内的 application.properties(或 yml)文件
  • 8.在应用 @Configuration 配置类中,用 @PropertySource 注解声明的属性文件
  • 9.SpringApplication.setDefaultProperties 声明的默认属性

所以 本地kafka配置不能生效了。

官方给出了解决方案如下

2.4 Overriding the Values of Remote Properties
The property sources that are added to your application by the bootstrap context are often “remote” (from example, from Spring Cloud Config Server). By default, they cannot be overridden locally. If you want to let your applications override the remote properties with their own System properties or config files, the remote property source has to grant it permission by setting spring.cloud.config.allowOverride=true (it does not work to set this locally). Once that flag is set, two finer-grained settings control the location of the remote properties in relation to system properties and the application’s local configuration:
spring.cloud.config.overrideNone=true: Override from any local property source.
spring.cloud.config.overrideSystemProperties=false: Only system properties, command line arguments, and environment variables (but not the local config files) should override the remote settings.

也就是说

如果想要远程配置优先级高,那么allowOverride设置为false,如果想要本地配置优先级高那么allowOverride设置为true

spring.cloud.config.allowOverride=true

overrideNone为true时本地配置优先级高,包括系统环境变量、本地配置文件等等

spring.cloud.config.overrideNone=true

只有系统环境变量或者系统属性才能覆盖远程配置文件的配置,本地配置文件中配置优先级低于远程配置

spring.cloud.config.overrideSystemProperties=false

看起来很美好,配置下就可以了,但真正配置的时候要注意配置的位置,否则配置加载就会变的很混乱了。

一般配置有三个地方

  • 本地配置
  • 远程 properties
  • config server 下发配置

因为本地优先级低于远程配置,所以建议配置spring.cloud.config.overrideNone=true 在远程git properties中即可。

但是这样配置也会有一点点小坑,因为会默认本地有的配置就会优先采用,比如kafka的本地默认配置

"kafkaBinderDefaultProperties": {
       "spring.kafka.consumer.valueDeserializer": "org.apache.kafka.common.serialization.ByteArrayDeserializer",
       "spring.kafka.producer.keySerializer": "org.apache.kafka.common.serialization.ByteArraySerializer",
       "spring.kafka.consumer.keyDeserializer": "org.apache.kafka.common.serialization.ByteArrayDeserializer",
       "logging.level.kafka.server.KafkaConfig": "ERROR",
       "logging.level.org.I0Itec.zkclient": "ERROR",
       "spring.kafka.producer.valueSerializer": "org.apache.kafka.common.serialization.ByteArraySerializer",
       "logging.level.kafka.admin.AdminClient.AdminConfig": "ERROR"
   }

如果我们想配置kafka序列化的模式比如在远程配置成key string 那就不会生效了,所以在使用的时候要注意类型即可。

总结下:所以,如果想在项目中覆盖远程配置,在远程配置中添加spring.cloud.config.overrideNone=true 即可,千万不要加在本地bootstrap.properties那样会无效的。

Spring Cloud Config本地配置覆盖远程配置

Spring Cloud Config 配置的优先级

远程配置 > 本地配置 > java代码配置

当需要本地配置优先时,可以限制远程配置的优先级

配置

spring:
  cloud:
    config:
      allow-override: true
      override-none: true
      override-system-properties: false

参数解释

  • allow-override:决定override-system-properties是否启用,默认为true,false=禁用用户的配置
  • override-system-properties:用来标识外部配置是否能够覆盖系统属性,默认为true;
  • override-none:当allow-override和override-none同时为true,远程配置的优先级降低,不能覆盖其他配置;

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: 关于SpringCloud本地属性覆盖的问题

本文链接: https://www.lsjlt.com/news/140930.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 关于SpringCloud本地属性覆盖的问题
    目录SpringCloud本地属性覆盖优先级如下官方给出了解决方案如下SpringCloudConfig本地配置覆盖远程配置SpringCloudConfig配置的优先级Spring...
    99+
    2024-04-02
  • 关于css样式被覆盖的问题,及其解决方法
    当你给一个div添加一个class类名的时候,样式未显示的时候 例如: 首先第一步,打开f12标签上查看是否这个类名 此时会出现两种情况 第一种是类名未加上,此时应该查看class是否加错了标签 第二种情况就是,class加上去了,但是样...
    99+
    2023-08-31
    css 前端 html css3 javascript
  • 基于spring同名bean覆盖问题的解决
    目录spring同名bean覆盖问题分为两种情况处理案例如下spring 子类覆盖父类中注入的bean抽象基类另外一个抽象基类controllerspring同名bean覆盖问题 默...
    99+
    2024-04-02
  • 关于iview和elementUI组件样式覆盖无效问题及解决
    目录iview和elementUI组件样式覆盖无效新建一个不含scoped的style标签覆盖组件样式/deep/ 预处理器less下使用Element-ui与IView中的样式覆盖...
    99+
    2024-04-02
  • 关于springcloud集成nacos遇到的问题
    目录springcloud集成nacos遇到的问题1.获取不到配置文件信息2.springcloud 服务注册不上服务列表springcloud无法注册Nacos这是官方推荐一起使用...
    99+
    2024-04-02
  • Java基于分治算法实现的棋盘覆盖问题示例
    本文实例讲述了Java基于分治算法实现的棋盘覆盖问题。分享给大家供大家参考,具体如下:在一个2^k * 2^k个方格组成的棋盘中,有一个方格与其它的不同,若使用以下四种L型骨牌覆盖除这个特殊方格的其它方格,如何覆盖。四个L型骨牌如下图:棋盘...
    99+
    2023-05-30
    java 分治算法 棋盘覆盖
  • 关于vue中标签的属性绑定值渲染问题
    目录标签的属性绑定值渲染问题最终解决办法vue标签属性条件渲染1、v-bind2、v-if和v-show的区别标签的属性绑定值渲染问题 在项目中遇到一个棘手的问题,给span标签添加...
    99+
    2024-04-02
  • 关于Tomcat虚拟路径访问本地图片失败的问题
    开发过程中,把图片放在本地一个磁盘的路径下。网上搜了下,可以使用tomcat虚拟路径访问本地图片。 这样就不用把图片放在整个项目的webapp目录下了。 1.找到tomcat的ser...
    99+
    2024-04-02
  • python 关于高级特性的问题
      1.函数装饰器有什么作用请列举说明  2. Python 垃圾回收机制  3. 魔法函数 _call_怎么使用  4. 如何判断一个对象是函数还是方法  5. @classmethod 和 @staticmethod 用法和区别  6....
    99+
    2023-01-31
    特性 高级 python
  • 关于numpy的版本兼容问题
    关于numpy的版本兼容问题 问题描述 由于需要匹配tensorflow的2.5.0版本,故原有的numpy版本为1.19.5。在安装ax-platform这个库(版本为0.3.1)时,总是会自动更新...
    99+
    2023-09-01
    python pandas 机器学习 tensorflow
  • 关于mysql8.x中insertignore的性能问题
    目录mysql 8.x中insert ignore性能问题mysql insert ignore()函数INSERT IGNORE语句mysql 8.x中insert ignore性...
    99+
    2024-04-02
  • 亚马逊登录时,关于ip地址的问题
    如果您使用的是其他的IP地址作为登录凭据,您需要确保使用的IP地址是唯一的,并且您的VPS服务提供商已经为您分配了一个独立的IP地址。此外,您还需要确保您的VPS服务提供商已经配置了正确的DNS服务器地址,以确保您的用户可以成功地连接到您的...
    99+
    2023-10-27
    亚马逊 地址 ip
  • springcloud本地调试feign调用出现的诡异404问题及解决
    目录本地调试feign调用出现的诡异404问题问题产生技术框架核心代码诡异的404心态springcloud在本地调试的踩坑记录1、在本地调试的时候2、修改配置文件中关于eureka...
    99+
    2024-04-02
  • 关于Python的文本文件转换编码问题
    目录前言 测试数据编码转换代码执行结果说明前言  因为编程的原因,经成会遇到字符编码的问题。如开发工具使用的是UTF-8编码(推荐使用),然后需要导入一个从其它地...
    99+
    2023-05-16
    Python文本文件 文件转换编码
  • 关于将WebSphere Portal5.1.0.2升级到6.0版本的问题。
    前一阵子有人在网上询如何将WebSphere Portal5.1.0.2升级到6.0版本,经过研究得到以下结论:portal5.1.0.2升级到6.0版本还是比较麻烦的。可能会涉及到您Schema页面的重新调试和开发,您自己开发的Portl...
    99+
    2023-06-03
  • 关于Python文本生成的Beam Search解码问题
    目录贪婪搜索是在每个时间步中选择概率最高的单词,也是我们最常用的一种方法,Beam Search不取每个标记本身的绝对概率,而是考虑每个标记的所有可能扩展。然后根据其对数概率选择最合...
    99+
    2024-04-02
  • 关于JavaScript的内存与性能问题解决汇总
    目录一、何为JavaScript内存与性能二、谈谈关于innerHTML的性能问题?1、使用innerHTML的反面教材2、如何解决三、如何解决类似按钮过多问题?四、事件委托的优点有...
    99+
    2024-04-02
  • 关于使用mvndeploy命令将本地jar包上传到maven私服的问题(收藏)
    记录一下,以后少走弯路 前提:已经搭建好nexus maven私服,地址192.168.110.240:9091 在maven的setting.xml中找到<mirrors&g...
    99+
    2024-04-02
  • 亚马逊登录时,关于ip地址的问题有哪些
    不要在同一台电脑(主机)同时操作多个账号,这样可能会导致账号被封禁,而且也不安全。 使用一个IP地址和邮箱地址进行登录时,要确保该邮箱和IP地址是真实的,并且该IP地址可以正常访问该邮箱和IP地址。 使用代理服务器或VPN登录时,要确保代...
    99+
    2023-10-27
    亚马逊 地址 有哪些
  • 关于Vue中img动态拼接src图片地址的问题
    下面看下Vue中img动态拼接:src图片地址,具体内容如下所示: 使用场景:根据后端返回图片标记来匹配本地图片资源 例如:根据后端返回k1标记,前端生成assets/images/...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作