磁盘上的microservice.yaml文件、环境变量中的配置无法覆盖jar包内配置的问题排查方法

微服务框架ServiceComb Service Center是ServiceComb生态系统中的一个服务注册与发现中心,它基于Apache ServiceComb提供可靠的服务管理。Service Center存储有关每个服务实例的详细信息,包括其状态、位置和可用性信息。服务消费者可以使用这些信息来找到并调用这些服务。如果你已经集成了ServiceComb和Spring Boot,可以使用Spring MVC的注解来创建RESTful API。在这个例子中,和是Spring MVC提供的注解,用于定义一个REST服务端点。 阅读详情

21天微服务培训第5天打卡作业中,需要大家在可执行jar包中放置一份microservice.yaml配置文件来覆盖jar包内的配置,然后用环境变量配置来覆盖配置文件的配置。部分同学会发现磁盘目录里的microservice.yaml文件、环境变量无法起到覆盖配置的效果,原因通常有以下几种:

 

1. microservice.yaml文件没有被加载

 

查看服务的cse.log日志文件,搜索关键字"create local config",查看其下的加载记录,可以看到类似这样的内容

1

2

3

4

5

[2019-03-17 14:36:39,494/CST][main][INFO]create local config: org.apache.servicecomb.config.ConfigUtil.createLocalConfig(ConfigUtil.java:114)

[2019-03-17 14:36:39,494/CST][main][INFO] jar:file:/private/tmp/yhs/lib/java-chassis-core-1.1.0.B036.jar!/microservice.yaml. org.apache.servicecomb.config.ConfigUtil.createLocalConfig(ConfigUtil.java:116)

[2019-03-17 14:36:39,495/CST][main][INFO] jar:file:/private/tmp/yhs/lib/cse-solution-service-engine-2.3.62.jar!/microservice.yaml. org.apache.servicecomb.config.ConfigUtil.createLocalConfig(ConfigUtil.java:116)

[2019-03-17 14:36:39,495/CST][main][INFO] jar:file:/private/tmp/yhs/helloworld-provider-0.0.1-SNAPSHOT.jar!/microservice.yaml. org.apache.servicecomb.config.ConfigUtil.createLocalConfig(ConfigUtil.java:116)

[2019-03-17 14:36:39,495/CST][main][INFO] file:/private/tmp/yhs/microservice.yaml. org.apache.servicecomb.config.ConfigUtil.createLocalConfig(ConfigUtil.java:116)

表示总共加载了四份microservice.yaml配置文件,前三份是jar包内的,最后一份是磁盘文件。这里的microservice.yaml文件是越靠后的优先级越高。

如果没有看到加载磁盘文件,只加载了jar包内的microservice.yaml文件,则说明你的microservice.yaml文件没被加载。可能的原因有多种:

- microservice.yaml文件的文件名不对、存放目录不对

- 打包插件配置不对,jar包所在目录不在classpath中

前者需要你自行检查配置文件,后者可以通过将jar包当做zip包解压,查看META目录下的MANIFEST.MF文件来排查。如果的确没有将"."目录加入到classpath中,则需要检查你在pom文件中设置的打包插件是否有问题,建议和demo文件比对一下。

MANIFEST.MF文件示例:

image.png

 

2. microservice.yaml文件的字符集、换行符问题

 

推荐使用UTF-8字符集和Unix换行符以避免可能出现的问题。

 

3. 有旧provider服务的JVM进程残留,占用了端口

 

有些同学可能没有将旧的provider服务的实例关闭,导致旧provider服务的进程还在运行,占用着8080端口。此时新的provider服务启动时无法监听8080端口,即使它加载了配置文件,由于你发送的请求是由旧provider服务实例来处理的,你还是看不到响应消息有任何变化。

此时可以执行 jps -l 命令检查一下是否有遗留的provider服务实例进程。如果有进程残留建议先全部kill掉再重新启动provider服务。

image.png

Springboot入门 微服务,启动器,主程序启动,yaml语法,thymeleaf模板引擎 什么是SpringBoot ​ Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置,拒绝xml配置,解决SSM的配置第i与问题 ​ 能够迅速开发web应用 ​ 核心:自动装箱 Springboot的特点 约定大于配置 继承了大量常用的第三库配置:Redis,MongoDB,JPa,RabbitMQ,Quartz 内嵌式容器简化web项目 没有多余代码生成和x 阅读详情

相关推荐

软件工厂即分布式系统:构建高可用CI/CD的架构、挑战与实战

在软件工程领域,持续集成与持续交付(CI/CD)是现代研发效能的核心支柱,它通过自动化工具链将代码从提交到部署的流程标准化。其底层原理借鉴了分布式系统的设计思想,当各个CI/CD组件(如代码仓库、构建服务器、制品库)部署在不同网络节点并通过消息传递协作时,整个流水线便构成了一个分布式系统。这一架构带来了显著的技术价值:它提升了自动化水平、加快了交付频率,并增强了流程的可重复性。然而,它也引入了分布式系统的典型挑战,包括网络分区、部分故障、状态一致性与并发竞态等问题。在实际应用场景中,尤其是在微服务与云原生架

weixin_33994429的博客 430

serviceComb的microservice.yaml服务配置

负载均衡策略 场景描述   ServiceComb提供了基于Ribbon的负载均衡方案,用户可以通过配置文件配置负载均衡策略,当前支持随机、顺序、基于响应时间的权值等多种负载均衡路由策略。 配置说明   负载均衡策略在microservice.yaml文件中配置,配置项为servicecomb.loadbalance.[MicroServiceName].[property name...

tiger_Angle 3618

SpringCloud.microservice.zip

SpringCloud入门级别项目,适合刚入门的看,里面有2个微服务项目和一个注册中心项目,根据博客的讲解进行学习会有更好的收获

(已解决)jar包启动命令中的自定义变量参数(-D...)无法被服务识别

问题现象: 今天在使用脚本文件(.sh文件)启动 一个java服务时,发现脚本启动命令中添加的变量参数无法被服务识别到!!! 问题分析: 下面将通过一个java服务(gateway网关服务)来演示本文章出现的问题现象! 首先查看当前nacos注册中心的服务列表,可以看见并没有gateway服务: 1、本机IDEA启动测试: 接着先在本机IDEA开发工具上测试该java服务(gateway网关服务)源码的启动是否正...

weixin_42585386的博客 6886

FANUC机器人PROFINET通讯方式组态

6 然后对模块进行命名及更改IP地址,点击“Network Detection”,进行扫描,会生成下图,双击商科模块会生成下边的对话框,对模块进行命名及更改IP地址,在“Permanent Name”处点对勾,完成后点击“Apply Name及Apply”进行命名。此处注意,上图左上在线在不了,网络扫描处上面也灰色的,扫描不了。5双击abcc-prt-2-port RT(FW1.13),生成下面图标,在右边点击1、2把原来内容删掉,从新在左侧加载 ,使1、2是输出,3、4为输入,完成后点击OK。

dxs93的博客 8436

侧杆试验 - 高速撞击 - 显式动力学 - ANSYS Workbench

显式动力学是一种时间积分方法,用于在速度很重要时执行动态模拟。显式动力学考虑快速变化的条件或不连续事件,例如自由落体、高速撞击和施加的负载。由于这些“非线性动力学”已集成到模拟中,因此显式动力学是模拟高度瞬态物理现象的首选。有些侧面碰撞是指车辆侧向撞上路边的坚硬物体,如树木或电线杆。这通常是由于驾驶员失去控制、超速、误判拐角或在湿滑路面上打滑造成的。

jianqimingtian的博客 1289

servicecomb,microservice.yaml文件的配置

一个代码小白的历练的博客 1011

【AI Agent系列】【阿里AgentScope框架】深入源码:Msg是如何转变成模型需要的Prompt形式的?多模态Prompt如何构建?

前面咱们学习AgentScope,在使用Agent来对话时,输入为一个 Msg 对象,不能是字符串,然后在Agent内部,会将Msg对象转换为模型接受的Prompt。那 AgentScope 如何根据 Msg 形成相应模型接收的Prompt结构的?如何使用 Msg 带入更多的参数,传递给大模型呢?

同学小张的博客 1535

SpringBoot 启动配置文件加载和参数配置修改问题

最近项目有一个问题,公司的业务是偏向于医院信息化建设,涉及到和医院集成平台,his厂商等对接,于是开发了一个管理平台,这个需要部署到医院内网服务器上,每家医院环境信息都不一样,为了方便配置数据源等信息,打包部署的时候就想到了能不能把,数据源配置放在jar包外面,部署时不需要修改jar包 classpath 下,application.yml内容,就查找了spingboot启动配置文件加载顺序的流程。最终把属性配置放到jar包同级目录 如下shell脚本内容整理相关资料如下,

qq_38228673的博客 5046

基于STM32的IMU惯性/姿态解算与多参数上位机可视化实现_资料编号38

本项目实现基于STM32F103C8T6标准库,对姿态/惯性(IMU)传感器姿态解算,通过USB-TTL转串口模块将姿态角/欧拉角、加速度、角速度、磁场、气压、海拔高度、磁力计温度、气压计温度等数据显示在PC端上位机,系统采用可充电锂电池供电。

嵌入式阿齐Archie 1万+

手把手教你学simulink(26.7)--控制算法场景示例:基于模型预测控制(MPC)的智能温室环境控制系统

首先,我们需要将温室环境的动力学模型转换为状态空间形式。假设我们有四个状态变量:温度 TT、湿度 HH、光照强度 II 和二氧化碳浓度 CCO2CCO2​,以及四个控制输入:加热器功率 u1u1​、加湿器加湿量 u2u2​、通风扇风速 u3u3​ 和补光灯光照强度 u4u4​。状态空间模型可以表示为:x(t)=[T(t),H(t),I(t),CCO2(t)]Tx(t)=[T(t),H(t),I(t),CCO2​(t)]T 是状态向量。

MHD0815的博客 403

springboot打包jar,覆盖内部配置文件,使用外部配置文件如(application.yml)

一、怎么覆盖当前jar中的配置文件? 在*.jar目录下创建一个config文件夹,config文件夹当中创建application.yml文件 使用 -Xbootclasspath/p 命令,是在jar包加载路径之前读取config当中的配置文件 二、使用命令 ## 配置文件路径 /config/applocation.yml ## : 分隔线 多个冒号表示多个文件路径 命令: java -Xbootclasspath/p:/config/applocation.yml:/config/apploca

qq_43710400的博客 3775

BioEmu 扩散模型加速传统分子动力学(MD)模拟

BioEmu 是一种创新的生成式深度学习系统,通过高效采样和准确预测蛋白质的动态机制,为蛋白质科学和药物设计提供了新的工具。它在多构象采样、MD 模拟拟合和蛋白质稳定性预测方面表现出色,同时显著降低了计算成本。BioEmu 的开发为未来蛋白质动态研究和应用奠定了坚实基础。

weixin_42357472的博客 320

跟我学CSE系列之4:基于华为云配置微服务

本章节主要描述微服务发布到华为公有云上。上云配置的基本原则是:只需要对microservice.yaml进行适当的配置,以及在pom中添加额外的依赖,就可以使用相关的功能。一键式配置公有云版本提供了一键式简化配置的方式,让基于开源版本开发的应用快速切换为云上应用,直接使用公有云提供的灰度发布、服务治理等功能。增加依赖关系(pom.xml)<dependency> <grou...

微服务技术与实践专栏 5059

大模型LangChain面试题及参考答案(上)

明确的输入输出类型:函数参数需包含类型注解,返回值需定义清晰的数据结构(如JSON格式),便于LLM理解参数含义和调用方式。工具描述:通过文档字符串或独立的描述对象(如Tool类)说明函数的功能、参数用途及调用场景,供LLM判断是否需要调用。示例:定义一个计算两个数之和的工具函数@tool"""计算两个整数的和。参数:- a:第一个整数- b:第二个整数调用场景:当用户需要进行数值加法计算时使用。"""除了内置的。

大模型大数据攻城狮的专栏 1142

Vue3 - 完美解决html2canvas截图不全问题,截图只截取当前可视区域导出图片不全,截屏导出的图片显示不全只有一部分或缺一块,vue3移动端H5网页项目使用html2canvas插件长截图!

vue3,html2canvas,移动端H5网页,截图不全,html2canvas长截图不全,保存长截图,页面滚动导致截图不全,网页下方截屏不到怎么办,底部一部分无法截屏到,保存的图片少了一大块,H5海报截图不完整,怎么截取滚动条下方的内容,截图图时图片不全,截图图片只有一半的问题,底部内容空白,截图空白问题的解决,截图不全怎么办,html2canvas.js网页截图功能(解决截图不全问题,移动端ios系统截图不完整,html2canvas截图太长又不能删减截取不到,使用HTML2Canvas在H5页面上实

🏆 前端领域优质创作者 1万+

【服务器配置】Portainer环境配置

【服务器配置】Portainer环境配置

qq_44653420的博客 1471

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

同包名类名未覆盖jar包中的方法

项目中的jar包需要修改,需要在本地写同名类覆盖jar包中的方法。

weixin_45546174的博客 838

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Java如何读取JAR包外的properties文件及打成jar包后无法读取到jar包内的properties文件

项目中,经常把一部分功能独立出来,做一个java project,然后打成jar包供其他项目引用。这时候,如果jar包中需要读取配置文件信息,则很少把该配置打进jar包,因为它不方便修改,更多都是采用jar包读取外部配置文件。 案例: 项目工程名:auth -- 很明显,做鉴权使用的 项目配置文件:init.properties log4j.properties init.prop...

volcano2339的博客 4042

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

外部覆盖jar包里的配置文件

在使用java -jar app.jar 形式运行jar包时,需要覆盖jar包里classpath下的配置文件,可以采用下面的命令: $ java -Xbootclasspath/p:/usr/hdp/hadoop/conf:/usr/hdp/hbase/conf -jar app.jar 说明: -Xbootclasspath/p 和 -Xbootclasspath/a 都存在,一个是放在加载路径之前,一个是放在最后 后面通过 :(unix), ;(windows) 来分隔多个目录 根据文档介绍:h

寂寞的博客 3592

关于docker-compose文件配置覆盖问题

啊

沉心ss的博客 2226

使用华为云CSE开发微服务应用

概述 CSE(Cloud Service Engine) Java SDK是华为推出的产品级微服务开发框架,已经在华为内部多个大型产品上得到了使用和验证。使用CSE Java SDK开发微服务,可以最大化的简化开发门槛,提升产品上线速度。同时可以获得微服务运行时高可靠性保证、运行时动态治理等一系列开箱即用的能力。 为了描述简单,本文会使用CSE指代CSE Java SDK,使用ServiceComb指代ServiceComb Java Chassis。 开发者可以通过微服务引擎[华为云](https:

NicolasLearner的博客 2956

serviceComb的入门

华为的微服务:servicecomb的使用,做了个 小demo

小王的博客 4843

JAVA yaml或properties配置文件中使用环境变量(docker部署)

当我们部署服务时候,希望yaml、properties中的一些配置参数(如数据库、端口号等)从外界获取而非写死。这样做的好处是,当你想部署在别的机器上就不需要再修改或者帮甲方上线的时候只需要修改环境变量就可以了。 Linux下添加环境变量很简单,无非是修改一些文件。 修改profile文件,输入vi/etc/profile 再结尾输入想添加的变量,如:export HOST=127.0.0.1 修改.bashrc文件,输入vi/root/.bashrc (profile与bashrc具体两者有什么区

aaabbcq的博客 6697

jar 文件覆盖yml配置端口,指定端口8002启动

java -jar item.jar --server.port=8002

Crazy_sounding的博客 867

微服务ServiceComb入门案例

最近在学习中,接触到了ServiceComb,第一看到这个有点陌生,因为之前所了解的有关微服务的最多的就是Spring Boot+Spring Cloud了。下面简单的介绍一下ServiceComb: ServiceComb是华为2017年开源的微服务框架,ServiceComb在华为内部的实践中沉淀了丰富的企业级应用开发经验,该项目已于2017年12月进入Apa...

zengdongwen的博客 3万+
上一篇: 导入CSE JavaSDK 的demo工程,遇到maven依赖问题
下一篇: query参数值包含分号的时候,CSE/Servicecomb将其解析为两个参数
looook
博客等级 码龄20年 145粉丝 195原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值