- 博客(192)
- 收藏
- 关注
原创 Docker Compose
Docker Compose 是一个用于定义和运行多容器 Docker 应用的工具,通过 YAML 文件配置服务。摘要: 核心功能:通过docker-compose.yml文件定义多个服务,用单条命令启动整个系统 安装:现代 Docker 已内置 Compose V2,可通过docker compose version检查 配置文件:包含版本号、服务定义、镜像、端口映射等关键字段 常用命令: up启动服务 down停止并清理 logs查看日志 exec进入容器 版本兼容:建议使用version: "
2025-07-20 16:46:20
340
原创 Docker安装Nginx
本文介绍了如何使用Docker拉取Nginx镜像并启动容器。首先通过docker pull命令获取指定版本的Nginx镜像,然后启动容器测试服务。接着详细说明了如何将容器中的配置文件、日志和资源目录挂载到宿主机,包括创建挂载目录、复制容器文件到主机、修改Nginx配置和首页内容。最后使用挂载配置重新启动容器,并解释了相关命令参数的作用。通过这种方式可以实现容器重启或更换镜像时保留原有配置和数据。
2025-07-13 09:25:57
404
原创 Python 魔术方法
Python魔术方法(双下方法)是增强类行为的特殊方法。常见方法包括: __init__:构造方法,初始化对象 __str__/__repr__:定义对象的字符串表示 __eq__:自定义相等比较 __len__:支持len()操作 __getitem__/__setitem__:实现下标访问 进阶方法包括: __call__:使对象可调用 __iter__/__next__:支持迭代 __enter__/__exit__:实现上下文管理 __contains__:支持in操作 这些方法使Python对象更
2025-07-10 13:00:30
955
原创 JS 表达式和操作符-解构
The destructuring syntax in JavaScript is a powerful feature that makes it possible to unpack values from arrays or properties from objects into distinct variables. It can be used to simplify code, especially when dealing with complex data structures.
2025-07-10 12:55:32
870
原创 MySQL 主从同步异常处理
MySQL主从复制中遇到Error_code:1032错误,通常表示从库无法找到主库更新记录对应的行数据。主要原因包括数据不一致、从库表被修改、多线程复制问题等。提供三种解决方案:1)跳过错误(临时应急);2)重新同步单表数据(推荐方案);3)完全重建从库(数据严重不一致时)。建议通过SHOW SLAVE STATUS命令查看具体错误信息。重点提示:跳过错方法仅作临时处理,可能导致更严重的数据不一致问题,应优先考虑数据同步方案。
2025-06-09 08:31:40
501
转载 Docker 手动安装
本文介绍了四种离线安装 Docker 的方法:RPM 包安装:适合支持 YUM 的内网环境,需下载 RPM 包后 yum localinstall 安装。Tar 包安装:直接解压二进制文件到 /usr/bin/,手动配置 systemd 服务。Containerd 整合:已有 Containerd 时,安装 Docker CLI 并配置连接。Kubernetes 替代:直接使用 K8s 运行容器,无需单独安装 Docker。各方式适用场景不同:RPM 适合官方维护场景,Tar 包轻量但需手动管理
2025-06-04 08:52:01
66
原创 Promise 原理和使用
JavaScript的Promise是处理异步操作的核心对象,代表异步操作的最终状态(成功或失败)。它有三种状态:pending(等待)、fulfilled(成功)和rejected(失败)。创建Promise时传入resolve和reject回调函数,通过.then()和.catch()处理结果和错误。Promise支持链式调用,还提供静态方法如Promise.all、Promise.race等批量处理异步任务。async/await语法让Promise写法更同步化。关键点包括单一.catch()统一处理
2025-06-03 12:27:49
332
原创 Linux Maven Install
在CentOS系统安装Maven的两种方法:推荐手动安装最新版(如3.9.6),需下载解压后配置环境变量;或使用提供的一键安装脚本自动完成下载、解压和配置。验证命令mvn -v显示版本即成功。一键脚本支持自定义版本,默认安装到/opt/maven并自动生效。
2025-06-03 09:09:50
435
原创 vite.config.js server 配置详解
配置是 Vite 中用于设置开发服务器行为的部分。它控制了开发环境下的 HTTP 服务器,处理了端口、代理、热更新等功能。这些配置项让你可以全面控制开发环境中的服务器行为,方便进行开发和调试。此配置用于开发时启用 HTTPS。
2025-03-07 08:51:00
1875
原创 information_schema.processlist 表详解
MySQL的information_schema.processlist表(或SHOW PROCESSLIST命令)是监控数据库连接的重要工具。该表包含8个关键字段:连接ID、用户、主机地址、当前数据库、执行状态(如Query/Sleep)、持续时间、SQL执行状态(如Locked/Sending data)以及执行的SQL语句。通过这些字段,管理员可以实时查看所有连接情况,识别慢查询(TIME>10秒)、空闲连接(COMMAND='Sleep')、锁等待(STATE含lock)等问题,并可终止特定连接
2025-02-26 11:16:10
1521
原创 应用发布策略
本文介绍了四种常见的服务发布策略:蓝绿部署通过冗余部署新旧版本实现快速切换,资源消耗大但运维简单;A/B测试根据请求特征定向分发流量,影响范围小但发布周期长;金丝雀发布逐步迁移流量并动态调整资源,利用率高但可能影响用户体验;流量隔离环境发布通过全链路隔离发现问题,系统复杂但适合核心业务。每种策略各有优缺点,适用于不同场景需求。
2025-01-24 08:37:08
1005
原创 华为OD机试-- 数大雁 E100
一群大雁往南飞,给定一个字符串记录地面上的游客听到的大雁叫声,请给出叫声最少由几只大雁发出。大雁发出的完整叫声为”quack“,因为有多只大雁同一时间嘎嘎作响,所以字符串中可能会混合多个”quack”大雁会依次完整发出”quack”,即字符串中q,u,a,c,k这5个字母按顺序完整存在才能计数为一只大雁如果不完整或者没有按顺序则不予计数。如果字符串不是由q,u,a,ck字符组合而成,或者没有找到一只大雁,请返回-1一个字符串,包含大雁quack的叫声。1<=字符串长度<=1000,字符串中的字符只有。
2025-01-20 13:35:54
434
3
原创 智能成绩表 E100
小明来到某学校当老师,需要将学生按考试总分或单科分数进行排名,你能帮帮他吗?第 1 行 输入两个整数,学生人数n和科目数量m。0
2025-01-07 10:55:23
454
原创 华为OD机试-- 高矮个子排队 E100
我们现在希望小朋友排队,以“高“矮”“高”“矮"顺序排列,每一个“高”位置的小朋友要比相邻的位置高或者相等;虽然也满足“高”“矮”“"高”“矮”顺序排列,但小朋友们的移动距离大,所以不是最优结果。备注:4(高)3(矮)7(高)5(矮)8(高),输出结果为最小移动距离,只有5和7交换了位置,移动距离都是1。第二位小朋友移到第三位小朋友后面,移动距离为1,若移动到第四位小朋友后面,移动距离为2;要求小朋友们移动的距离和最小,第一个从“高”位开始排,输出最小移动距离即可。给出的答案是错误的,最佳答案应该是。
2025-01-03 13:44:04
397
原创 Maven 分不同的环境打包不同目录下的配置文件
文章介绍了如何使用Maven的profile功能实现多环境配置管理。通过在pom.xml中配置不同profile(dev/test/prod),可以指定各环境对应的资源配置目录。默认情况下会排除特定环境下的资源,在打包时通过-P参数激活指定环境,相应目录的配置文件会被复制到目标目录。开发环境默认激活,测试和生产环境分别使用-P test和-P prod参数激活。文中还提醒要注意资源覆盖问题,并建议与Spring Boot的配置结合使用。该方案能够确保最终打包的jar包包含正确环境的配置文件。
2024-12-31 13:46:14
579
原创 基于雪花算法的ID生成器
1位标识,由于long基本类型在Java中是带符号的,最高位是符号位,正数是0,负数是1,所以id一般是正数,最高位是0。41位时间截(毫秒级),注意,41位时间截不是存储当前时间的时间截,而是存储时间截的差值(当前时间截 - 开始时间截)得到的值),这里的的开始时间截,一般是我们的id生成器开始使用的时间,由我们程序来指定的(如下 EPOCH 属性)。12位序列,毫秒内的计数,12位的计数顺序号支持每个节点每毫秒(同一机器,同一时间截)产生4096个ID序号。加起来刚好64位,为一个Long型。
2024-12-24 15:07:55
793
原创 skywalking 搭建以及日志告警配置
本文介绍了SkyWalking APM系统在CentOS8服务器上的安装配置过程,包括后端存储设置为Elasticsearch、端口修改(10960 HTTP、10970 gRPC、10980 WebUI)以及服务重启。同时说明了Java应用如何通过IDEA配置代理参数(VM options和环境变量)接入SkyWalking监控,并提供了logback日志配置模板,展示如何集成SkyWalking的TraceID追踪功能。文中还提及了ThreadPool监控的特殊配置要求,需手动启用apm-jdk-thr
2024-12-24 10:04:23
963
原创 分布式链路追踪系统
《分布式链路追踪技术解析》摘要:本文探讨了分布式系统在微服务架构下带来的扩展性、可靠性优势,以及随之产生的去中心化、不一致性等问题。为解决这些问题,文章重点介绍了分布式链路追踪技术,包括Google Dapper的设计理念(低开销、透明性、可扩展性)及其基础术语(Trace、Span等)。该技术通过全局唯一标识追踪请求路径,实现系统监控和问题诊断。文章还列举了相关开源产品(如OpenTelemetry、SkyWalking)和技术突破(无侵入探针、关联分析等),指出链路追踪已成为可观测性领域的关键技术,在云
2024-11-28 09:04:09
1393
原创 华为OD机试--猜数字 E100
一个人设定一组四码的数字作为谜底,另一方猜,每猜一个数,出数者就要根据这个数字给出提示,提示以XAYB形式呈现,直到猜中位置。其中X表示位置正确的数的个数(数字正确且位置正确),而Y表示数字正确而位置不对的数的个数。例如,当谜底为8123,而猜谜者猜1052时,出题者必须提示0A2B.例如,当谜底为5637,而猜谜者才4931时,出题者必须提示1A0B.当前已知N组猜谜者猜的数字与提示,如果答案确定,请输出答案,不确定则输出NA。第一行输入一个正整数,0N100接下来N。
2024-11-18 13:12:59
567
原创 华为ID机试 -- 分糖果 E100
小明从糖果盒中随意抓一把糖果,每次小明会取出一半的糖果分给同学们。当糖果不能 平均分配只时,小明可以选择从糖果盒中(假设盒中糖果足够)取出一个糖果或放回一个糖果。小明最少需要多少次(取出、放回和平均分配均记一次),能将手中糖果分至只剩一颗。抓取的糖果数(
2024-11-18 11:42:00
775
原创 华为OD机试-日志采集 E100
如果第1个时刻上报,获得积分50。如果第2个时刻上报,最多上报100条,前50条延迟上报1s,每条扣除1分,共获得积分为100-50=50。日志是按行生成,每行记做一条,由采集系统分批上报。T5时刻上报,因为已经超了100条限制,所以只能上报100条,得-23分。给出日志序列,根据该规则,计算首次上报能获得的最多积分数。2.每条日志每延迟上报1秒,扣1分。如果上报太晚,会降低用户的体验;1.每成功上报一条日志,奖励1分。T2 时刻上报得98分,最大。T3时刻上报得37分,最大。T1 时刻上报得1分。
2024-11-17 00:51:09
1119
原创 英文输入法 E100
主管期望你来实现英文输入法单词联想功能。需求如下:依据用户输入的单词前缀,从已输入的英文语句中联想出用户想输入的单词,按字典序输出联想到的单词序列,如果联想不到,请输出用户输入的单词前缀。注意:英文单词联想时,区分大小写缩略形式如”don’t”,判定为两个单词,”don”和”t”输出的单词序列,不能有重复单词,且只能是英文单词,不能有标点符号输入为两行。首行输入一段由英文单词word和标点符号组成的语句str;接下来一行为一个英文单词前缀pre。
2024-11-15 15:51:04
312
原创 贪心的商人 E100
商人经营一家店铺,有number种商品,由于仓库限制每件商品的最大持有数量是item[index],每种商品的价格是item_price[item_index][day]通过对商品的买进和卖出获取利润,请给出商人在days天内能获取的最大的利润。注:同-件商品可以反复买进和卖出备注针对第一件商品,商人在第一天的价格是itemprice[0][0]=1时买入item[0]件,在第三天item_price[0][2]=3的时候卖出,获利最大是8;·针对第二件商品,不进行交易,获利最大时0;
2024-11-15 15:19:49
366
原创 流浪地球 E100
流浪地球计划在赤道上均匀部署了N个转向发动机,按位置顺序编号为0∽N−1。初始状态下所有的发动机都是未启动状态;发动机起动的方式分为“手动启动"和“关联启动"两种方式;如果在时刻1一个发动机被启动,下一个时刻2与之相邻的两个发动机就会被“关联启动”;如果准备启动某个发动机时,它已经被启动了,则什么都不用做;发动机0与发动机0∽N是相邻;地球联合政府准备挑选某些发动机在某些时刻进行”手动启动”,当然最终所有的发动机都会被启动。哪些发动机最晚被启动呢?第一行两个数字N和E。
2024-11-15 01:37:59
1112
原创 光伏场地建设规划 E100
祖国西北部有一片大片荒地,其中零星的分布着一些湖泊,保护区,矿区;整体上常年光照良好,但是也有一些地区光照不太好。某电力公司希望在这里建设多个光伏电站,生产清洁能源,对每平方公里的土地进行了发电评估,其中不能建设的区域发电量为0kw,可以发电的区域根据光照,地形等给出了每平方公里年发电量x千瓦。我们希望能够找到其中集中的矩形区域建设电站,能够获得良好的收益。第一行输入为调研的地区长,宽,以及准备建设的电站【长宽相等,为正方形】的边长,最低要求的发电量,之后每行为调研区域每平方公里的发电量。
2024-11-14 23:54:03
656
原创 Redis Cluster 集群模式
Cluster即 集群模式,类似MySQL,Redis 集群也是一种分布式数据库方案,集群通过分片(sharding)模式来对数据进行管理,并具备分片间数据复制、故障转移和流量调度的能力。Redis集群的做法是 将数据划分为 16384(2的14次方)个哈希槽(slots),如果你有多个实例节点,那么每个实例节点将管理其中一部分的槽位,槽位的信息会存储在各自所归属的节点中。以下图为例,该集群有4个 Redis 节点,每个节点负责集群中的一部分数据,数据量可以不均匀。比如性能好的实例节点可以多分担一些压力。
2024-11-13 00:09:39
882
原创 MySQL 中的集群部署方案
MySQL集群部署方案解析MySQL提供了多种集群部署方案,主要包括Replication主从复制、Group Replication组复制和InnoDB Cluster高可用方案。Replication通过主库写、从库读实现读写分离,但存在主从延迟问题,可通过半同步复制优化。Group Replication采用多节点写入和多数派确认机制,确保数据强一致性。InnoDB Cluster整合了Group Replication、MySQL Shell和MySQL Router,提供完整的高可用解决方案。三
2024-11-12 16:41:35
2366
原创 BOSS的收入 E100
一个XX产品行销总公司,只有一个 boss,其有若干一级分销,一级分销又有若干二级分销,每个分销只有唯一的上级分销。规定,每个月,下级分销需要将自己的总收入(自已的+下级上交的)每满100元上交15元给自己的上级现给出一组分销的关系,和每个分销的收入,请找出boss并计算出这个boss的收入。比如:收入100元,上交15元:收入199元(99元不够100),上交15元:。收入200元,上交30元。
2024-11-12 13:31:58
513
原创 斗地主之顺子 E100
在斗地主只扑克牌游戏中,扑克牌由小到大的顺序为:3.4,5.6,7.8,9,10.J,Q.K.A.2,玩家可以出的扑克牌阵型有:单张、对子、顺子、飞机、炸弹等。其中顺子的出牌规则为:由至少5张由小到大连续递增的 扑克牌只 组成,且不能包含2。例如:(3.4,5,6,7}、(3.4,5,6,7,8,9,10,J,Q,K,A}都是有效的顺子;
2024-11-12 02:13:09
727
原创 Chapter 4 虚拟机性能监控、故障处理工具
本文介绍了Java虚拟机(JVM)常用的性能监控和故障处理工具。主要包括命令行工具jps(查看进程状态)、jstat(统计信息监控)、jinfo(配置信息查看)、jmap(内存映射和堆转储)、jhat(堆分析)和jstack(线程堆栈跟踪)。还提到了可视化工具如JConsole、JHSDB、VisualVM等,以及阿里开源的Arthas监控工具。这些工具可以帮助开发人员在无GUI环境或生产环境中诊断JVM性能问题,分析内存泄漏、线程死锁等故障场景,是Java应用性能调优和问题排查的重要工具集。
2024-11-12 00:07:16
961
原创 Chapter 3 垃圾收集器与内存分配策略
Java 堆中管理者几乎Java世界所有的对象实例,垃圾收集器在堆对象进行回收前,要做的第一件事情就是确定那些对象还活着,那些对象已经死亡(即这些对象永远不会被再次访问到),如何找到这写对象就是我们需要了解的垃圾收集算法。
2024-11-11 15:30:25
656
原创 组装最大可靠性设备
一个设备由N种类型元器件组成(每种类型元器件只需要一个,类型type编号从0~N-1),每个元器件均有可靠性属性,可靠性越高的器件其价格price越贵。而设备的可靠性由组成设备的所有器件中可靠性最低的器件决定。给定预算S,购买N种元器件(每种类型元器件都需要购买一个),在不超过预算的情况下,请给出能够组成的设备的最大可靠性。S N// S总的预算,N元器件的种类total// 元器件的总数,每种型号的元器件可以有多种;此后有total行具体器件的数据。
2024-11-10 15:52:56
259
原创 任务最优调度
给定一个正整数组表示待系统执行的任务列表,数组的每一个元素代表一个任务,元素的值表示该任务的类型。请计算执行完所有任务所需的最短时间。第一行记录一个用半角逗号分隔的数组,数组长度不超过1000,数组元素的值不超过1000第二行记录任务冷却时间,N为正整数,N
2024-11-10 01:42:25
368
原创 华为OD机试真题-书籍叠放
书籍的长、宽都是整数对应 (,w)。如果书 A的长宽度都比 B 长宽大时,则允许将 B 排列放在 A 上面。现在有一组规格的书籍,书籍放时要求书籍不能做旋转,请计算最多能有多少个规格书籍能叠放在一起。输入描述输入:books =[[20,16],[15,11],[10,10],[9,10]]说明:总共4本书籍,第一本长度为20宽度为16;第二本书长度为15宽度为11,依次类推,最后一本书长度为9宽度为10。输出描述输出:3。
2024-11-10 00:56:04
326
原创 华为OD机试真题-仿LISP计算
LISP语言唯一的语法就是括号要配对。形如(OP P1 P2 …),括号内元素由单个空格分割。其中第一个元素 OP 为操作符,后续元素均为其参数,参数个数取决于操作符类型。注意:参数 P1,P2 也有可能是另外一个嵌套的 (OP P1 P2…),当前 OP 类型为 add/sub/mul/div(全小写),分别代表整数的加减乘除法,简单起见,所有 OP 参数个数均为 2。举例:输入:(mul 3-7)输出:-21输入:(add 1 2)输出:3。
2024-11-10 00:24:21
488
原创 华为OD机试真题-矩形绘制
实现一个简单的绘图模块,绘图模块仅支持矩形的绘制和擦除当新绘制的矩形与之前的图形重善时,对图形取并集当新擦除的矩形与之前的图形重善时,对图形取差集给定一系列矩形的绘制和擦除操作,计算最终图形的面积。下面给出示例1和示例2的图示两步绘制的矩形如左侧所示,取并集后得到的图形如右侧所示第一步绘制的矩形在左侧用实线表示,第二步擦除的矩形在左侧用虚线表示,取差集后得到图像如右侧所示标为整数,且数据范围为[-100,100],用例保证坐标有效输出最终图形的面积示例1输入2d 0 2 2 0输出7。
2024-11-09 23:27:07
594
原创 Linux发行版的数量
Linux操作系统有多个发行版,distrowatch.com提供了各个发行版的资料。这些发行版互相存在关联,例如Ubuntu基于Debian开发,而Mint又基于Ubuntu开发,那么我们认为Mint同Debian也存在关联。发行版集是一个或多个相关存在关联的操作系统发行版,集合内不包含没有关联的发行版。
2024-11-09 18:29:51
334
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人