自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 消息中间件堵塞应急处理指南

摘要:本文针对消息中间件(如RabbitMQ)堵塞问题提出解决方案。当消息堆积时,建议采取三种紧急措施:临时扩容消费者提升处理能力、启用死信队列隔离异常消息、手动清除过期消息。后续需通过日志分析定位根因,如优化消费者SQL查询、限制生产端速率或调整中间件配置。强调建立监控报警系统,定期压力测试,实现标本兼治。不同中间件可根据实际情况调整处理细节。

2025-11-04 09:17:34 759

原创 Kubernetes 核心资源解析

Kubernetes核心资源解析摘要:本文详细讲解Kubernetes的核心资源体系,包括Pod(最小部署单元,共享网络/存储)、Deployment(Pod管理器,实现副本控制与滚动更新)、Service(提供固定访问入口)和ConfigMap(配置中心)等关键组件。通过Nginx部署实例,对比了Labels和Annotations的区别,并提供了完整的YAML配置和操作命令。文章还介绍了Finalizers的资源删除控制机制,帮助读者系统掌握K8s资源管理方法。

2025-10-30 14:23:56 933

原创 Oauth2.0

OAuth2.0是一种授权机制,允许第三方应用获取用户数据而无需知晓密码。它通过令牌授权保障安全性,令牌具有时效性、可撤销和权限范围控制等特点。OAuth2.0提供四种授权方式:授权码(最安全,适用于有后端应用)、隐藏式(前端应用)、密码式(用户高度信任)和客户端凭证(命令行应用)。授权流程中,第三方应用需先备案获取ID和密钥,用户同意授权后获得令牌用于API请求。令牌到期可通过刷新令牌更新,避免重复授权。OAuth2.0解决了传统密码共享的安全隐患,实现了安全可控的第三方授权访问。

2025-10-27 16:47:57 460

原创 全局事务Global Transaction

摘要:全局事务是解决多服务多数据源事务一致性的方案,如在线书店涉及用户、商家、仓库三个数据库的购买操作。两阶段提交(2PC)通过准备和提交阶段确保原子性,但存在单点故障、性能差等问题。三阶段提交(3PC)增加询问阶段,改善部分问题但未根本解决一致性问题。两种方案都依赖协调者,在网络分区时仍可能导致数据不一致。全局事务适用于需要强一致性的跨系统操作场景。(149字)

2025-10-23 10:45:27 406

原创 四层负载均衡与 NAT Hairpin

本文通过“小区快递”和“餐厅取餐”的生动比喻,解析了NAT Hairpin和四层负载均衡的技术原理及应用场景。NAT Hairpin通过修改路由器规则解决内网访问公网IP的问题,适合小规模场景(如家庭/小企业),配置简单但性能有限;四层负载均衡则像专门的“服务中心”,能高效分配流量至多台服务器,适合高并发业务(如电商),但成本较高。关键区别在于:小规模用NAT Hairpin(免费简易),大规模用负载均衡(稳定扩展)。选择时需权衡场景规模和预算,避免技术误用。

2025-10-22 10:19:16 826

原创 本地事务(Local Transaction)

摘要:本地事务是操作单一数据源的事务,具有ACID特性(原子性、一致性、隔离性、持久性)。通过日志机制实现崩溃恢复,利用三种锁(写锁、读锁、范围锁)和四种隔离级别(串行化、可重复读、读已提交、读未提交)保证隔离性。MVCC技术通过多版本控制提高并发性能。开发中需根据业务在一致性和性能间平衡选择隔离级别。

2025-10-22 08:59:54 1017

原创 nginx负载均衡配置

Nginx后端服务高可用配置摘要:基础配置通过在upstream中添加max_fails(失败阈值)和fail_timeout(剔除时间),并设置proxy_connect_timeout等超时参数,实现被动健康检查。进阶配置可启用主动健康检查模块,定期探测后端健康接口。应急时可手动标记down状态临时下线故障节点。这些配置能有效提升服务可靠性,避免请求转发到故障节点。

2025-10-20 10:24:14 219

原创 提示词工程指南

提示词工程:优化AI沟通的艺术 提示词工程(Prompt Engineering)是通过精准指令引导AI生成理想回应的技术。核心在于明确需求、分解任务、设定角色,并提供参考样例,避免模糊或无关输出。实用技巧包括使用分隔符、指定格式、要求思维链等。应用场景涵盖内容创作、代码生成、数据分析等,需注意避免提示词过简或忽略角色设定。进阶方法包括模板化提示和结合外部工具。关键原则:清晰表达、结构化思考、持续优化,才能高效利用AI能力。

2025-10-15 15:17:10 551

原创 Maven中央仓库发布指南

本文档详细介绍了如何将ReactiveResponse库发布到Maven中央仓库的完整流程。主要内容包括:注册Maven Central账号并验证命名空间、安装配置GPG工具、设置Maven配置文件和POM文件、发布流程及常见问题解决方案。文档提供了详细的步骤说明和示例配置,重点涵盖了账号注册、GPG密钥生成与发布、pom.xml和settings.xml的关键配置项,以及发布后的验证方法。同时针对GPG和Maven相关的常见问题给出了具体解决方案,为开发者提供了全面的发布指南。

2025-10-15 09:58:21 1214

原创 进程、线程、虚拟线程关系

摘要:本文系统解析了进程、线程和虚拟线程的核心概念与关系。进程提供独立内存空间和强隔离性,适合微服务等场景;线程共享进程资源,适合CPU密集型任务;虚拟线程作为JVM轻量级线程,支持百万级并发,特别适合I/O密集型应用。文章详细对比了三者在资源消耗、创建时间等性能指标,通过代码示例展示了线程同步机制和虚拟线程的实践应用。针对不同场景提供了选择建议:进程适用于安全隔离需求,线程适合精确控制并发,虚拟线程则针对高并发I/O场景。最后总结了最佳实践和面试高频问题,指出虚拟线程将成为Java高并发编程的主流方向。(

2025-10-14 10:39:35 421

原创 Future与CompletableFuture详解

本文全面解析Java并发编程中的Future与CompletableFuture技术。Future是基础异步编程接口,代表异步计算结果,但存在阻塞获取、缺乏回调等局限性。CompletableFuture作为Java8增强实现,提供了链式调用、非阻塞回调、多任务组合等强大功能,特别适合复杂异步流程。文章详细比较了两者的差异,并给出使用场景建议:简单任务用Future,复杂流程选CompletableFuture。此外,还介绍了Java21虚拟线程与CompletableFuture的结合使用,通过轻量级线程

2025-10-14 10:32:21 580

原创 Spring MVC 工作原理机制详解

SpringMVC是Spring框架中的Web模块,基于MVC模式实现Web应用开发。其核心组件包括:DispatcherServlet作为前端控制器负责请求分发;HandlerMapping根据URL匹配Controller方法;HandlerAdapter处理参数并调用方法;@RestController标注的Controller处理业务逻辑。在现代前后端分离架构中,ViewResolver通常不再使用,后端主要提供API接口返回JSON数据。SpringMVC通过清晰的组件划分实现高可扩展性,即使采用

2025-10-14 08:55:57 280

原创 Spring Boot单例Bean并发处理机制

SpringBoot默认采用单例模式管理Bean,但不保证线程安全。Tomcat为每个请求分配独立线程,共享单例Bean实例。通过无状态设计(避免实例变量、使用局部变量和ThreadLocal)可确保线程安全。项目示例中,UserService通过RequestContextUtil实现请求上下文隔离,拦截器使用ThreadLocal存储会话数据,有效避免了并发问题。关键原则包括:无状态设计、方法参数传递、局部变量使用和不可变对象,仅在必要时采用同步机制。遵循这些原则,SpringBoot单例Bean能安全

2025-10-14 08:54:27 570

转载 Integer的缓存策略

Java 5引入了整数缓存机制,通过复用-128到127之间的Integer对象来节省内存。当使用自动装箱时,相同值的Integer对象会指向缓存中的同一实例,因此比较返回true;而超出此范围的值会创建新对象,比较返回false。可以通过VM参数调整上限值。该机制也适用于其他包装类如Byte、Short等,但范围固定。这种设计在性能和内存使用间取得了平衡。

2025-10-14 08:51:36 18

原创 正向代理和反向代理

正向代理和反向代理的区别

2023-10-12 17:35:47 122

原创 https理解

本篇文章为个人笔记,如有错误之处还请指出。在讲解https之前,需要简单说明一下几个概念。:通过一个密钥采用一种算法对数据(信息)进行加密和解密:拥有一组密钥对,称之为公钥和私钥,使用公钥加密可以被私钥解密,同理,私钥加密的数据可以被公钥解密。回到正题,什么是https,它的全称为hypertext transfer protocol secure 超文本传输安全协议。https和http有什么不同的地方呢。

2023-09-21 17:01:01 81

原创 springboot 配置双数据源 mysql + TDengine

在一个springboot项目中,双数据源的配置首先需要在application.yml文件中配置连接。此外还有引入对应的jar包。下面需要编写mysql和TDengine的配置文件了。MYSQL@MapperScan属性解释:basepackages : 基于包下面的扫描MyBatis的接口。注意是,只有是接口的将会被扫描注册,如果是具体的类将会被忽略。 sqlSessionFactoryRef : 在指定使用sqlSessionFactoryRef...

2022-03-08 10:30:40 3394

原创 阿里云短信服务SDK使用方法

对于单个发送短信功能而言,首先需要在阿里云平台注册并获取accessKeyId、accessSecret。在由maven管理的项目中,需要添加依赖<dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-core</artifactId> <version>4.5.16</version></dependency

2021-09-11 21:18:56 1433

原创 BeanUtils.copyProperties的用法

BeanUtils.copyProperties(source,target)有两个参数,用于将事件源的数据拷贝到目标源中。但是BeanUtils有两个,一个是spring的,一个是apache的commons下的。用法一样,但是两者的区别在于:一个是将前者拷贝给后者,另一个是将后者拷贝给前面的。public class Test{ public static void main(String[] args) { Student studentOne = ne.

2021-08-20 16:24:33 18976

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除