MSE Nacos:解决敏感配置的安全隐患

作者:察溯

前言

Nacos 简介

Nacos [ 1] 是一个更易于构建云原生应用的配置管理和服务管理平台。Nacos 的配置中心具有众多优势:动态实时更新配置、支持水平扩展的高可用系统架构、API 简单易上手、开源免费、多语言支持、集成度高等。基于以上特点,Nacos 逐渐成为配置管理的事实标准,被越来越多的开发者接纳。

敏感数据的安全挑战

很多用户在使用 Nacos 的配置管理功能时,逐渐开始在 Nacos 中存储敏感数据(如数据源、Token、用户名和密码等)。首先,用户自建的 Nacos 实例并未接入过多的安全防护,很容易受到安全攻击;其次,采用明文格式存储的敏感信息,很容易被窃取,给公司的信息安全带来了极大的隐患。

国家三级等保 [ 2] (三级信息安全等级保护)是针对重要信息系统的安全保护要求。其中对于应用与数据安全,提出了如下要求:

  1. 软件开发过程应遵循安全编码原则,减少潜在漏洞。

  2. 数据存储和处理过程中应进行必要的加密,同时也要有数据完整性检查机制。

针对数据安全隐患,MSE Nacos 可为敏感配置提供满足国家三级等保中数据安全要求的解决方案。

本文就向大家介绍,MSE Nacos 是如何解决敏感配置的安全隐患,并提供使用 MSE Nacos 加解密敏感配置的最佳实践。

MSE Nacos:解决敏感数据的安全隐患

简介

MSE [ 3] 是 Aliyun 推出的一个面向业界主流开源微服务生态的一站式微服务平台,提供注册配置中心(原生支持 Nacos/ZooKeeper/Eureka),具备如下优势:100% 兼容开源生态&功能增强、全托管服务、高可用、可视化等特点。

MSE Nacos 的配置中心,针对敏感配置的安全性问题,结合 KMS 密钥管理服务,推出了敏感配置的加解密功能,可显著降低存储在 Nacos 配置中心的敏感数据的泄露风险。

方案

产品架构

MSE Nacos 为敏感配置加解密提供了集成方案:KMS 为配置加解密,MSE Nacos 存储加密后的敏感配置。整体的产品逻辑架构图如下:

图片

可以从整体的架构逻辑中看到,整个方案中敏感配置都是密文传输、密文存储,可显著提升敏感配置的安全性。

安全特性

从国家三级信息安全等级保护角度来看,MSE Nacos 集成 KMS 的配置加解密方案做到了以下几点:

1. 数据存储加密

在应用侧对敏感数据加密处理,将密文存储在 Nacos 配置中心,有效防止敏感数据泄露。

2. 数据传输加密

MSE Nacos 可帮助用户配置并开启 TLS 数据传输加密,确保传输链路安全、数据不可被窃取。

3. 数据备份与恢复

在应用侧,Nacos Client 会落盘存储加密后的配置数据。在 MSE Console 中,可一键导出/导入明文配置、密文配置,可为用户建立数据备份策略,提供有效的路径。后续,MSE Console 计划接入密文数据的定期备份策略,敬请期待。

4. 数据生命周期管理

MSE 可为用户提供一站式的配置生命周期的管理,在 MSE Console 可以完成加密配置、普通配置的创建、修改、查看、删除等管理操作。

5. 数据访问权限控制

MSE 提供细粒度(细粒度到单个配置维度)的 RAM 权限管控,用户可结合实际场景,配置细粒度、多维度的的权限管控策略。

6. 数据审计

MSE 会记录所有的配置操作记录,包括配置变更时间、操作人、变更内容等关键信息,使得整个数据流程可追溯。

MSE Nacos 配置加解密原理

MSE Nacos 提供的敏感配置加密功能,能否有效保护用户的敏感数据呢?MSE Nacos 是怎么做的呢?相信这是绝大多数用户的问题,因为整个流程对用户而言是黑盒模式,用户无法得知 MSE Nacos 是否真如其对外宣称的“能为用户提供安全、高效的敏感配置加密能力”。这里将详细阐述,MSE Nacos 对用户配置加解密的整个链路详情,以化解用户顾虑。

这里有一张 MSE Nacos 对配置加解密的整体链路图,详细的阐述了整个配置加解密链路,下面详细展开讲解。

图片

配置加密链路

可以看到,整个链路中有 4 个主体:MSE Console、Nacos Client(即业务应用侧)、KMS Service、MSE Nacos。整个配置加密链路流程如下:

  1. MSE Console/Nacos Client SDK(即业务应用侧)编辑待加密配置文本这里需要说明,MSE Console与Nacos Client SDK 侧,都可以作为加解密配置的发起方,MSE Console 需要用户登录 Aliyun 官网的 MSE 产品控制台操作,而且必须赋予操作用户相应的 RAM 权限;Nacos Client SDK(业务应用)侧需要配置 KMS 相关实例的配置(下文介绍如何操作)。

  2. MSE Console/Nacos Client SDK 请求 KMS Service 加密明文MSE Console 与 Nacos Client SDK 侧编辑好待加密的明文配置后,就可以请求 KMS Service 对明文配置加密。

  3. KMS Service 返回加密后的密文给 MSE Console/Nacos Client SDK 侧

  4. MSE Console/Nacos Client SDK 请求 MSE Nacos 存储加密文本这里需要说明的是,所有的明文配置都是在 MSE Console/Nacos Client SDK(业务应用)侧使用;MSE Nacos 存储的是加密后的密文,并未存储任何明文配置信息。因此即使 MSE Nacos 被攻击,也不会泄露任何加密配置的明文信息。所以,用户只需关心业务应用侧的安全防护,大大收敛了数据安全风险。

  5. MSE Nacos 返回结果给 MSE Console/Nacos Client SDK

配置解密链路

配置解密链路无非就是配置加密链路的逆向过程,这里不再赘述,需要强调的是,解密后的明文配置都是在 MSE Console/Nacos Client SDK(业务应用)侧拿到的;MSE Nacos 无法拿到任何加密配置的明文信息。

推荐加密的配置项

  1. AK、SK 信息

  2. 明文的 password 密码、token 等信息

  3. RDS 数据源等配置

总之,对于存在泄露风险的配置,都推荐使用 MSE Nacos 的加密配置功能存储。

MSE Nacos:敏感配置加解密的最佳实践

下面介绍如何使用 MSE 提供的配置加密能力,具体的文档说明,您可查看 MSE 官方文档中心的配置加密 [ 4] 这篇文档。

整个最佳实践可以归纳为如下几个步骤:

  1. 开通微服务引擎 MSE

  2. 登录 MSE 控制台,并创建 Nacos 引擎实例

  3. 开通密钥管理服务 KMS

  4. 登录密钥管理服务 KMS 控制台,创建 KMS 专属实例,创建密钥资源

  5. 在 MSE 控制台,开启配置加密功能,绑定 KMS 密钥到 Nacos 实例,创建并使用加密配置

  6. 通过 Nacos Client SDK 创建并使用加密配置

1. 开通微服务引擎 MSE

您可登录微服务引擎 MSE [ 5] ,查看并开通 MSE。

2. 登录 MSE 控制台,并创建 Nacos 引擎实例

图片

登录微服务引擎 MSE 产品控制台,在左侧选项框中选择“注册配置中心”,点击“实例列表”,确定 region 后,选择“创建实例”。具体 MSE Nacos 实例创建流程,您可参考 MSE 文档中心的创建 Nacos 引擎 [ 6] 文档。

3. 开通密钥管理服务 KMS

您可登录密钥管理服务 KMS [ 7] ,查看并开通 KMS。

4. 登陆密钥管理服务 KMS 控制台,创建 KMS 专属实例,创建密钥资源

4.1 登录密钥管理服务 KMS 产品控制台,创建 KMS 专属实例

图片

这里依次选择“实例管理”,“确定地域”(如北京),“创建实例”。

🔔注意:

  1. KMS 实例一定要和使用配置加解密的应用程序的机器在同一个 VPC 内,否则会导致配置加解密无法使用。

  2. 不用保证 MSE Nacos 与 KMS 实例的网络互通性。

4.2 确定 KMS 实例规格

其中,在创建 KMS 专属实例时,需要确认实例资源规格。这里需要强调的是,使用 MSE Nacos 的配置加解密能力,仅需 1 个密钥资源即可。其他具体实例规格信息可参考购买和启用 KMS 实例 [ 8]

4.3 创建密钥资源

图片

KMS 实例创建完成后,需要继续创建密钥资源。按照上图依次在密钥管理服务 KMS 控制台选择“密钥管理”、“确定地域(如北京)”、“创建密钥”。

4.4 确定密钥规格

图片

对于用于 MSE Nacos 配置加解密的密钥,需要确定 2 个参数信息:

  1. 密钥类型:对称密钥

  2. 密钥规格:Aliyun_AES_256其他密钥参数,可根据客户自己需求设定,具体密钥管理功能可参考密钥管理 [ 9]

5. 在 MSE 控制台,开启配置加密功能,绑定 KMS 密钥到 Nacos 实例,创建并使用加密配置

接下来登录微服务引擎 MSE 产品控制台,开启 MSE Nacos 实例的配置加密开关,并绑定 KMS 密钥至 MSE Nacos 实例。

5.1 开启 MSE Nacos 实例的配置加密功能

图片

在 MSE Nacos 实例的详情页面,点击“参数设置”栏,将 ConfigSecretEnabled 的值设置为 true。

🔔注意: 如果之前为 false,重置为 true 后会导致实例重启。

5.2 绑定 KMS 密钥至 MSE Nacos 实例

图片

图片

在 MSE Nacos 实例的详情页面,点击“基础信息”栏,在基础信息的“KMS 密钥”属性中,点击红框图标,绑定第四步创建的 KMS 密钥至此 MSE Nacos 实例(之后 MSE Console 侧编辑的加密配置,都会使用此 KMS 密钥,因此请勿删除、禁用此 KMS 密钥,否则将会导致 MSE Nacos 的配置加解密能力不可用)。

绑定完成后,会在 MSE Nacos 的基础信息中,看到 KMS 密钥已成功绑定。点击密钥 KeyId,会跳转到 KMS 控制台处的密钥详情信息界面。

图片

5.3 创建并使用加密配置

图片

在 MSE Nacos 实例的详情页面,点击“配置列表”栏,并点击“创建配置”。

图片

打开配置编辑界面,第 1 步点击“数据加密”开关,之后按照第 2、3、4 步骤编辑配置详情,并在编辑完成后,点击“发布”,即可创建加密配置,并可在 MSE 控制台查看刚刚创建的加密配置信息。

图片

图片

🔔注意:

  1. MSE Nacos 存储的是加密后的密文信息。

  2. MSE Console 控制台会对加密配置展示明文信息,如您想要在控制台隐匿此加密配置的信息,可参考链配置中心细粒度鉴权 [ 10] ,分别授权不同的 RAM 权限给不同的 aliyun 账户。

6. 通过 Nacos Client SDK 创建并使用加密配置

您也可以使用 Nacos Client SDK 来发布、获取加密配置,这里以 JAVA SDK 为例。

6.1 获取 KMS 3.0 实例配置

登录密钥管理服务 KMS 控制台,为绑定到 MSE Nacos 实例的 KMS 密钥所归属的 KMS 实例,创建“应用接入点”(必选)、获取实例 CA 证书(可选)如图所示。

图片

点击“快速创建应用接入点”后,请选择如下信息后,创建应用接入点:

  • 作用域(KMS 实例):请选择绑定至 MSE Nacos 实例的 KeyId 对应的实例 Id。
  • 网络控制规则:请输入使用配置加解密的应用服务坐在的实例的 IP 网段。

图片

(必选) 创建“应用接入点”完成后,会有如下信息(请存储至安全的介质中,这些接入点信息不会从 KMS 控制台二次获取,请妥善保存, 初始化 Nacos Client SDK 会使用到):

  1. 应用身份凭证口令(ClientKeyPassword)

  2. 应用身份凭证内容(ClientKeyContent)

图片

(可选) 获取实例 CA 证书:如您希望加解密通信链路采用 TLS 加固,可获取 CA 证书,并添加到 Nacos Client 的初始化配置中。

6.2 用 KMS 3.0 配置信息,初始化 Nacos Client
  1. 您需要在您的代码中添加如下 maven 依赖:
<dependency><groupId>com.alibaba.nacos</groupId><artifactId>nacos-client</artifactId><version>1.4.3</version>
</dependency>
<dependency><groupId>com.alibaba.nacos</groupId><artifactId>nacos-client-mse-extension</artifactId><version>1.0.3</version>
</dependency>
  1. 初始化 Nacos Client,发布并获取加密配置
try {Properties properties = new Properties();properties.put(PropertyKeyConst.SERVER_ADDR, "mse-xxxxxx-p.nacos-ans.mse.aliyuncs.com");properties.put(PropertyKeyConst.RAM_ROLE_NAME, "${roleName}"); //参考下方tips[1]properties.put("regionId", "cn-hangzhou");properties.put("kms_region_id", "cn-hangzhou");properties.put("kmsEndpoint", "kst-hzz6xxxr.cryptoservice.kms.aliyuncs.com");properties.put("keyId", "alias/acs/mse");properties.put("kmsVersion", "v3.0");properties.put("kmsClientKeyContent", "clientKey_content");// kmsClientKeyContent与kmsClientKeyFilePath设定任意一个即可,kmsClientKeyContent优先级更高。// properties.put("kmsClientKeyFilePath", "clientKey_hangzhou.json");properties.put("kmsPasswordKey", "10xxxd1d");properties.put("kmsCaFileContent", "ca_content");// kmsCaFileContent与kmsCaFilePath设定任意一个即可,kmsCaFileContent优先级更高。// properties.put("kmsCaFilePath", "ca.pem");ConfigService configService = NacosFactory.createConfigService(properties);//发布加密配置(dataId以"cipher-kms-aes-256-"作为前缀)configService.publishConfig("cipher-kms-aes-256-dataid", "group", "cipher-content"));//获取加密配置System.out.println("content:::"+configService.getConfig("cipher-kms-aes-256-dataid", "group", 6000));} catch (Exception e) {e.printStackTrace();}

🔔Tips:

借助 ECS 实例或 ACK 实例的 RAM 角色,您可以将 RAM 角色与 ECS 实例或 ACK 实例关联起来,然后将 RAM 角色名称告知 Nacos Client,此后无需配置 AccessKey 即可访问MSE。基于 RAM 角色,您可以为不同实例设定不同的角色和授权策略,控制访问权限粒度或范围。例如,如果配置只读策略,则关联了该角色的 ECS 仅可读取 MSE 的配置和服务,而无法新增或修改 MSE 配置和服务。更多信息,请参见 ECS 实例 RAM 角色 [ 11] 、授权概述 [ 12] 和 RAM 角色概览 [ 13]

  1. 您可在 MSE Console 控制台上查看、编辑您通过 Nacos Client SDK 发布的加密配置

图片

您可参考 JAVA SDK 用例 [ 14] 、GO SDK 用例 [ 15] ,并参考 MSE 文档中心的配置加密 [ 16] 文档了解详情。

相关链接:

[1] Nacos

https://nacos.io/zh-cn/docs/v2/what-is-nacos.html

[2] 国家三级等保 《信息安全技术 网络安全等级保护基本要求》GB/T 22239-2023

[3] MSE

https://help.aliyun.com/zh/mse/product-overview/what-is-mse

[4] 配置加密

https://help.aliyun.com/zh/mse/user-guide/create-and-use-encrypted-configurations?spm=a2c4g.11186623.0.0.41e939f9SGGIeP#a796307088bov

[5] 微服务引擎 MSE

https://www.aliyun.com/product/aliware/mse?spm=a2c4g.11186623.0.0.4ed534942kabHC&v=649fb76c13f77bc7c7031b5ae76a2cca

[6] 创建 Nacos 引擎

https://help.aliyun.com/zh/mse/getting-started/create-a-nacos-engine?spm=a2c4g.11186623.0.i23#task-2261346

[7] 密钥管理服务 KMS

https://www.aliyun.com/product/security/kms?spm=a2c4g.11186623.J_XmGx2FZCDAeIy2ZCWL7sW.17.5f3539f9WUwh2S&scm=20140722.S_product@@%E4%BA%91%E4%BA%A7%E5%93%81@@813441._.ID_product@@%E4%BA%91%E4%BA%A7%E5%93%81@@813441-RL_kms-LOC_topbarUNDproduct-OR_ser-V_3-P0_0

[8] 购买和启用 KMS 实例

https://help.aliyun.com/zh/kms/getting-started/purchase-and-enable-a-kms-instance?spm=a2c4g.11186623.0.0.11298c9cUWSBlK

[9] 密钥管理

https://help.aliyun.com/zh/kms/getting-started/getting-started-with-key-management?spm=a2c4g.11186623.0.0.704c8c9cvSkwKZ

[10] 链配置中心细粒度鉴权

https://help.aliyun.com/zh/mse/user-guide/fine-grained-authorization-in-configuration-centers?spm=a2c4g.11186623.0.0.5f1d304f8waZsm

[11] ECS 实例 RAM 角色

https://help.aliyun.com/zh/ecs/user-guide/overview-1

[12] 授权概述

https://help.aliyun.com/zh/ack/ack-managed-and-ack-dedicated/user-guide/authorization-overview

[13] RAM 角色概览

https://help.aliyun.com/zh/ram/user-guide/ram-role-overview

[14] JAVA SDK 用例

https://github.com/nacos-group/nacos-client-mse-extension/blob/dev/src/main/java/com/alibaba/nacos/client/aliyun/sample/KmsV3Sample.java

[15] GO SDK 用例

https://github.com/nacos-group/nacos-sdk-go/blob/master/example/config-mse-kmsv3/main.go

[16] 配置加密

https://help.aliyun.com/zh/mse/user-guide/create-and-use-encrypted-configurations?spm=a2c4g.11186623.0.0.63f9537buzfndb

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/638469.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JavaScript 中JSON 字符串和对象之间的转换。

JSON.stringify() 方法&#xff08;对象转换为 JSON 字符串&#xff09; 用于将 JavaScript 对象转换为 JSON 字符串。 它接受一个 JavaScript 对象作为参数&#xff0c;并返回对应的 JSON 字符串表示。例如&#xff1a; const obj { name: John, age: 25 }; const jsonStr…

0基础实战langchain系列讲义【2】LangChain 的数据连接

文章目录 前言1、数据连接定义&#xff1f;2、数据的加载、拆分过程2.1 TextLoader 加载文档2.2 拆分文档2.2.1 字符拆分2.2.2 拆分代码2.2.3 Markdown文档拆分2.2.4 按字符递归拆分2.2.5 按token拆分 3 文本向量化和向量数据库存储查询3.1 文本向量化分块3.2 向量化存储、检索…

Html+Css+JavaScript实现完整的轮播图功能

概要 这个案例具备常见轮播图完整的功能&#xff0c;大家可以根据自己的需求去修改&#xff1b; 代码可以直接复制运行&#xff0c;需要安装sass 主要功能&#xff1a; &#xff08;1&#xff09;鼠标移入轮播图&#xff0c;左右两边的按钮出现&#xff0c;离开则隐藏按钮&a…

proteus8.15安装教程

proteus8.15安装教程 1.管理员运行 2.一直NEXT到这一步&#xff0c;需要注意&#xff0c;一定要选这一个 3.选中后出现 4.一直下一步到更新 这边结束后准备激活&#xff1a; 1.安装激活插件&#xff0c;先关闭防火墙 2.下一步 3.最后&#xff0c;将数据库放在根目录下 …

从零开始配置pwn环境:sublime配置并解决pwn脚本报错问题

1.sublime安装 Download - Sublime Text ──(holyeyes㉿kali2023)-[~] └─$ sudo dpkg -i sublime-text_build-4169_amd64.deb [sudo] password for holyeyes: Selecting previously unselected package sublime-text. (Reading database ... 409163 files and directori…

LeetCode——二叉树

二叉树 思路【labuladong】 1&#xff09;是否可以通过遍历一遍二叉树得到答案&#xff1f;如果可以&#xff0c;用一个traverse函数配合外部变量来实现——回溯 2&#xff09;是否可以定义一个递归函数&#xff0c;通过子问题的答案推导出原问题的答案&#xff1f;如果可以…

Halcon模板图像gen_contour_region_xld/find_shape_model

Halcon模板图像 文章目录 Halcon模板图像1. 从参考图像的特定区域中创建模板2. 使用XLD轮廓创建模板 本文将讲述如何创建合适的模板。可以从参考图像的特定区域中创建&#xff0c;也可以使用XLD轮廓创建合适的模板。接下来将分别介绍这两种方法。 1. 从参考图像的特定区域中创建…

【万字解析】Webpack 优化构建性能(分析->优化)

Webpack 优化构建性能 1. 分析构建性能 分析构建体积 全局安装 webpack-bundle-analyzer 插件 npm i -g webpack-bundle-analyzer运行 webpack-bundle-analyzer webpack-bundle-analyzer分析构建速度 // webpack.config.jsconst SpeedMeasurePlugin require("speed-me…

玩转浏览器开发者工具:发现前端世界的秘密花园

解锁网页背后的奥秘 对于许多前端开发者和网页设计师来说&#xff0c;浏览器的开发者工具是不可或缺的利器。通过这些工具&#xff0c;我们可以深入了解网页的内部结构、调试代码、测试设计以及优化性能。在本文中&#xff0c;我们将带你探索浏览器开发者工具的奥秘&#xff0…

huggingface学习 | 云服务器使用hf_hub_download下载huggingface上的模型文件

系列文章目录 huggingface学习 | 云服务器使用git-lfs下载huggingface上的模型文件 文章目录 系列文章目录一、hf_hub_download介绍二、找到需要下载的huggingface文件三、准备工作及下载过程四、全部代码 一、hf_hub_download介绍 hf_hub_download是huggingface官方支持&…

快速上手Flask(二) flask-restful以及全局响应配置

文章目录 快速上手Flask(二) flask-restful以及全局响应配置什么是flask-restful安装flask_restfulflask_restful 使用flask 使用app.route 装饰器自定义路由 全局响应配置flask的自带的jsonify方法JSONIFY_PRETTYPRINT_REGULARJSONIFY_MIMETYPE重写jsonify方法 快速上手Flask(…

力扣【四数之和】

一、题目描述 18. 四数之和 给你一个由 n 个整数组成的数组 nums &#xff0c;和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] &#xff08;若两个四元组元素一一对应&#xff0c;则认为两个四元组重复&#x…

大数据开发之电商数仓(hadoop、flume、hive、hdfs、zookeeper、kafka)

第 1 章&#xff1a;数据仓库 1.1 数据仓库概述 1.1.1 数据仓库概念 1、数据仓库概念&#xff1a; 为企业制定决策&#xff0c;提供数据支持的集合。通过对数据仓库中数据的分析&#xff0c;可以帮助企业&#xff0c;改进业务流程、控制成本&#xff0c;提高产品质量。 数据…

C#中chart控件

C#中chart控件 图表的5大集合 例子 第一步&#xff1a;创建工程 放入chart控件 series集合 选择图标类型 选择绘制曲线的宽度和颜色。 显示数据标签 Title集合 添加标题 调整标题字体&#xff1a;大小和颜色 CharsArea集合 对坐标轴进行说明 设置间隔 设置刻度…

【线性代数与矩阵论】矩阵的谱半径与条件数

矩阵的谱半径与条件数 2023年11月18日 文章目录 矩阵的谱半径与条件数1. 矩阵的谱半径2. 谱半径与范数的关系3. 矩阵的条件数下链 1. 矩阵的谱半径 定义 设 A ∈ C n n {A\in \mathbb C^{n \times n} } A∈Cnn &#xff0c; λ 1 , λ 2 , ⋯ , λ n { \lambda_1,\lambda_2…

第11章_常用类和基础API拓展练习(字符串相关练习,日期时间API练习,比较器练习,其它API练习)

文章目录 第11章_常用类和基础API拓展练习字符串相关练习1&#xff1a;阅读题1、length说明2、阅读代码&#xff0c;分析结果3、阅读代码&#xff0c;分析结果4、阅读代码&#xff0c;分析结果5、阅读代码&#xff0c;分析结果6、阅读代码&#xff0c;分析结果7、阅读代码&…

【Linux】Linux基本操作(二):rm rmdir man cp mv cat echo

承接上文&#xff1a; 【【Linux】Linux基本操作&#xff08;一&#xff09;&#xff1a;初识操作系统、ls、cd、touch、mkdir、pwd 】 目录 1.rmdir指令 && rm 指令&#xff1a; rmdir -p #当子目录被删除后如果父目录也变成空目录的话&#xff0c;就连带父目录一…

Elasticsearch 字段更新机制

目录 不支持原地更新 更新过程 段合并&#xff08;Segment Merge&#xff09; 结论 不支持原地更新 Elasticsearch 不支持原地更新&#xff08;in-place update&#xff09;索引中的单个字段。由于 Elasticsearch 使用了不可变的倒排索引&#xff0c;一旦文档被写入&#x…

崩溃了!我说用attach进行问题定位,面试官问我原理

Arthas&#xff08;阿尔萨斯&#xff09;是一款开源的Java诊断和监控工具&#xff0c;可以在生产环境中进行实时的应用程序分析和故障排查。Arthas的实现原理主要基于Java Instrumentation API和Java Agent技术。 Java Agent 是 Java 编程语言提供的一种特殊机制&#xff0c;允…

多模态是什么意思,在生活工业中有哪些应用?

问题描述&#xff1a;多模态是什么意思&#xff0c;在生活工业中有哪些应用&#xff1f; 问题解答&#xff1a; 多模态&#xff08;Multimodal&#xff09;指的是同时利用多种不同模式或传感器的情境、系统或技术。在不同领域&#xff0c;多模态可以涉及到多种感官或信息源的…