- 博客(43)
- 收藏
- 关注
原创 Nginx进阶配置实战全攻略:SSL部署、防盗链、压缩、代理、限流、请求合并
本文详细介绍了Nginx六大进阶配置技巧:1)SSL证书部署与HTTP强制跳转HTTPS,保障数据传输安全;2)防盗链配置保护静态资源;3)GZIP压缩优化网页加载速度;4)反向代理实现免备案访问;5)流量限流防止服务器过载;6)请求合并减少资源请求次数。每项配置都包含详细的操作步骤和优化建议,从基础到高级配置全覆盖,帮助用户搭建更安全、高效、稳定的Web服务。文章特别强调SSL模块的安装方法、防盗链的局限性、压缩等级的选择技巧以及限流策略的灵活运用,适合不同水平的运维人员参考实践。
2026-01-15 02:50:20
706
原创 Spring Boot Profile 与外部化配置详解
本文详细介绍了Spring Boot中的Profile功能与外部化配置机制。Profile功能通过环境隔离实现不同配置的灵活切换,支持配置文件激活、命令行激活、@Profile注解条件加载以及环境分组。外部化配置支持多种配置源(Properties/YAML文件、命令行参数、环境变量等),并遵循优先级规则加载配置。文章还对比了Properties和YAML文件的特性,重点讲解了YAML的语法规则、数据类型和注意事项。这些功能共同实现了Spring Boot应用在不同环境下的配置管理与灵活切换。
2026-01-15 02:35:24
781
原创 Nginx图解 “反向代理|负载均衡|动静分离”
本文详解 Nginx 反向代理、负载均衡(含参数 / 方式)及动静分离配置,附实操示例,助力运维落地
2026-01-05 02:02:03
1078
原创 前后台Nginx部署同域名路径区分配置
前后端用同一个域名部署时,怎么通过不同路径来区分前台、后台的静态文件,还有API(Application Programming Interface,应用程序编程接口)接口。另外也会适配Vue Router的history(历史)模式,保证页面刷新、路由跳转都正常,不报错。
2026-01-03 10:00:00
1467
原创 安全之加密算法
本文系统介绍了加密算法的分类与应用。主要内容包括:1)加密的必要性,涉及数据安全、合规要求和信任建立;2)关键术语解释,如明文/密文、对称/非对称加密等;3)加密算法三大类型:消息认证码算法(如HMAC-SHA256)用于数据完整性验证,不可逆哈希算法(如SHA-256)适用于密码存储,可逆加密分为对称(AES)和非对称(RSA)两类;4)实际应用建议,强调混合使用不同算法(如TLS协议中非对称加密交换密钥后切换对称加密)以兼顾安全性与效率。文章指出应根据具体场景选择算法,并注意密钥管理和合规性要求。
2025-12-30 01:52:57
954
原创 快速入手NVM
nvm和npm都是node.js版本管理工具,为了解决node.js各种版本存在不兼容现象可以通过它可以安装和切换不同版本的node.js。
2025-12-01 01:27:53
878
原创 SpringAIM6-从入门-媒体生成-记忆存储-工具调用-RAG-内容安全-自定义拦截
Spring AI Advisors API提供了一种灵活而强大的方式来拦截、修改和增强Spring应用程序中人工智能驱动的交互。通过利用Advisors API,开发人员可以创建更复杂、可重用和可维护的AI组件。主要的好处包括封装循环生成的人工智能模式,转换发送到大型语言模型(LLM)的数据,以及提供跨各种模型和用例的可移植性。:用于在调用聊天模型之前和之后执行自定义逻辑。它允许你在发送请求到聊天模型之前修改请求内容,或者在收到响应之后修改响应内容。
2025-04-25 05:00:00
1641
原创 IOC的启动流程(三)-Bean的生命周期&Bean的后置处理器&Bean的实例化
上一章节我们见到了Spring IOC容器的解析配置与注册BeanDefinition两个大的流程,接来下分析Bean的实例化以及Bean的属性注入流程。这里我在进行对IOC的启动流程再做次简要的概述。创建容器:加载配置文件,创建文件转换器,保存配置文件的地址,然后进行刷新容器。加载配置:将配置文件的经过各种解析器进行加载,从Resource对象->Document对象解析配置:解析Document。
2025-04-03 08:00:00
1851
原创 十五、Redis发布订阅模型
Redis发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。Redis客户端可以订阅任意数量的频道。
2025-04-03 06:00:00
445
原创 十四、Redis6.0新功能
Redis ACL是Access Control List(访问控制列表)的缩写,该功能允许根据可以执行的命令和可以访问的键来限制某些连接。在Redis5版本之前,Redis安全规则只有密码控制还有通过rename来调整高危命令比如flushdb,KEYS*,skutdown等。Redis6则提供ACL的功能对用户进行更细粒度的权限控制:可以接入权限:用户名和密码可以执行命令可以操作KEY查看官网:Redis6终于支檬多线程了,告别单线程了吗?
2025-03-31 02:45:00
752
原创 十三、集群企业解决方案
缓存预热就是系统启动前,提前将相关的缓存数据直接加载到缓存系统。避免在用户请求的时候,先查询数据库,然后再将数据缓存的问题!用户直接查询事先被预热的缓存数据!这样减少了磁盘IO。缓存雪崩就是瞬间过期数据量太大,导致对数据库服务器造成压力。如能够有效避免过期时间集中,可以有效解决雪崩现象的出现(约40%),配合其他策略一起使用,并监控服务器的运行数据,根据运行记录做快速调整。
2025-03-30 06:00:00
801
原创 IOC的启动流程(二)-解析配置与注册BeanDefinition
这篇文章是接上一篇文章《IOC的启动流程(一)-创建容器与加载配置》,上一章节我们见到了Spring IOC容器的容器创建和配置加载两个大的流程,接来下分析Bean的解析以及Bean的注册流程。这里我在进行对IOC的启动流程做次简要的概述。创建容器:加载配置文件,创建文件转换器,保存配置文件的地址,然后进行刷新容器。加载配置:将配置文件的经过各种解析器进行加载,从Resource对象->Document对象解析配置:解析Document对象中的imposrt、alias、bean,如果是bean。
2025-03-30 04:38:06
960
原创 十二、Cluster集群
redis提供的服务OPS可以达到10万/秒,当前业务OPS已经达到20万/秒内存单机容量达到256G,当前业务需求内存容量1T。
2025-03-29 23:57:00
1142
原创 IOC的启动流程(一)-创建容器与加载配置
创建容器:加载配置文件,创建文件转换器,保存配置文件的地址,然后进行刷新容器。加载配置:将配置文件的经过各种解析器进行加载,从Resource对象->Document对象解析配置:解析Document对象中的imposrt、alias、bean,如果是bean类型会封装成对象。注册bean:就将对象注册到中。使用 Spring 时,XML和注解是使用得最多的两种配置方式,虽然是两种完全不同的配置方式,但对于 IOC 容器来说,两种方式的不同主要是在的解析上。而对于核心的容器启动流程,仍然是一致的。
2025-03-28 10:15:00
1111
2
原创 IOC启动流程-核心概念&实现思路&核心类篇
官网:https://spring.io/背景Spring 是最受欢迎的企业级java应用程序开发框架,数以百万的来自世界各地的开发人员使用Spring框架,来创建性能好,易于测试,可重用的代码.Spring框架是一个开源的java品台,它最初是由Rod Johnson 编写的,并且2003年6月首次在Apache2.0许可下发布。
2025-03-26 06:00:00
783
原创 十一、Redis哨兵模式
哨兵是一个分布式系统,用于对主从结构中的每台服务器进行监控,当出现故障时通过投票机制选择新的master并将所有的slave连接到新的master。当宕机的master下线找一个slave作为master通知所有的slave连接的master启动新的master与slave全量复制N+部分复制N。
2025-03-26 06:00:00
1072
原创 十、Redis主从复制
高并发能够同时承受大量的数据访问高性能性能比较高,速度比较快高可用系统全年可用时长的占比业界可用性目标5个9,即99.999%,即服务器年宕机时长低于315秒,约5.25分钟。
2025-03-24 06:00:00
1040
原创 SpringMVC初始化原理剖析和源码跟踪
DispatcherServlet 的初始化过程是一个复杂的链式调用,核心在于通过Web IoC容器加载和初始化各种组件,为后续的请求分发做好准备。初始化:从的init()方法开始,解析 Servlet 配置并注入属性,然后调用的方法,里面调用初始化和没有具体的实现。初始化:创建或获取 Spring 的上下文环境,再调用的方法。策略组件初始化:在方法中初始化等核心组件,各个组件如果没有显式配置组件,就会执行默认策略。默认策略:Spring MVC 会使用中定义的默认策略。结束。
2025-03-22 02:32:32
994
原创 SpringMVC的执行流程剖析和源码跟踪
doDispatch 是 Spring MVC 框架中的核心方法,用于处理 HTTP 请求并将其分发到相应的处理器(Handler)。它是 DispatcherServlet 的关键部分,负责协调请求的整个生命周期,包括请求解析、处理器选择、视图渲染和异常处理。如果请求是多部分请求,则调用 cleanupMultipart 方法清理相关资源。如果请求是异步的,则直接返回,后续由异步机制继续处理。
2025-03-22 02:32:09
1610
原创 七、Redis删除策略和淘汰策略
用处理器性能换取存储空间(拿时间换空间)用存储空间换取处理器性能(拿时间换空间)周期性抽查存储空间(随机抽查,重点抽查)
2025-03-21 08:00:00
1110
原创 SpringBoot-自动配置原理剖析和源码跟踪
springboot的自动装配实际上就是为了从spring.factories文件中获取到对应的需要进行自动装配的类,并生成相应的Bean对象,然后将它们交给spring容器来帮我们进行管理SpringBoot先加载所有的自动配置类 xxxxxAutoConfiguration每个自动配置类按照条件进行生效,默认都会绑定配置文件指定的值。xxxxProperties里面拿。xxxProperties和配置文件进行了绑定生效的配置类就会给容器中装配很多组件。
2025-03-21 06:30:00
2165
原创 六、事物&分布式锁
Redis执行指令过程中,多条连续执行的指令被干扰,打断,插队Redis是事物就是一个命令执行的队列,将一系列预定义命令包装成一个整体(一个队列),当执行时,一次性按照添加顺序一次执行,中间不会被打断或者被干扰。一个队列中,一次性,顺序性,排它性的执行一系列命令。Redisson是一个实现的Java操作Redis的工具包,它不仅提供了一系列常用的操作Redis的API,还提供了许多分布式服务。
2025-03-20 06:30:00
1288
原创 Hadoop三种模式运行环境搭建
core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml四个配置文件存放在$HADOOP_HOME/etc/hadoop这个路径上,用户可以根据项目需求重新进行修改配置。-rw-r–r–. 1 hadoop hadoop 15429 6月 29 2015 LICENSE.txt。-rw-r–r–. 1 hadoop hadoop 101 6月 29 2015 NOTICE.txt。
2025-03-20 06:00:00
1014
原创 JavaWeb之WebSocket
客户端向 WebSocket 服务器通知(notify)一个带有所有接收者ID(recipients IDs)的事件(event),服务器接收后立即通知所有活跃的(active)客户端,只有ID在接收者ID序列中的客户端才会处理这个事件。可以通过读取readyState的属性值来获取WebSocket对象的状态,readyState属性存在以下几种属性值。WebSocket需要接收一个url参数,然后调用WebSocket对象的构造器来建立与服务器之间的通信链接。WebSocket的状态。
2025-03-19 06:30:00
3085
原创 四、Redis客户端
jedis:以Redist命令作为方法名称,学习成本低,简单实用。但是Jedis实例是线程不安全的,多线程环境下需要基于连接池来使用。lettuceLettuce是基于Netty实现的,支持同步、异步和响应式编程方式,并且是线程安全的。支持Redis的哨兵模式、集群模式和管道模式。RedisssionRedisson是一个基于Redis实现的分布式、可伸缩的Java数据结构集合。包含了诸如Map、Queue、LockSemaphore、AtomicLong等强大功能。
2025-03-19 06:00:00
1051
原创 五、Redis数据持久化
利用永久性存储介质将数据进行保存,在特定的时间将保存的数据进行恢复的工作机制。持久化过程保存的是什么?将当前数据状态进行保存,快照形式,存储镂数据结果,存储格式简单,关注点在数据(数据快照|RDB)将数据的操作过程进行保存,日志形式,存储操作过程,存储格式复杂,关注点在数据的操作过程(过程日志|REF)
2025-03-18 06:00:00
1617
原创 SpringBoot启动过程原理和源码跟踪-超详细版
ConfigurableApplicationContext接口继承自ApplicationContext接口,并在此基础上多继承了Lifecycle, Closeable接口,基本上所有的ApplicationContext的子类都要实现此接口,它在ApplicationContext的基础上增加了一系列配置应用上下文的功能。如上的代码我写了主要的步骤,接下来我对如上代码做下详细的解释。接着继续往下点,你就会看见这么一坨代码,这就是主要代码。可以自己点进代码,对照释义,这样理解逻辑会清晰很多。
2025-03-18 06:00:00
1694
原创 HTTP协议之请求与响应
响应行:响应数据的第一行,其中HTTP/1.1表示协议版本,200 表示响应状态码,ok表示状态码描述响应头:第二行开始,格式为key:value形式响应体:最后一部分,存放响应数据。
2025-03-17 08:30:00
2402
原创 会话跟踪Session与Cookie
会话,用户打开浏览器,访问web服务器的资源,会话建立,直到有一方断开连接,会话结束,在一次会话中可以包含多个请求和响应
2025-03-17 08:00:00
892
原创 三、通用命令&lua脚本
很多情况下,迭代器需要保存多个状态信息而不是简单的状态常量和控制变量,最简单的方法是使用闭包,还有一种方法就是将所有的状态信息封装到 table 内,将 table 作为迭代器的状态常量,因为这种情况下可以将所有的信息存放在 table 内,所以迭代函数通常不需要第二个参数。Lua 提供了许多的内建函数,你可以很方便的在程序中调用它们,如print()函数可以将传入的参数打印在控制台上。这种无状态迭代器的典型的简单的例子是 ipairs,它遍历数组的每一个元素,元素的索引需要是数值。
2025-03-16 08:30:00
1971
原创 水晶头接线
平行(直通)线的做法是:两头同为568A标准或568B标准,(一般用到的都是568B平行(直通)线的做法)都接一样是可以的,因为一般网线用的只有1.2.3.6 其他就算没接通一样都是可以用的。交叉线的做法是:一头采用568A标准,一头采用568B标准。网线有两种做法,一种是交叉线,一种是平行(直通)线。
2025-03-16 08:00:00
592
原创 SataToken认证授权-快速入门
之所以叫无状态,是因为这种方式是把用户会话封装到Token中(用户,权限等),服务端不用存储用户会话,拿到Token就可以进行鉴权,无效再去获取用户会话,这种方式更加方便,另外少了获取会话的性能开销。使用JWT的好处是:token是无状态的,也就是服务端不用存储用户信息,而且把用户信息封装到Token中,交由前端自己去存储,这种方式的好处是减轻了服务器的压力,坏处是Token会变得很长。通常有2中方式,一是通过后台管理器去手动添加,第二种是自动扫描方法上的注解权限,自动插入到数据库。
2025-03-15 08:00:00
1095
原创 二、Redis数据类型原理解析
原始业务功能设计秒杀京东618活动双11活动派对购票运行平台监控到突发高频访问数据突发时政要闻,别强势关注围观高频复杂统计数据在线人数附加功能-系统功能优化或升级单服务器升级集群Session 管理Token 管理Redis 自身就是一个Map,其中所有的数据都是采用key:value的形式存储数据类型指存储的数据的类型,也就是value部分的类型,key部分永远都是字符串。
2025-03-15 08:00:00
884
原创 一、Redis简介篇
MERZ在Antirez的朋友圈语言中是“愚蠢和傻逼”的代名词,它源于以来广告女郎 Alessia Merz在电视节目说了一堆愚蠢的话,redis之父对她有特殊印象,就给她弄成端口号。如果要让Redis以后台方式启动,则必须修改Redis配置文件,就在解压的redis安装包下,名字就叫 redis.conf。记时信息查询,及时信息查询,如各位排行榜,各类网站访问统计,公交到站信息,在线人数信息(聊天室,网站),设备信号。一个redis服务默认带着16个数据库,默认使用的是索引为0的数据库。
2025-03-14 16:06:45
794
原创 Shiro认证授权-超详细,看这篇就够了
Shiro是apache旗下的一个开源安全框架,它可以帮助我们完成身份认证,授权、加密、会话管理等功能。易于理解的API简单的身份认证,支持多种数据源简单的授权和鉴权简单的加密API支持缓存,以提升应用程序的性能内置会话管理,适用于Web以及非Web的环境不跟任何的框架或者容器捆绑,可以独立运行使用dbcRealm认证时,数据库表名、字段名、认证逻辑都不能改变,我们可以自定义 Realm进行更灵活的认证。编写自定义Realm@Autowired//自定义认证方法。
2025-03-14 08:30:00
1346
原创 支付宝沙箱支付-详细版有案例
沙箱环境 (Beta) 是支付宝开放平台为开发者提供的与线上环境完全隔离的联调测试环境,在沙箱环境中完成的调用不会对线上数据造成任何影响,尤其适合涉及资金链路的能力的调试。由于沙箱为模拟环境,在沙箱完成接口开发及主要功能调试后,请务必在正式环境进行完整的功能验收测试。所有返回码及业务逻辑以正式环境为准。为保证沙箱稳定,沙箱环境测试数据会进行定期数据清理。Beta 测试阶段每周日中午 12 点至每周一中午 12 点为维护时间,在此时间内沙箱环境部分功能可能不可用,敬请谅解。
2025-03-13 22:47:15
2902
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅