中间件
文章平均质量分 95
常见中间件
TracyCoder123
人生是旷野,不是赛道。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
RocketMQ技术原理简单解析:从架构到核心流程
在分布式系统中,消息中间件扮演着“通信桥梁”的关键角色,负责解耦服务、削峰填谷和异步通信。RocketMQ作为阿里开源的分布式消息中间件,凭借高吞吐、高可靠、低延迟的特性,广泛应用于电商、金融等核心业务场景。本文将从架构设计、核心组件交互、关键技术原理三个维度,深入浅出地剖析RocketMQ的工作机制,搭配流程图和时序图让复杂概念更直观。原创 2025-12-03 12:09:24 · 1340 阅读 · 0 评论 -
RabbitMQ核心内容:实战教程(java)
RabbitMQ的基础、六大模式、java实战原创 2023-02-19 21:14:21 · 2375 阅读 · 0 评论 -
消息队列技术选型完全指南:从原理到实践
技术选型是一个需要综合考虑多个因素的复杂决策过程。通过深入理解消息队列的核心原理、主流产品的特性差异,以及业务场景的具体需求,我们可以做出更加科学和合理的技术选择。原创 2025-06-20 15:38:18 · 1048 阅读 · 0 评论 -
深入拆解消息队列的存储
消息队列分段单位分区/分片分段文件/对象Kafka支持日志文件(Segment)RocketMQ支持CommitLog 文件Pulsar支持Ledger(账本)RabbitMQ不常用持久化文件(Segment)特性KafkaRocketMQPulsarRabbitMQ批处理支持❌ 单条消息❌ 单条消息压缩支持✅ 批次级别✅ 消息级别✅ 消息级别❌ 不支持事务支持✅ 生产者ID+纪元✅ 事务偏移量✅ 事务ID✅ 事务性队列Schema演进。原创 2025-06-29 17:42:36 · 1443 阅读 · 0 评论 -
消息队列的通信协议
特性KafkaRocketMQPulsarRabbitMQ协议类型自定义二进制自定义二进制自定义二进制AMQP标准传输层TCPTCPTCPTCP连接模式短连接长连接长连接长连接消息模式发布-订阅发布-订阅发布-订阅发布-订阅事务支持有限完整完整有限顺序保证分区内有序队列内有序分区内有序队列内有序协议复杂度简单中等复杂中等扩展性高高很高中等Kafka:适合高吞吐量的日志收集和流处理,消息简短、支持批量传输RocketMQ:适合金融级可靠性和事务消息。原创 2025-06-21 09:45:00 · 1919 阅读 · 0 评论 -
消息队列的网络模型详解:IO多路复用、Reactor模型、零拷贝
特性RabbitMQKafkaRocketMQPulsar语言ErlangJavaJavaJava网络模型ActorReactorReactorReactorIO多路复用epollepollepoll零拷贝无有有有并发模型轻量级进程线程池线程池线程池协议AMQP自定义自定义自定义。原创 2025-06-27 17:18:23 · 1435 阅读 · 0 评论 -
Redis与MySQL数据不一致:核心场景与解决方案
更新MySQL时若发生异常(如网络中断、服务崩溃),会导致MySQL数据未更新,但Redis已写入新值,最终缓存与数据库数据不一致。:用户余额修改,先把Redis中余额改为100元,再更新MySQL时服务宕机,MySQL仍为50元,Redis显示100元。:MySQL主库更新后,从库同步存在延迟(如1s),此时从库读取的是旧数据,回写Redis后导致缓存与主库数据不一致。,以及两者主从架构的延迟问题。:操作链路“更新MySQL → 更新/删除缓存”未执行完,缓存残留旧值,且无重试机制,导致长期不一致。原创 2025-12-02 12:47:56 · 593 阅读 · 0 评论 -
深入浅出Redission
Redis 数据结构:根据锁的特性选择合适的结构(Hash 用于重入锁、ZSet 用于公平锁/可过期信号量、String 用于信号量);Lua 脚本:保证加锁、解锁、计数器修改等操作的原子性,避免并发问题;看门狗机制:针对互斥锁(可重入锁、公平锁、红锁等),自动续期避免锁提前释放,适配长耗时业务。原创 2025-12-02 11:55:16 · 1508 阅读 · 0 评论 -
Java后端Redis客户端选型指南
在分布式架构越来越普及的今天,Redis作为高性能的缓存和中间件被广泛应用。但你是否也曾为这些问题头疼:手写分布式锁时担心死锁,处理高并发缓存时遭遇穿透击穿,用原生Redis客户端实现复杂逻辑时代码臃肿?今天要分享的Redisson,正是解决这些痛点的"瑞士军刀"——它不只是一个Redis客户端,更是一套完整的分布式工具框架。原创 2025-12-01 12:21:43 · 794 阅读 · 0 评论 -
Netty实战:开发一个仿WeChat聊天工具SmartChat
*** TextWebSocketFrame表示消息体为文本类型//先做一个最简单的处理,把消息内容直接打印出来 System . out . println("客户端消息:" + msg . text());} }启动项目后去websocket在线测试网站http://websocket-test.com/进行测试://消息类型 private LocalDateTime time;原创 2023-06-30 19:34:04 · 1729 阅读 · 0 评论 -
Redis追本溯源(四)集群:主从模式、哨兵模式、cluster模式
Redis 有多种集群搭建方式,比如,主从模式、哨兵模式、Cluster 模式。原创 2023-08-07 16:17:42 · 775 阅读 · 0 评论 -
Redis追本溯源(三)内核:线程模型、网络IO模型、过期策略与淘汰机制、持久化
事件驱动的I/O模型(Event-driven I/O Model)是一种高效的I/O处理模型,主要用于处理多个I/O事件。在事件驱动的I/O模型中,程序会监听多个I/O事件,并在事件发生时触发相应的处理程序进行处理,而不是等待I/O操作完成。这种模型避免了阻塞式I/O操作可能带来的性能问题,同时也提高了系统的并发性能。博客总的来说,AIO Server需要有一个线程来处理读写事件,在等待OS内核处理读写事件并异步通知此线程的时候可以继续做其他的事情。和Reactor相比其实现的机制还是很不一样的。原创 2023-07-25 21:07:09 · 568 阅读 · 0 评论 -
Redis追本溯源(二)数据结构:String、List、Hash、Set、Zset底层数据结构原理
使用 skiplist 查找数据的时候,会先从最高层,也就是上图中的 level 2,开始向后遍历,这里发现 level 2 层小于 48 的最大节点是 18 节点,那么向下一层来到 level 1,继续从 18 节点向后遍历。而红黑树的实现相对复杂,虽然也具有O(log n)的时间复杂度,但是在实际应用中,它的性能可能会受到平衡因子的影响,而且在极端情况下,可能会退化为链表,从而影响性能。如果字符串对象的长度超过了当前分配的空间,Redis会分配一个新的空间,并将原有的字符串内容复制到新的空间中。原创 2023-07-24 23:42:12 · 690 阅读 · 0 评论 -
Redis缓存实战:Hash读写、Java对象的存取、热点数据不过期、接口限流
Hash key为指定的keyword与全限定类名的拼接,Hash中存储的K为属性名,V为属性值。可设置此Hash的过期时间,也可设置为永不过期。从Redis Hash中读取Object并解析成对应类型的Java Object使用反射机制的原因是:不限制Object的类型,可将Redis缓存复用到任意项目中,反射机制为程序带来了灵活性。假设我们在此之前缓存的热点数据都设置为了永不过期,长此以往,Redis数据库的数据量会越来越大,会带来不必要的负担。原创 2023-07-21 00:03:10 · 934 阅读 · 0 评论 -
Redis追本溯源(一)先导:关于Redis的三个问题
选 Redis 的一个原因是公司里面大多数人的技术栈,他们都熟悉 Redis,相较于其他缓存技术来说,Redis 的部署、维护、使用以及线上问题的处理,我们更能 hold 得住。Redis具有许多亮点,例如原子操作、优秀的内存数据库性能、内置的持久化机制,以及异步复制和部分复制等功能。Redis是一个开源的、内存的、具有数据结构的存储系统,通常被用作数据库、缓存、消息队列和流处理引擎。Redis提供了多种语言的客户端,这意味着Redis拥有良好的生态系统,有丰富的资料和低学习成本。原创 2023-07-18 14:00:00 · 1186 阅读 · 0 评论 -
Redis:四万字总结Redis语法、配置、实战
四万字总结Redis语法、配置、实战原创 2023-01-06 16:17:39 · 1379 阅读 · 0 评论 -
MongoDB上手教程:环境安装、图形化应用、增删改查、mongoose
文章目录一、准备知识二、增删改查操作三、参考:尚硅谷教程:这里一、准备知识二、增删改查操作三、原创 2021-12-06 22:16:17 · 834 阅读 · 0 评论
分享