首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

记一次springboot模块配置问题导致读取Apollo配置中心配置文件始终错误的问题

现在正在做的一个项目采用的是微服务,主框架是spring cloud,配置中心用的是携程的Apollo。...然而在本机的开发环境 idea下启动此服务却没问题,然后排查服务模块中与 Apollo 相关的配置,依然没发现问题。...再去服务器上看启动日志,发现每次启动的时候读取 META-INF 目录下的 app.properties 文件读取出来的 app_id 为另一个模块的 id,好吧,解压缩 jar 包,看app.properties...文件,跟历史版本一对比,发现问题了,一位同事把另一个服务模块给依赖进来了,而且scope是 compile的,导致在 idea 里运行没问题,但是打成 jar 包以后就会出问题了,不过这个锅个人认为apollo...也要背一点,为毛引入其他模块以后不是读当前模块的app.properties,而是读依赖 jar 包里的app.properties,这不是坑人么。

3.4K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    浅入vue脚手架 手把手教你撸一个简单脚手架

    第3步则读取模板目录下meta.js或者meta.json文件,根据里面的内容会询问开发者,根据开发者的回答,确定一些修改。 根据模板内容以及开发者的回答,渲染出项目结构并生成到指定目录。...他会在当前目录下生成一个package.json文件。 bin文件的作用: 很多包都有一个或多个可执行的文件,希望放在PATH中,(实际上,就是这个功能让npm可执行的)。...引用:https://blog.csdn.net/weixin_34357436/article/details/88811435 比如:我们在bin目录下新建一个index.js文件(当前目录也可以,...由于node_modules/.bin/目录会在运行时加入系统的PATH变量,因此在运行npm时,就可以不带路径,直接通过命令来调用这些脚本。...author: res.author } if (fs.existsSync(filename)) { // 读取目标文件的

    1.4K30

    NodeJS深度探秘:通过爬虫用例展示callback hell的处理方法以及高并发编程的几个有效模式

    == 'ENOENT') { //文件读取错误而且错误不是文件已存在,那么直接返回 return cb(err) }...事实上我们自己写的代码,例如回调函数等都会在主线程中执行,但是异步任务可以利用操作系统的多核多线程模式来实现平行执行,假设我们要读取10个文件,那么我们可以使用上面forEach的方式启动readFile...,nodejs会把读取文件的请求提交给操作系统,操作系统会把读取请求分发给多个内核,于是文件读取就可以在不同cpu内核上同时运行,当文件内容读取完毕后,nodejs再使用它的主线程将读取到的内容分别提交给我们提供的回调函数...但第二个模式也有问题,假设我们不是简单的打印数字而是打开文件,如果程序以第二种模式同时打开上千个文件,那么就会耗尽进程的文件句柄上限而导致奔溃,因此在使用第二种模式时,我们需要现在并行任务的数量。...== 'ENOENT') { //文件读取错误而且错误不是文件已存在,那么直接返回 return cb(err) }

    66810

    深聊Nodejs模块化

    而 script 标签太多会导致文件之间依赖关系混乱,全局变量太多也会导致数据流相当紊乱,命名冲突和内存泄漏也会更加频繁的出现。...在尝试的时候 Nodejs 会调用 fs 模块来判断文件是否存在,所以这里可能会存在性能问题,如果在引用模块的时候加上扩展名,可以使得模块加载的速度变得更快。..._extensions 对象上,前文有提到过:.js 文件:通过同步读取文件内容后编译执行.json 文件:通过 fs 模块读取文件,之后使用 JSON.parse 转化成 JS 对象.node 文件:...这是使用 C/C++ 编写的扩展模块,通过内置的 dlopen 方法加载最后编译生成的文件.mjs 文件:这是 Nodejs 支持 ESM 加载方式的模块文件,所以使用 require 方法载入的时候会直接抛出错误在...而一旦我们给 exports 这种变量重新赋值的时候,exports 就失去了对原来引用类型的指向,转而指向新的值,所以就会导致我们赋给 exports 的值并没有指向原来的引用类型对象。

    1.6K21

    用编译型语言去解决脚本语言的性能问题是个不小的机会

    esbuild使我眼前一亮,提供了一些新的思路,是不是二进制的文件执行效率比nodejs快?...开始 nodejs有个pkg的打包工具可以将nodejs打包成二进制文件(其实是一种环境模拟的机制) 第一步写个测试两万个文件的读写,用nodejs跑和nodejs打包错了的exe跑(我就错在这一步,当时可能比较兴奋...webpack4只要注释掉两行代码就可以正确执行了 第三步改进脚手架把angular-cli 本地化打包成exe 执行构建命令 结果是能打包出来,然后效率并没有提升 注意事项 pkg打包过程中本地路径引用的问题一定要注意...(例如__dirname是在执行二进制的文件目录下面而不是真正执行的工作目录下面) value with node packaged comments __filename /project/app.js.../deploy/app-x64 app-x64 and run in /deploy process.argv[0] /usr/bin/nodejs /deploy/app-x64 process.argv

    48520

    webpack正式、测试环境接口地址本地运行及打包命令配置

    其中: 数组的第一个元素 process.argv[0] 返回启动 Node.js 进程的可执行文件所在的绝对路径。...第二个元素 process.argv[1] 为当前执行的 JavaScript 文件路径。 剩余的元素为其他命令行参数。...webpack 是 npm 生态中的一个模块,webpack 运行依赖于 node 环境。这里的 process.env 是Nodejs提供的一个API,它返回一个包含用户环境信息的对象。...如果我们给 Nodejs 设置一个环境变量,并把它挂载在 process.env 返回的对象上,便可以在代码中进行相应的环境判断。...通常的做法是,新建一个环境变量 NODE_ENV ,用它确定当前所处的开发阶段,生产阶段设为 production ,开发阶段设为 development 或 testing ,然后在脚本中读取 process.env.NODE_ENV

    2.4K00

    这里有一份Node.js入门指南和实践,请注意查收

    process 常用属性 进程命令行参数: process.argv process.argv 是一个当前执行进程折参数组,第一个参数是 node,第二个参数是当前执行的.js 文件名,之后是执行时设置的参数列表...标准错误流: process.stderr process.stderr 是一个指向标准错误流的可写流 Writable Stream。...HTTP 流就是如此,为提高网站响应速度,会在服务端进行压缩,客户端收到数据后再进行相应的解压。...逐行读取 readline 模块 readline 模块是一个流内容的逐行读取模块,通过 require('readline')引用模块。...多次调用 require('index'),未必会导致模块中代码的多次执行。这是一个重要的功能,借助这一功能,可以返回部分完成的对象;这样,传递依赖也能被加载,即使它们可能导致循环依赖。

    3.6K30

    有用的内置Node.js APIs

    用于创建、读取、更新以及删除文件、目录和权限。 「Events」:用于触发和订阅Node.js中的事件。其工作原理与客户端事件监听器类似。...尽管Node.js文档推荐你显示地引用: import process from 'process'; process.argv:返回一个数组。...File System API fs[12] API可以创建、读取、更新以及删除文件、目录以及权限。...Streams 上面的文件系统示例代码在输出最小化的结果之前将整个文件读入内存。如果文件大于可用的RAM怎么办?Node.js应用程序将以"内存不足(out of memory)"错误失败。...这将在更小、更容易管理的块中处理传入的数据。流可以做到: 可读:从文件、HTTP请求、TCP套接字、标准输入等读取。 可写:写入到文件、HTTP响应、TCP套接字、标准输出等。

    2.2K20

    Node.js 常见面试题速查

    arguments = process.argv.splice(2); // ['arg1', 'arg2'] 其他参数 process.argv[0] 启动 Node.js 进程的可执行文件所在的绝对路径...process.argv[1] 当前执行的文件的 JS 文件路径 process.argv.splice(2) 命令行参数 关于获取命令行传来的参数还可以结合 commander 的 commander.parse...(process.argv); # node 有哪些相关的文件路径 __dirname 被执行的 js 所在文件夹的绝对路径 __filename 返回被执行的 js 的绝对路径 process.cwd...是直接拼接 path 片段, resolve 是解析路径并返回 # node 文件如何读取 const fs = require('fs'); // 同步 try { fs.unlinkSync...('文件'); console.log('已成功删除文件'); } catch (err) { // 处理错误 } // 异步回调 fs.unlink('文件', (err) => { if

    79710

    获取 NodeJS 程序退出码

    如果由于错误情况需要终止 Node.js 进程,则抛出未捕获的错误并允许进程相应地终止比调用 process.exit() 更安全,比如: import process from 'process';...const fork = require("child_process").fork; console.log("main ", process.argv); const fs = require(...2: 未使用(由 Bash 保留用于内置误用) 3 内部 JavaScript 解析错误:NodeJS 引导过程中的内部 JavaScript 源代码导致解析错误。...这是极其罕见的,通常只能在 NodeJS 本身的开发过程中发生。 5 致命错误:V8 中存在不可恢复的致命错误。 通常将打印带有前缀 FATAL ERROR 的消息到标准错误。...10 内部 JavaScript 运行时失败:NodeJS 引导过程中的内部 JavaScript 源代码在调用引导函数时抛出错误。 这是极其罕见的,通常只能在 NodeJS 本身的开发过程中发生。

    3.5K10

    NodeJS模块研究 - process

    例如 node script.js --version --help 中,--version --help 就是传给进程的参数 它们分别通过 process.argv 和 process.execArgv...如是冒泡到事件循环的异常没被处理,那么就会导致当前进程异常退出。...捕获了错误信息,并且进程以0退出。开发者可以在 uncaughtException 事件中,清除一些已经分配的资源(文件描述符、句柄等),不推荐在其中重启进程。...不推荐直接使用 process.exit(),这会导致事件循环中的任务直接不被处理,以及可能导致数据的截断和丢失(例如 stdout 的写入)。...,默认对应屏幕 process.stdin:ReadStream 类型,默认对应键盘输入 下面是基于“生产者-消费者模型”的读取控制台输入并且及时输出的代码: process.stdin.setEncoding

    1.5K20

    使用 Node.js 开发 CLI | moq

    * @param{ String } 需要复制的目录 * @param{ String } 复制到指定的目录 */ let copy = function (src, dst) { // 读取目录中的所有文件...上的数据,commander会自动帮助我们添加一个 -h 的解析 program.parse(process.argv); 1.4 测试 moq 项目下执行 npm install -g notebook...- incess的个人空间 - OSCHINA - 中文开源技术交流社区 玩转Node.js-CLI开发 - 伤心的瘦子 - 博客园 nodejs 遍历目录(文件夹)下的所有文件_逆水行舟,不进则退-CSDN...博客_nodejs遍历目录下所有文件 js-yaml 提取markdown中的front-matter - 阿豪boy的个人空间 - OSCHINA - 中文开源技术交流社区 正则表达式 – 修饰符(标记...) | 菜鸟教程 node.js如何引用其它js文件 - 挑战者V - 博客园 手把手教你用Node.js创建CLI - 知乎 本文作者: yiyun 本文链接: https://moeci.com/posts

    58510

    使用 nodejs 开发命令行小工具 - 谷歌翻译字幕

    使用 nodejs 可以非常方便的开发命令行工具,来解决我们遇到的一些问题。...现在就让我们看看如何使用 nodejs 开发一个把 .srt 格式的字幕文件翻译成中文和外语的双语字幕,然后在把它发布到 npm 仓库中。...准备 在安装好 nodejs 环境后,进入到项目目录后使用 npm init -y 来,创建 package.json 文件,然后我选择把主文件放入 src 下。...如果我们想把它当作一个普通的包使用,我们可以去要用到它的项目文件夹,执行 npm link fysrt,它会在该项目文件夹下的 node_modules 中链接到全局的 fysrt。...-> ${target}`); process.exit(1) } // ... }); 然后我们读取字幕文件然后解析它,由于有些 srt 字幕文件不严格符合规范

    1.4K20

    如何实现 CLI 通过模板批量生成组件文件?

    在文章的最后也提到我对于目前这个 CLI 还有一些想法以及一些可以改进和优化的地方,所以现在我来兑现了。 趁着周五不加班花了大概几个小时的时间,重新梳理了整个流程,把一些想法加了进去。...这里没有借助任何第三方包,完全是使用 nodejs 实现。 使用方法 原命令保持不动,如无命令参数则使用 QA CLI 模式生成组件。...process.argv 获取在 package 脚本命令中的参数集列表 process.npm_config_argv 获取命令行输入参数,即 npm 后出现的参数字符 异步批量处理 通过 Proxy...来实现针对异步创建文件和文件夹的完成与否,从而达到实现批量处理后统一返回数据。...新旧流程对比 image.png 很久没有画流程图,画得不好,如有错误还请指正。 简单说一下,之前的流程呢那就比较厉害了!直接一把梭,往里干就完事!!!

    92710

    JavaScript 编程精解 中文第三版 二十、Node.js

    读者可以读取process.argv来获取传递给脚本的命令行参数,该绑定是一个字符串数组。请注意该数组包括了node命令和脚本名称,因此实际的参数从索引 2 处开始。...当路径不起始于基本目录时,该函数将使用 HTTP 状态码来抛出错误响应对象,该状态码表明禁止访问资源。 我们需要创建GET方法,在读取目录时返回文件列表,在读取普通文件时返回文件内容。...当文件不存在时,stat会抛出一个错误对象,code属性为'ENOENT'。 这些有些模糊的,受 Unix 启发的代码,是你识别 Node 中的错误类型的方式。...所以我们连接两个流的'error'事件来拒绝Promise。 当pipe完成时,它会关闭输出流,从而导致触发'finish'事件。 这是我们可以成功解析Promise的地方(不返回任何内容)。...当调用异步函数时,使用者提供回调,并且 Node 会在准备好的时候,使用错误值和结果(如果有的话)调用它们。

    2.1K40

    前端-结合源码分析 Node.js 模块加载与运行原理

    通过 process.argv[1] 拿到文件名,在我们的 node index.js 中,process.argv[1] 显然就是 index.js,然后调用 path.resolve 解析出文件路径...可以看出,一共支持三种类型的模块加载:.js, .json, .node。其中 .json 类型的文件加载方法是最简单的,直接读取文件内容,然后 JSON.parse 之后返回对象即可。...从内存中获取的,而第三方 JavaScript 模块源代码是通过 fs.readFileSync 方法从文件中读取的。...如果编译成功,会在当前文件夹的 build/Release/ 路径下看到一个 addon.node,这个就是我们编译好的可 require 的扩展模块。...我们知道,Node.js 的编程模型是单线程 + 异步 IO,其中单线程导致了它在计算密集型应用上是一个软肋,大量的计算会阻塞 JavaScript 主线程,导致无法响应其他请求。

    2.3K20
    领券