- 博客(95)
- 收藏
- 关注
原创 SPI机制在JDK与Spring Boot中的应用
SPI) 是一种服务发现机制,它允许第三方提供者为核心库或主框架提供实现或扩展。这种设计允许核心库/框架在不修改自身代码的情况下,通过第三方实现来增强功能。1.1JDK原生的SPISPI,即服务提供者接口,是一种特定的设计模式。它允许框架或核心库为第三方开发者提供一个预定义的接口,从而使他们能够为框架提供自定义的实现或扩展。核心目标SPI机制让框架的核心与其扩展部分保持解耦,使核心代码不依赖于具体的实现。动态加载:系统能够通过特定的机制(如Java的)动态地发现和加载所需的实现。
2026-11-06 17:19:22
144
原创 Maven POM (Project Object Model) 配置终极详解:从入门到精通,一文打通依赖管理与构建全流程
POM(Project Object Model)是 Maven 的核心抽象。它不仅仅是一个 XML 配置文件,它是 Maven 对“一个软件项目”的完整内存模型表示。当 Maven 运行时,它首先将pom.xml解析为一个 Java 对象(),所有的构建逻辑、依赖解析、插件执行都基于这个内存模型,而非直接读取 XML。XML 只是序列化格式,POM 才是运行时实体。这也是为什么如此重要——它展示的是合并了继承、Profile、默认值之后的“真实内存模型”,而非你手写的那个 XML 文件。
2026-10-26 09:03:20
367
原创 MySQL 性能关键参数配置详解
查单个参数 → SELECT @@param_name;查一类参数 → SHOW VARIABLES LIKE 'pattern';确认是否全局生效 → 用 SHOW GLOBAL VARIABLES修改后验证 → 再次查询确保值已更新永久保存 → 同步更新 my.cnf 配置文件终极建议/bin/bashecho "=== MySQL 关键参数 ==="【数据库知识】MySQL 性能关键参数配置详解(生产环境必备)_mysql配置参数详解-优快云博客。
2026-08-11 10:11:44
408
原创 密码存储安全
密码存储安全的核心目标是:即使数据泄露,攻击者也无法在合理时间内还原出原始密码。BCrypt通过“自动加盐+自适应哈希”完美实现了这一目标,是当前最平衡的密码存储方案。绝不存储明文:任何情况下都不能将明文密码写入数据库、日志或配置文件。使用带盐值的自适应哈希:盐值确保相同密码哈希不同,自适应哈希确保破解成本极高。全生命周期防护:从密码生成(强策略)、传输(HTTPS)、存储(BCrypt)到验证(防暴力破解),每个环节都不能松懈。新系统直接采用Argon2或BCrypt(工作因子12)。
2026-07-20 11:18:12
365
原创 日5千万请求的系统如何设计部署方案
(1)设计系统的部署方案需要根据系统的流量来作为依据,计算系统的峰值QPS。(2)高并发的系统需要使用缓存配置数据库来提高系统的并发能力。(3)系统的异步任务采用MQ来处理,不仅实现了削峰填谷,还有解耦的作用。
2026-07-03 13:29:31
234
原创 Docker集群及docker-compsoe
Swam是Docker引擎内置(原生)的集群管理和编排工具。Docker Swarm是Docker官方三剑客项目之一,提供 Docker容器集群服务,是Docker官方对容器云生态进行支持的核心方案。使用它,用户可以将多个Docker主机封装为单个大型的虚拟Docker主机,快速打造一套容器云平台。具有容错能力的去中心化设计、内置服务发现、负载均衡、路由网格、动态伸缩、滚动更新、安全传输等。使得Docker原生的 Swam集群具备与Mesos ,Kubernetes竞争的实力。
2026-07-02 15:06:51
268
原创 为什么 Linux 要用“挂载”?而不是直接显示 C 盘、D 盘?
挂载这个词听起来有点抽象,其实可以理解成一句话:把一个存储设备,接到 Linux 目录树上的某个位置。比如你有一块新硬盘,它在 Linux 里的设备文件可能是:但这个设备文件本身并不代表你能直接像普通目录一样进去存文件。你需要先准备一个目录,比如:这句话的意思就是:把 `/dev/sdb1` 这个分区,挂到 `/mnt/data` 这个目录下面。看到的就不再是原来这个空目录,而是 `/dev/sdb1` 这个分区里的文件内容。也就是说,`/mnt/data` 这个目录变成了访问这块硬盘的入口。
2026-06-25 16:33:26
348
原创 Docker部署项目,/var/lib/docker/overlay2目录满了如何清理?
docker 容器占用磁盘空间多的情况,大部分因为是因为长时间没有清理日志或者没有的镜像容器太多占了磁盘空间。可以删除日志之后限制日志文件大小。或者使用docker system prune或者 docker system prune -a 命令删除不用的镜像与容器。
2026-06-25 14:35:06
682
原创 基于ISA-95对象模型的8个核心指标解析(运营+经营)
ISA-95标准的核心价值的在于实现企业生产运营与经营管理的标准化、规范化集成,而五类核心对象模型与8个核心指标的联动,正是该标准落地应用的关键抓手。本文系统梳理了ISA-95五类核心对象的核心内容,详细解析了8个核心指标(4个运营+4个经营)的编码、定义、公式及应用说明,明确了“对象-指标”的对应逻辑,并提供了可直接应用的架构图文案,形成了一套完整、实用、贴合标准的技术方案。
2026-06-24 15:00:43
321
原创 网络工具nc的常见功能和用法
nc 是一个Linux环境下常用的工具命令,可以用来帮助开发者查询和解决网路问题,通常被认为是 NetCat 工具的缩写,在网络工具中有“瑞士军刀”的美誉。nc 在Linux环境下常常是自带的,如果你使用的Linux发行版本没有这个工具也可以自行安装,比如在CentOS上的安装命令就是 yum install nc -y,并且这个工具在Windows上也可以直接下载使用,下载页面地址为 netcat,简约而不简单。
2026-06-17 16:57:58
425
原创 自建CA并生成自签名SSL证书
域名级(DV)、企业级(OV)、增强级(EV),价格从每年几百元到上万元不等,再细分的话还有单域名证书通配符证书多域名证书等等,有些证书还可以追加域名。
2026-06-17 16:06:54
648
原创 HTTPS原理全面介绍【备查】
安全的超文本传输协议,网景公式设计了SSL(Secure Sockets Layer)协议用于对Http 协议传输的数据进行加密,保证会话过程中的安全性。缩写:HTTPS,常称为HTTP over TLS,HTTP over SSL或HTTP Secure两大作用:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。
2026-06-03 17:34:26
2586
原创 【DNS解析记录类型】如何选择?一文详解A、CNAME、MX、TXT等
DNS记录是域名与服务器之间的关键桥梁,常见类型包括A记录(绑定IPv4地址)、AAAA记录(IPv6地址)、CNAME记录(域名跳转)、MX记录(邮件服务器)、TXT记录(验证/防垃圾)等。文章详细介绍了各类记录的用途和适用场景,如网站解析、CDN加速、企业邮箱搭建等,并推荐根据需求选择对应记录类型。合理配置DNS记录是保障网络服务稳定安全的基础,建议修改前备份并验证记录。
2026-06-03 15:27:31
631
原创 阿里云邮件服务配置
一、前提条件1.一台有公网ip的服务器2.要有一个主域名二、阿里云配置1.首先在阿里云开通邮件推送2.新建一个发信域3.新建好了后,点击刚才新建发信域后面的配置4.配置里面有下图里面的将 下图中红框的名称和记录值先记录下来5,然后到自己的服务器的域名配置页面,分别配置第4步记录的那4个记录6,创建发信地址。
2026-06-03 15:25:37
396
原创 WINDOW 下CMD 根据端口号、程序名称 查询 及杀死进程
taskkill /f /t /im 进程名称。taskkill /f /t /pid 进程号。
2026-06-03 14:17:16
257
原创 linux 自动清除日志 脚本
筛选修改时间(modification time):只匹配普通文件(不包括目录、链接等)。PS: 每日凌晨一点执行定时清理日志任务。忽略不存在的文件且不提示确认)。表示文件最后修改时间在。修改的文件(严格来说是。:对每个匹配的文件执行。被替换为当前文件路径,
2026-06-01 13:38:47
206
原创 如何保证接口的幂等性
幂等是一个数学与计算机学概念,在数学中某一元运算为幂等时,其作用在任一元素两次后会和其作用一次的结果相同。在计算机中编程中,一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。幂等函数或幂等方法是指可以使用相同参数重复执行,并能获得相同结果的函数。这些函数不会影响系统状态,也不用担心重复执行会对系统造成改变所谓接口幂等性,就是一次和多次请求某一个资源对于资源本身应该具有同样的结果。接口的 幂等性(Idempotence) 是指一个操作在执行一次和多次执行时,其结果是一样的。
2026-06-01 09:52:33
504
原创 Java网络编程深入解析
协议(Protocol)指的是计算机网络传输数据时遵循的规则和标准。在计算机网络中,各个设备通过协议进行通信,以确保数据的可靠性、安全性和正确性。它定义了在计算机网络中进行通信所需的规则和标准,并规定了通信的格式、内容、顺序、错误处理等细节。协议可以根据功能和层级分类,常见的协议有:应用层协议如HTTP、FTP、SMTP等,主要用于应用程序之间的通信和数据传输。传输层如TCP、UDP等,主要负责数据传输的可靠性和流量控制。网络层协议如IP、ICMP、ARP等,主要处理数据在网络中的路径选择和寻址。
2026-05-30 16:43:23
471
原创 SSH远程免密登录的两种方式
其实两种方式本质上没有区别,都是将公钥放到目标服务器上即可,一种是在本机上采用scp的方式复制到目标主机的 ~/.ssh/authorized_keys文件中,一种是直接登录目标服务器直接找到文件,粘贴进去。两种方法本质上一样。
2026-05-29 15:03:48
418
原创 通过curl命令分析http接口请求各阶段的耗时等
Curl是一个用于发送和接收请求的命令行工具和库,可以用来测试网站能否正常访问、网站URL响应什么状态码、网站响应文本内容、连接接口的请求时间等curl 是常用的命令行工具,用来请求 Web 服务器,它的名字就是客户端(client)的 URL 工具的意思,如果熟练的话,完全可以取代 Postman 这一类的图形界面工具。
2026-04-25 14:47:49
166
原创 RabbitMQ详解,用心看完这一篇就够了
RabbitMQRabbitMQ是使用Erlang语言开发的开源消息队列系统,基于AMQP协议来实现。AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。AMQP协议更多用在企业系统内,对数据一致性、稳定性和可靠性要求很高的场景,对性能和吞吐量的要求还在其次。RabbitMQ可以构建异地双活架构,包括每一个节点存储方式可以采用磁盘或者内存的方式。RabbitMQ的集群架构非常经典的 mirror 镜像模式,保证 100% 数据不丢失。
2026-04-08 09:55:58
484
原创 OAuth2 的原理介绍
用授权码换令牌:第三方应用的后端服务器收到授权码后,用自己的身份(client_id)和密钥(client_secret)连同授权码一起,直接向后端发送请求给微信的授权服务器,请求换取访问令牌(Access Token)。一句话概括OAuth 2.0 是一个授权框架,它允许第三方应用在用户授权的前提下,获得访问用户在某服务(如微信 、GitHub、Google)上存储的特定资源(如头像、昵称、照片)的权限,而无需将用户的用户名和密码提供给第三方应用。它接收并验证访问令牌,然后返回对应的资源。
2026-04-02 11:32:23
550
原创 Mysql 主从服务复制部署
一般数据库都是读取压力大于写数据压力,主从复制即为了实现数据库的负载均衡和读写分离。通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,主服务器只负责写,而从服务器只负责读。如生产环境中,使用redis 数据库作为缓存数据库,用户访问业务数据时,先从缓存数据库查询,如果缓存数据库没有,再从业务数据库读取。架构图如下。
2026-04-02 10:03:55
427
原创 一文让你彻底搞懂AQS(通俗易懂的AQS)
AQS,Abstract Queued Synchronizer (简称AQS)是一个用来构建锁和同步器的框架,它通过一个 int类型的同步状态 (state和一个先进先出 (FIFO) 的线程等待队列来管理资源访问,并支持独占和共享两种同步模式。比如我们提到的ReentrantLock,Semaphore,其他的诸如ReentrantReadWriteLock,SynchronousQueue,FutureTask等等皆是基于AQS的。
2026-03-23 17:26:47
458
原创 RestControllerAdvice注解与全局异常处理
从该注解的名字可以看到,这是一个与切面有关的注解,事实上也是如此,我们都知道切面的注解肯定都有个作用范围,切面类的注解只能对其作用范围内的操作,实现切面操作.RestCntrollerAdvice的作用范围是什么呢?
2026-03-23 14:22:21
391
原创 SpringCloud Alibaba 入门到精通 - Gateway
网关的概念从开始有网络时基本就存在了,作用一般是鉴权、白名单、跨域设置、负载均衡、灰度发布、失败重试、路由断言等。简单总结来说就是为了做一些统一的不涉及业务活动的动作。将这些动作和业务隔离开来,解耦了这些无关业务的动作,同时也可以使得业务服务更加清晰、安全本位demo使用的主要版本信息/***/// 定义流控等异常信息//组装返回信息// 流控异常}else{//组装返回信息。
2026-03-23 13:24:48
425
原创 跨域问题的来龙去脉
跨域这个概念是对于前端来说的,准确的说是对于浏览器来说的,因为安全问题,浏览器会禁止js访问非同源的资源,访问非同源的资源就是跨域。那什么样的资源才算是同源呢?
2026-03-23 10:09:34
426
原创 Java I/O 模型详解:BIO、NIO、AIO
特性BIO (同步阻塞NIO (同步非阻塞)AIO (异步非阻塞)全称JDK 版本1.0+1.4+1.7+核心模式ReactorProactor同步/异步同步同步异步阻塞/非阻塞阻塞非阻塞非阻塞编程复杂度低高中高(回调思维)可靠性连接数少时可靠高高吞吐量/性能低高理论上最高底层机制selectpollepoll(Linux)IOCP(Windows),io_uring(Linux)选择建议BIO:仅适用于连接数非常少且对开发速度要求极高的场景。NIO。
2026-03-19 10:18:11
607
原创 一文彻底搞懂:Runnable、Callable、Future、FutureTask 之间的关系
名称作用核心特性Runnable无返回值的任务脚本run()Callable有返回值的任务脚本Future异步结果的票据FutureTaskRunnable + Future 的组合体run() 执行、保存结果、get() 返回一句终极总结:Runnable 和 Callable 负责“写任务”。Future 负责“取结果”。FutureTask 负责“执行任务 + 保存结果”。submit(callable) = 自动生成 FutureTask。
2026-03-13 10:27:41
436
原创 高频使用的MySQL技巧
(4, '赵六', 'zhaoliu@example.com') -- 不存在则插入。(1, '张三', 'zhangsan_new@example.com'), -- 存在则更新。(3, '王五', 'wangwu@example.com');(1, '张三', 'zhangsan@example.com'), -- 重复,跳过。-- 结果:商品A(1,2,3)、商品C(1,4)、商品E(1,5,6)-- 查询指定用户的主题配置(->符号提取JSON值)
2026-03-11 13:48:51
392
原创 JVM 核心知识点总结
JVM = Java Virtual Machine ,Java虚拟机,是运行所有Java程序的核心运行环境,是Java语言的基石。JVM本质是一个软件模拟的计算机,有自己的指令集、内存区域、寄存器等,能识别并执行Java编译后的字节码文件(.class)虚拟机栈服务于Java方法,本地方法栈服务于native本地方法类加载子系统将磁盘中的.class字节码文件,加载到JVM的方法区,并在堆中生成对应的java.lang.Class对象,这个过程就是类加载,只加载一次,复用永久。
2026-03-10 14:46:25
446
原创 详谈Mysql数据库InnoDB引擎与MyISAM引擎
我来说明一个场景,大家就能大概明白它是做什么用的了。我们都知道,既然是数据库,我们就是用来存储数据的,数据库中会有很多的表,那么各位有没有想过数据库底层究竟是以什么样的格式存储这些表的数据的呢?这就会用到我们存储引擎,存储引擎在以前叫做表处理器,是后来才改名叫存储引擎的,它的功能就是接收收到的指令,然后对表中的数据进行读写操作。你可以把它理解为存储数据库的表时表的类 型,在MySQL数据库中,有很多的存储引擎,它们在存储数据库的表时存储格式也是不一样的。
2026-03-10 09:44:09
322
原创 shell学习教程
shell#变量名不能用数字开头#等号左右两侧不能有空格#变量的值如果有空格,必须用引号包含预定义变量作用最后一次执行的命令的返回状态。如果这个变量的值为0,证明上一个命令正确执行;如果这个变量的值为非О(具体是哪个数,由命令自己来决定),则证明上一个命令执行不正确了$$当前进程的进程号(PID)后台运行的最后一个进程的进程号(PID)#ls命令正确执行#预定义变量“$?”的值是0,证明上一个命令执行正确ls:无法访问install.log:没有那个文件或目录。
2026-02-10 14:06:37
721
原创 设计模式之观察者模式
观察者模式(Observer Pattern),又称监听器模式(Listener Pattern) 或 发布-订阅模式(Publish-Subscribe Pattern),属于行为型设计模式。该模式定义了一种一对多的依赖关系,当一个对象状态发生改变或执行某个逻辑时,所有依赖于该动作的对象都会收到通知并作出相应的动作该模式的目的就是为了使系统中的主线业务与各个与主线业务相关的支线业务之间实现解耦定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。
2026-01-19 15:03:30
938
原创 设计模式之访问者模式
最复杂的设计模式,并且使用频率不高,《设计模式》的作者评价为:大多情况下,你不需要使用访问者模式,但是一旦需要使用它时,那就真的需要使用了我们要根据具体情况来评估是否适合使用访问者模式,例如,我们的对象结构是否足够稳定,是否需要经常定义新的操作,使用访问者模式是否能优化我们的代码,而不是使我们的代码变得更复杂。
2026-01-15 11:18:57
934
原创 设计模式之迭代器模式
迭代器模式(,属于行为型设计模式,在java和python中十分常见。目的是在不暴露集合内部结构的条件下,顺序访问该集合内部的元素。提供一种顺序访问一个集合中所有元素的方式, 而又无需暴露该对象的内部表示。在需要顺序访问集合元素的场景中,传统方式是通过以下方式对集合元素进行遍历i++) {在该方式中,对元素的获取是通过直接调用集合的get()方法完成的,即对元素的遍历由集合本身负责而使用迭代器设计模式后,集合本身不负责元素的遍历,而提供一个获取迭代器的方法iterator()
2026-01-15 11:07:10
629
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅