消息队列系统对比分析

RocketMq和RabbitMq的对比【主流消息队列】 首先整理这个文章是因为我正好有机会实战了一下rocketmq,的一个开源消息中间件。所以就与以往中rabbitmq进行小小的比较一下。这里主线的根据常见面试问题进行整理。 阅读详情

📕我是廖志伟,一名Java开发工程师、《Java项目实战——深入理解大型互联网企业通用技术》(基础篇)、(进阶篇)、(架构篇)清华大学出版社签约作家、Java领域优质创作者、优快云博客专家、阿里云专家博主、51CTO专家博主、产品软文专业写手、技术文章评审老师、技术类问卷调查设计师、幕后大佬社区创始人、开源项目贡献者。

📘拥有多年一线研发和团队管理经验,研究过主流框架的底层源码(Spring、SpringBoot、SpringMVC、SpringCloud、Mybatis、Dubbo、Zookeeper),消息中间件底层架构原理(RabbitMQ、RocketMQ、Kafka)、Redis缓存、MySQL关系型数据库、 ElasticSearch全文搜索、MongoDB非关系型数据库、Apache ShardingSphere分库分表读写分离、设计模式、领域驱动DDD、Kubernetes容器编排等。不定期分享高并发、高可用、高性能、微服务、分布式、海量数据、性能调优、云原生、项目管理、产品思维、技术选型、架构设计、求职面试、副业思维、个人成长等内容。

Java程序员廖志伟

🌾阅读前,快速浏览目录和章节概览可帮助了解文章结构、内容和作者的重点。了解自己希望从中获得什么样的知识或经验是非常重要的。建议在阅读时做笔记、思考问题、自我提问,以加深理解和吸收知识。阅读结束后,反思和总结所学内容,并尝试应用到现实中,有助于深化理解和应用知识。与朋友或同事分享所读内容,讨论细节并获得反馈,也有助于加深对知识的理解和吸收。💡在这个美好的时刻,笔者不再啰嗦废话,现在毫不拖延地进入文章所要讨论的主题。接下来,我将为大家呈现正文内容。

优快云

一、RabbitMQ知识体系

消息模型

RabbitMQ,作为一款遵循AMQP协议的消息队列系统,其消息模型的设计旨在实现高效、可靠的消息传递。在RabbitMQ中,消息的生产、传递和消费过程涉及多个核心组件,以下将详细阐述这些组件及其工作原理。

  • 生产者(Producer):生产者是消息的源头,负责将消息发送到RabbitMQ中。在实际应用中,生产者可以是任何发送消息的应用程序,如Web服务、移动应用或后台任务队列。生产者在发送消息时,需要指定消息的内容、属性(如路由键)以及其他元数据。

  • 交换器(Exchange):交换器是消息传递的关键组件,它接收生产者发送的消息,并根据消息的路由键或主题将消息路由到相应的队列。交换器可以是直连交换器、扇形交换器或主题交换器,每种交换器的工作机制如下:

    • 直连交换器(Direct Exchange):直连交换器根据消息的路由键将消息精确地路由到匹配键的队列。这种交换器适用于精确匹配的场景。

    • 扇形交换器(Fanout Exchange):扇形交换器将接收到的所有消息广播到所有绑定的队列。这种交换器适用于广播消息的场景。

    • 主题交换器(Topic Exchange):主题交换器根据消息的路由键中的主题将消息路由到相应的队列。主题可以是通配符模式,如“*”代表任意一个单词,“#”代表任意数量的单词。

  • 队列(Queue):队列是消息的存储容器,它将接收交换器路由过来的消息进行暂存。队列可以是持久化的或非持久的,持久化队列可以在服务器重启后仍然保留消息。

  • 绑定(Binding):绑定定义了交换器与队列之间的关系,包括路由键或主题。绑定使得交换器知道如何将消息路由到相应的队列。

消息传递

在RabbitMQ中,消息的传递过程涉及到以下几个关键步骤:

  1. 消息生产:生产者将消息发送到RabbitMQ,消息中包含消息体、路由键和其他元数据。

  2. 消息路由:RabbitMQ根据消息的路由键或主题,将消息路由到相应的交换器。

  3. 交换器处理:交换器根据绑定规则,将消息路由到对应的队列。

  4. 消息存储:队列将接收到的消息存储起来,等待消费者消费。

  5. 消息消费:消费者从队列中获取消息,并进行处理。

为了确保消息的可靠传递,RabbitMQ提供了以下机制:

  • 消息确认机制:消费者在处理完消息后,需要向RabbitMQ发送确认信号,告知消息已经被正确处理。如果消费者在处理消息时发生异常,RabbitMQ会将消息重新发送给其他消费者。

  • 事务消息:事务消息可以保证消息的发送、接收和处理的原子性。在事务中,消息要么全部发送成功,要么全部失败。

  • 死信队列:当消息无法被正常消费时,如消息过期或消费者拒绝接收消息,RabbitMQ会将这些消息发送到死信队列,便于后续处理。

集群架构

RabbitMQ支持集群架构,通过以下方式实现:

  • 镜像队列(Mirrored Queues):镜像队列将队列在多个节点上进行镜像,提高系统的可用性。当一个节点发生故障时,其他节点可以接管该队列,确保消息不会丢失。

  • 联邦插件(Federation Plugin):联邦插件可以将多个RabbitMQ节点连接成一个逻辑上的集群,实现跨节点的消息路由。联邦插件允许在不同的RabbitMQ集群之间进行消息交换。

  • 集群节点类型:RabbitMQ集群节点可以分为普通节点、磁盘节点和内存节点。普通节点用于处理消息,磁盘节点用于存储持久化队列,内存节点用于存储非持久化队列。

高级特性

RabbitMQ还提供了一些高级特性,如:

  • TTL消息:TTL消息设置消息的过期时间,超过TTL的消息将被自动删除。

  • 优先级队列:优先级队列允许消息具有不同的优先级,优先级高的消息将被优先处理。

  • RPC模式:RabbitMQ提供RPC模式,允许客户端通过RabbitMQ调用远程服务器上的服务。

二、RocketMQ知识体系

消息类型

RocketMQ支持多种消息类型,以满足不同场景下的需求:

  • 定时消息:定时消息在指定的时间发送,适用于定时任务调度。

  • 事务消息:事务消息保证消息的发送、接收和处理的原子性,适用于需要确保消息一致性的场景。

  • 延迟消息:延迟消息设置消息的延迟时间,在延迟时间到达后发送消息,适用于消息延迟发送的场景。

存储机制

RocketMQ的消息存储机制采用CommitLog设计,以下是CommitLog的关键特点:

  • CommitLog设计:CommitLog是RocketMQ存储消息的主日志文件,每个消息都会写入到CommitLog中。CommitLog采用顺序写磁盘的方式,提高写入性能。

  • 消息索引:RocketMQ根据消息的Key或其他属性建立索引,便于快速检索消息。

  • 刷盘策略:RocketMQ采用异步刷盘策略,将消息从内存刷写到磁盘。刷盘策略包括同步刷盘和异步刷盘,同步刷盘保证数据的持久性,但性能较低;异步刷盘提高性能,但可能存在数据丢失的风险。

高可用设计

RocketMQ的高可用设计包括以下方面:

  • 主从同步:RocketMQ通过主从同步保证数据的一致性。主节点负责处理消息,从节点负责接收主节点的消息并进行同步。

  • Dledger选举:Dledger协议实现集群的动态扩缩容,提高系统的可扩展性。

  • 故障转移:在主节点故障时,自动切换到从节点,确保系统的可用性。

扩展功能

RocketMQ还提供以下扩展功能:

  • 消息轨迹:记录消息从生产到消费的全过程,便于追踪和分析。

  • ACL控制:通过访问控制列表(ACL)限制对消息队列的访问,提高系统的安全性。

  • 多副本机制:提高消息队列的可用性和性能。

三、Kafka知识体系

核心组件

Kafka的核心组件包括生产者、消费者、主题、分区和副本,以下将详细阐述这些组件及其工作原理。

  • 生产者:生产者是消息的源头,负责将消息发送到Kafka中。生产者可以将消息发送到指定的主题。

  • 消费者:消费者从主题中消费消息,并进行处理。消费者可以订阅多个主题。

  • 主题(Topic):主题是消息的分类,类似于数据库中的表。每个主题可以包含多个分区。

  • 分区(Partition):每个主题可以包含多个分区,分区可以提高并发处理能力。每个分区包含一系列有序的消息。

  • 副本(Replica):每个分区可以有多个副本,副本可以提高系统的可用性。

Kafka支持以下分区策略:

  • 轮询策略:按照轮询的方式将消息分配到不同的分区。

  • 随机策略:随机将消息分配到不同的分区。

  • 最少副本策略:将消息分配到副本数最少的分区。

流处理

Kafka提供流处理能力,包括以下组件:

  • KStream API:用于构建流处理应用程序。KStream API允许用户对数据进行实时处理和分析。

  • 状态存储:用于存储流处理过程中的状态信息。状态存储可以提高流处理应用程序的稳定性和性能。

  • 时间窗口:对数据进行时间窗口划分,便于进行统计和分析。

运维监控

Kafka提供以下运维监控功能:

  • 副本同步机制:监控副本的同步状态,确保数据的一致性。

  • 日志清理策略:清理旧的日志文件,释放磁盘空间。

  • JMX指标:提供JMX指标,便于监控Kafka的性能。

生态集成

Kafka与其他系统集成的能力包括以下方面:

  • Connect连接器:用于将Kafka与其他数据源进行集成。

  • Schema Registry:用于管理Kafka消息的Schema。

  • KSQL引擎:用于对Kafka中的数据进行查询和分析。

通过以上对RabbitMQ、RocketMQ和Kafka知识体系的详细描述,我们可以了解到这些消息队列系统在架构设计、消息传递、存储机制、高可用设计、扩展功能等方面的特点。在实际应用中,可以根据具体需求选择合适的消息队列系统,并利用其高级特性提高系统的性能和可用性。

优快云

📥博主的人生感悟和目标

Java程序员廖志伟

希望各位读者大大多多支持用心写文章的博主,现在时代变了,信息爆炸,酒香也怕巷子深,博主真的需要大家的帮助才能在这片海洋中继续发光发热,所以,赶紧动动你的小手,点波关注❤️,点波赞👍,点波收藏⭐,甚至点波评论✍️,都是对博主最好的支持和鼓励!

- 💂 博客主页: Java程序员廖志伟
- 👉 开源项目: Java程序员廖志伟
- 🌥 哔哩哔哩: Java程序员廖志伟
- 🎏 个人社区: Java程序员廖志伟
- 🔖 个人微信号: SeniorRD

Java程序员廖志伟

📙经过多年在优快云创作上千篇文章的经验积累,我已经拥有了不错的写作技巧。同时,我还与清华大学出版社签下了四本书籍的合约,并将陆续出版。这些书籍包括了基础篇、进阶篇、架构篇的📌《Java项目实战—深入理解大型互联网企业通用技术》📌,以及📚《解密程序员的思维密码--沟通、演讲、思考的实践》📚。具体出版计划会根据实际情况进行调整,希望各位读者朋友能够多多支持!

🔔如果您需要转载或者搬运这篇文章的话,非常欢迎您私信我哦~

DIY压电陶瓷传感器信号放大:从拆解到JFET电路实战(附示波器实测数据) 本文详细介绍了如何利用废旧设备拆解的压电陶瓷片,结合JFET(结型场效应管)高输入阻抗特性,DIY搭建高灵敏度振动传感器放大电路。从元件拆解、参数实测到JFET共源极放大器实战搭建与调试,提供了完整的步骤、示波器实测数据及优化方案,帮助电子爱好者实现低功耗振动检测应用。 阅读详情

相关推荐

【Unity动画系统】详解Root Motion动画在Unity中的应用(一)

什么时候勾选Bake into pose,当不希望动画带动游戏对象旋转时。在旋转的动画中一般是不用勾选的,因为就需要用它来带动我们的角色对象旋转。但在比如前进、后退、待机等动画来说,我们就可以勾选这里,以避免因动画文件本身的瑕疵而给我们带来的旋转。loop match:代表了这个动画在角度上的吻合度。如果这个动画在播放中转角过大,那么就会显示红色,告诉我们如果勾选bake into pose,则会带来不好的效果。

weixin_60154963的博客 6805

C++实时系统瓶颈怎么破?3种高效消息队列架构对比分析

突破C++实时系统性能瓶颈,3种高效消息队列架构全解析。结合2025全球C++及系统软件技术大会:低时延C++消息队列实现主题,探讨高频交易、实时通信等场景下的无锁队列、环形缓冲与零拷贝技术,显著降低延迟。架构对比清晰,优化思路明确,值得收藏。

LogicGap的博客 1001

杭电计算机组成原理课程设计-实验七-寄存器堆设计实验

寄存器堆实验实验原理实验内容模块功能说明模块逻辑引脚图寄存器堆模块代码REG模块测试用例REG-ALU测试用例实验结果记录 寄存器堆实验结果及分析ALU_REG运算器模块实验结果及分析探索与思考 实验原理   32×32位的寄存器堆模块示意图如图所示,含有32个寄存器,每个寄存器32位。该寄存器堆具有A和B两个读端口,分别由 5 位的寄存器编号 R_Addr_A 和 R_Addr_B 来寻址 2 个寄存器,读出的数据则由 R_Data_A(32 位)和R_Data_B(32 位)输出。读访问时,没有使能或者

HDU-整蛊小子-⏰☂️/蚂蚁集团研发工程师 1万+

17 个方面,综合对比 Kafka、RabbitMQ、RocketMQ、ActiveMQ 四个分布式消息队列

前两天,师长发了一篇:RabbitMQ和Kafka到底怎么选?大家都觉得分析得不错,有的人就说,但是我用的是ActiveMQ....好的,这次,我们从17个角度,分别详细对比下Kafka、RabbitMQ、RocketMQ、ActiveMQ 四个分布式消息队列的优劣。 一、资料文档 二、开发语言 三、支持的协议 四、消息存储 五、消息事务 六、负载均衡 七、集群方式 八、管理界面 九、可用性 十、消息重复.

xiaoweige的博客 216

Windows上搭建OpenHarmony星闪开发环境:HiSpark Studio全流程指南

嵌入式开发中,环境搭建是项目启动的关键步骤。OpenHarmony作为开源操作系统,其构建体系依赖Python脚本和GN/Ninja工具链,对版本兼容性要求严格。星闪(NearLink)技术作为新一代短距无线通信方案,在时延、并发和抗干扰方面优势显著,广泛应用于智能家居、工业控制等场景。在Windows平台上,通过HiSpark Studio集成开发工具,开发者可高效完成代码编辑、编译、烧录与调试。然而,Python版本冲突、环境变量配置、驱动签名等问题常导致搭建失败。本文详细拆解从系统准备到编译验证的全流

weixin_32658257的博客 348

自建邮局服务器| 批量邮件群发系统PowerMTA+oem(mumara,mailwizz, interspire)

世界顶级自建邮局服务器PowerMTA+oem(mumara,mailwizz, interspire) PowerMTA4.5(最好用的 群发邮件软件)是用于大批量多ip开发的邮件传递邮寄。可按每小时发送数近百万条电子邮件,发送IP地址和域可以详细配置,加上目前流行前端oem,mumara,mailwizz, interspire等,可定时发送,定时重复发送,实现全自动化 邮件群发 方案。 官网(powermta4.5下载) https://www.sparkpost.com/powermta/ 使用Po

ytrsexpo的博客 6506

Python 消息队列(RabbitMQ、Kafka、Redis)架构与对比

``htmlPython 消息队列(RabbitMQ、Kafka、Redis)架构与对比。

2501_91172329的博客 413

Outlook总是提示登录微软,怎么办?

Outlook 2021反复弹出Microsoft登录窗口,可能是由于Modern Authentication身份验证机制或凭据问题导致。解决方案包括:1)通过注册表关闭Modern Authentication(适用于本地Exchange);2)清理Windows凭据管理器中的旧认证信息;3)手动配置Exchange服务器地址;4)通过注册表阻止Microsoft登录窗口弹出(适用于非M365环境)。建议按顺序尝试,尤其前两步通常能解决问题。经测试,步骤1和2已有效解决该问题。

剪刀石头布 4679

消息队列ActiveMQ、RabbitMQ、RocketMQ、Kafka对比分析和选型

传统企业系统:金融/支付系统:电商/高并发交易:大数据/日志处理:物联网(IoT):

宋发元 2183

别再踩坑了!Vue3 + Vant 手把手教你搞定飞书网页应用免登(SSO),附完整代码和重定向URL配置

本文详细介绍了如何使用Vue3和Vant实现飞书H5应用的免登(SSO)功能,包括飞书后台配置的关键细节、Vue3前端实现的最佳实践以及常见问题排查指南。特别针对重定向URL配置、安全设置和错误处理等常见陷阱提供了解决方案,并附有完整代码示例和性能优化建议。

weixin_29323551的博客 407

C#解析基恩士(KEYENCE)PLC数据:KV协议通信与实时监控实现

KV协议是基恩士PLC使用的一种专用通信协议,通常用于与上位机进行数据交换。KV协议通过RS-232C、RS-485、Ethernet等接口与上位机通信,支持多种数据类型的读写,包括但不限于位、字、双字、浮点数等。简洁易用:KV协议的通信格式简单,易于实现。支持多种数据类型:支持位数据、字数据、定长字符串等。高效实时性:能够提供较高的实时数据交换性能,适合实时监控应用。本文介绍了如何通过C#与基恩士KV系列PLC进行通信,实现数据的解析和实时监控功能。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1810

消息队列

消息队列前言什么是消息队列为什么要使用消息队列通过异步处理提高系统性能降低系统耦合性利用消息队列实现事件驱动结构使用消息队列带来的问题 前言 “ActiveMQ?”“Kafka?”“RocketMQ?”“RabbitMQ?”…在日常学习与开发过程中,我们常常听到消息队列这个关键词。我也在多篇文章中提到了这个概念。可能你是熟练使用消息队列的老手,又或者你是不懂消息队列的新手,不论你了不了解消息队列,...

JustinNeil的博客 1408

【FISCO-BCOS】 八、ubuntu配置Java环境

ubuntu配置Java环境需根据自己的java版本号进行细节修改,本文以jdk11.0.18版本为例。ps:通过此法还可以查看java安装路径,但必须是环境配置成功的情况下才能使用。二、添加Java环境路径。四、检查java环境设置。

naihe_fish的博客 4315

各种消息队列 mq 总结对比

一、消息队列概述 消息队列中间件是分布式系统中重要的组件,主要解决应用解耦,异步消息,流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架构。目前使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ 二、消息队列应用场景 以下介绍消息队列在实际应用中常用的使用场景。异步处理,应用解耦,流量削锋和消息通讯四个场景。 2.1异步处...

qq1301518841的博客 600

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

消息队列的对比及适配的应用场景

从几个维度对比常见的消息队列,并探讨它们各自适合的应用场景

David的博客 961

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

消息队列概述

分布式系统除了使用RPC框架实现进程间通信外,有时还需使用消息队列,如实现最终一致性方案等。本文简单介绍下为什么使用消息队列、消息队列使用中需要考虑的问题等。

云原生Java Web领域技术博客 442

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

消息队列一:消息队列分析及选型

为什么使用消息队列啊?消息队列有什么优点和缺点啊?kafka、activemq、rabbitmq、rocketmq都有什么区别以及适合哪些场景? (1)第一,你知道不知道你们系统里为什么要用消息队列这个东西? 我之前面试就见过大量的候选人,说自己项目里用了redis、mq,但是其实他并不知道自己为什么要用这个东西。其实说白了,就是为了用而用,或者是别人设计的架构,他从头到尾没思考过。 没有对...

qq_41864967的博客 468

柯南君:看大数据时代下的IT架构(1)业界消息队列对比

目前业界有很多MQ产品,我们作如下对比:  RabbitMQ  是使用Erlang编写的一个开源的消息队列,本身支持很多的协议:AMQP,XMPP, SMTP, STOMP,也正是如此,使的它变的非常重量级,更适合于企业级的开发。同时实现了一个经纪人(Broker)构架,这意味着消息在发送给客户端时先在中心队列排队。对路由(Routing),负载均衡(Load balance)或者数据持久化都

阳光下的立人 5038

【消息队列MQ】各类MQ比较

目前业界有很多MQ产品,我们作如下对比: RabbitMQ 是使用Erlang编写的一个开源的消息队列,本身支持很多的协议:AMQP,XMPP, SMTP, STOMP,也正是如此,使的它变的非常重量级,更适合于企业级的开发。同时实现了一个经纪人(Broker)构架,这意味着消息在发送给客户端时先在中心队列排队。对路由(Routing),负载均衡(Load balance)或者数据持久化都有很

sunxinhere的专栏 34万+

消息队列:解耦、异步、削峰,现有MQ对比以及新手入门该如何选择MQ?

愿打开此篇对你有所帮助

看,未来的博客 6046

搞懂消息队列基本概念,异步处理,削峰/限流,降低系统耦合性、消息队列一致性问题、JMS VS AMQP、常见的消息队列对比

学习消息队列,异步处理,削峰/限流,降低系统耦合性、消息队列一致性问题、JMS VS AMQP、分布式集群、常见的消息队列对比

weixin_42985390的博客 726

RabbitMQ 与其他消息队列的对比与选型:如何选择最适合你的消息队列?

RabbitMQ 是一个开源的消息队列系统,支持 AMQP(Advanced Message Queuing Protocol),并提供了可靠的消息传递、存储、分发机制。RabbitMQ 通过队列、交换机和绑定的组合来实现复杂的消息传递逻辑。它支持高可用性、事务性和消息确认机制,适合需要强一致性的场景。RabbitMQ适合需要强一致性、可靠性和复杂路由逻辑的场景,特别适合中小规模系统和金融场景。Kafka适合大数据流、日志收集和实时分析等高吞吐量需求的应用。ActiveMQ。

一碗黄焖鸡三碗米饭的博客 1010

java中消息队列脑裂_消息队列实现概要——深度解读分区Topic的实现

前言说道message queue相信大家都不陌生,对于业务方来说很简单就是几个简单的API, 通常也不用关心其内部实现,但如果想要用好消息队列、出了问题能够cover的住,那就必须要能够了解其实现原理,知其然知其所以然。首先Message queue有一个topic的概念,可以将其理解为日志,发消息的过程说白了其实就是打日志,而消息队列就是存储日志记录的持久层,类似java中的log4j、log...

weixin_42510841的博客 749

消息队列和分布式消息队列

存储消息的队列。存储:存数据消息:某种数据结构。比如字符串,对象,二进制数据,JSON等等队列:先进先出的数据结构。

诨号无敌鸭的博客 1647

【kafka】消息队列的认识,Kafka与RabbitMQ的简单对比

消息队列(Message Queue,简称 MQ)是一个在不同应用程序、系统或服务之间传递数据的机制。它允许系统间异步地交换信息,而无需直接交互,确保消息的可靠传输。想象一下,你正在给朋友发送一封信,你并不需要在信件发送后立刻等待朋友的回复才能继续做事情。你把信投递到邮筒里,邮递员会把信送到朋友那里,朋友收到信后再回复你。这就是消息队列的基本思想:你发送消息,系统会将它放到队列里,由接收方来消费和处理这些消息。特性/系统RabbitMQ协议AMQP(高级消息队列协议)

m0_74282926的博客 1706

资料搜集-JAVA系统的梳理知识15-消息队列

<!-- MarkdownTOC --> - [消息队列其实很简单](#消息队列其实很简单) - [一 什么是消息队列](#一-什么是消息队列) - [二 为什么要用消息队列](#二-为什么要用消息队列) - [\(1\) 通过异步处理提高系统性能(削峰、减少响应所需时间)](#1-通过异步处理提高系统性能削峰减少响应所需时间) - [\(2\) 降低系统耦...

java技术专家全栈成长之路 522
上一篇: Dubbo与Zookeeper详解
下一篇: Redis核心技术解析
Java廖志伟
博客等级 码龄2年 3609粉丝 1517原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值