自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 服务保护:线程隔离(线程池隔离、信号量隔离)、滑动窗口计数算法、漏桶算法、令牌桶算法

摘要:服务稳定性保障核心技术包括:1)线程隔离(线程池/信号量隔离)防止故障扩散;2)流量控制算法(滑动窗口计数精确保障限流,漏桶算法平稳控制速率,令牌桶算法应对突发流量);3)分布式ID生成(雪花算法)。Sentinel与Gateway限流实现差异明显:Gateway采用Redis令牌桶,Sentinel则综合运用滑动窗口(默认)、漏桶(排队)和令牌桶(热点参数)多种算法,形成多维度保护机制。

2025-11-19 18:56:10 330

原创 注册中心:环境隔离、分级模型、Eureka与Nacos

摘要:Eureka与Nacos在服务注册与发现方面具备基础共性,但Nacos在功能扩展性和治理粒度上优势显著。Eureka采用纯AP模型,专注服务发现;Nacos支持AP/CP动态切换,集成配置管理、服务路由等能力,并通过Namespace-Group五级模型实现精细治理。Nacos的长连接推送、主动健康检查等机制,使其在实时性和可靠性上更优,适用于复杂微服务场景,而Eureka更适合轻量级AP架构。二者的选择需权衡一致性需求、功能完备性与运维复杂度。

2025-11-19 18:52:45 732

原创 分布式事务:CAP和BASE、AT模式脏读问题、TCC模式、最大努力通知

分布式事务通过CAP定理与BASE理论平衡一致性与可用性:CAP定理要求选择CP或AP模式,BASE理论则通过基本可用、软状态和最终一致性实现妥协。AT模式易引发脏写问题,需搭配悲观锁/乐观锁/全局锁解决;TCC模式通过Try-Confirm-Cancel三阶段保障强一致,适合核心业务;最大努力通知模式则适用于非核心业务的最终一致场景。不同锁机制在并发性能、实现复杂度方面各具特点,需根据业务需求选择适配方案。

2025-11-18 14:36:28 416

原创 redis缓存:一致性,穿透,雪崩,击穿

Redis 缓存面临四大核心问题:1)缓存一致性,可通过延时双删和TTL保障;2)缓存穿透,建议布隆过滤器与空对象缓存组合防护;3)缓存雪崩,需错开过期时间并部署高可用架构;4)缓存击穿,对热点数据采用永不过期或互斥锁策略。针对不同场景的读写特性和一致性要求,应选择Cache-Aside模式、异步更新等适配方案,通过多重防护机制确保缓存系统的稳定性和数据准确性。

2025-11-18 14:34:06 709

原创 redis内存回收机制:过期key和内存淘汰策略

Redis内存回收机制通过多层策略协同工作,包括过期Key的三层清理(惰性删除+定期快慢模式+淘汰前清理)和8种内存淘汰策略(含LFU深度优化)。LFU采用频率统计和衰减机制,比LRU更精准识别冷数据。配置需根据业务场景调整,如高频缓存推荐volatile-lfu,全缓存用allkeys-lfu,关键数据存储用noeviction。监控指标应关注内存使用、淘汰Key数和缓存命中率。常见误区包括认为过期Key会立即删除、淘汰策略只删过期Key等。整体实现CPU开销、内存利用和数据可用性的平衡。

2025-11-17 15:19:43 455 6

原创 redis如何判断key在哪个实例?

Redis中判断key所在实例的方法取决于部署架构:单实例情况下直接使用EXISTS命令即可;集群环境下通过哈希槽定位。计算key的哈希槽(CRC16(key)%16384),再使用CLUSTER SLOTS查找槽对应主节点。编程语言可通过客户端库实现同样逻辑。注意哈希标签机制和槽迁移时的动态变化。

2025-11-17 15:15:44 231

原创 Elasticsearch笔记

摘要:本文介绍了在Java中使用Elasticsearch的主要方法,重点讲解了通过Java High Level REST Client进行交互。内容包括环境准备(Maven依赖配置、客户端实例创建)和核心CRUD操作示例(如索引创建与删除)。文中提供了完整的代码示例,并强调了版本匹配、线程安全等最佳实践,为Java开发者提供了Elasticsearch集成的实用指南。(149字)

2025-11-16 06:50:29 693

原创 消费者确认机制

RabbitMQ提供两种消费者确认机制:自动确认(AUTO)和手动确认(MANUAL)。自动确认模式会在消息接收后立即删除,效率高但可靠性差;手动确认需显式调用basicAck()或basicNack(),确保消息处理完成后才删除,适合核心业务。SpringAMQP通过配置AcknowledgeMode和Channel API实现这两种模式,手动确认时需注意避免消息无限重试和队列阻塞问题。开发者应根据业务需求选择合适的确认机制,平衡可靠性和性能。

2025-11-16 06:49:59 609

原创 RabbitMQ笔记

本文介绍了RabbitMQ在Java/Spring Boot应用中的核心使用方式。主要内容包括:1) Maven核心依赖配置;2) 关键application.yml参数设置;3) 交换机、队列和绑定的声明方式;4) 生产者(RabbitTemplate)和消费者(@RabbitListener)的实现示例;5) 消息可靠性保障机制;6) 常见工作模式简介。文章提供了完整的代码示例,涵盖从基础配置到高级特性的实现,并指出可通过15672端口访问管理界面。适用于需要快速掌握RabbitMQ在Spring Bo

2025-11-15 03:57:08 313

原创 解决消息幂等方案

消息幂等性可保障重复消息处理结果一致,避免数据异常。其源于生产者重试、消费者未提交位点等分布式系统不可靠场景,核心思路是 “唯一标识 + 去重存储”。常见方案有:数据库唯一索引(高可靠)、Redis 原子操作(高并发)、业务自身幂等设计(最优)及中间件去重。实践中需确保 ID 唯一、操作原子性,可依并发量与可靠性要求选适配方案。

2025-11-14 21:26:07 656

原创 SpringAMQP实现发送者确认

在RabbitMQ中,发送者确认(Publisher Confirm)机制用于确保生产者发送的消息已被交换机接收,或已被队列持久化,避免消息丢失。SpringAMQP通过封装RabbitMQ的原生确认机制,提供了更简洁的实现方式。

2025-11-14 21:18:25 326

原创 解决Seata容器连MySQL报错Communications link failure!

Seata容器连接MySQL时出现通信失败,排查发现是端口配置错误:MySQL启动用`-p 3308:3306`做主机-容器端口映射(主机3308对应容器3306),但Seata连接URL却写了`mysql:3308`(错用主机端口)。

2025-10-15 18:43:57 492

原创 MySQL数据库:基础篇

数据库基础知识点离不开反复的思考与实践——无论工作场景还是面试环节,都会和它紧密联系,其重要性不言而喻!

2025-03-21 13:20:23 1511

原创 Java基础篇

这个Java基础篇是本人从0到1的创作,涵盖了Java基础的所有知识点,大家可以选择性浏览。感受Java的魅力!!!!

2025-03-21 13:09:39 1753

原创 Nginx笔记

摘要:本文介绍了反向代理和正向代理的区别,反向代理可隐藏真实服务器IP并进行负载均衡。通过增加服务器数量和动静分离(动态/静态页面由不同服务器处理)来提升性能。文章详细说明了Nginx的常用命令、配置文件结构(包括全局块、events块和http块)以及负载均衡策略(轮询、权重、IP哈希等)。同时提供了Tomcat服务器安装、启动和Nginx反向代理配置的具体步骤。

2025-03-21 13:04:23 666

空空如也

空空如也

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

TA关注的人

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