Kodi字幕插件使用指南:轻松获取影视字幕的完整方案
主流 MQ 架构与核心原理详解
RabbitMQ1核心架构AMQP 协议 交换机路由基于 Erlang 语言开发遵循 AMQP高级消息队列协议核心组件分工明确组件核心作用BrokerMQ 服务节点 / 集群是消息转发、存储的核心载体Exchange交换机接收生产者消息根据路由规则将消息路由到指定 QueueQueue消息队列存储消息是消费者的消费目标点对点核心载体Binding绑定关系关联 Exchange 和 Queue定义路由规则如通配符、精准匹配VHost虚拟主机隔离不同租户的资源Exchange/Queue/ 用户实现多租户隔离Channel轻量级 TCP 连接一个 Connection 可创建多个 Channel减少 TCP 连接开销2核心原理消息模型基于「交换机 队列」的灵活路由模型支持 4 种交换机Direct精准路由匹配指定 Routing KeyTopic通配符路由支持*/#匹配Fanout广播路由忽略 Routing Key转发到所有绑定的 QueueHeaders基于消息头匹配极少用。
存储机制默认内存存储支持持久化先写磁盘再入内存但磁盘为随机写高吞吐场景性能弱高可用镜像队列Mirror Queue—— 将 Queue 复制到多个 Broker 节点主节点挂掉后从节点接管消费可靠性支持手动 ACK确认消费只有消费者明确 ACKMQ 才会删除消息避免消息丢失核心特点路由灵活、低延迟毫秒级、可靠性高适合对路由逻辑要求高的场景。
Kafka1核心架构日志型存储 分区并行基于 Scala/Java 开发面向大数据流处理核心设计围绕「高吞吐」组件核心作用Broker集群节点存储 Topic 的 Partition 数据处理生产 / 消费请求Topic消息主题逻辑上的消息分类如「用户行为日志」「订单消息」Partition分区Topic 的物理拆分每个 Partition 是有序日志文件提升并行处理能力Replica副本Partition 的备份Leader/FollowerLeader 处理读写Follower 同步数据Consumer Group消费者组组内消费者共同消费一个 Topic 的不同 Partition一个 Partition 仅被组内一个消费者消费KRaft/Zookeeper集群元数据管理Kafka
8 用 KRaft 替代 Zookeeper负责选主、节点发现2核心原理消息模型基于「Topic-Partition」的发布订阅模型无交换机直接按 Topic 分区存储存储机制消息以「Log Segment」形式顺序写磁盘顺序写性能是随机写的 10 倍以上支持数据压缩、过期删除、日志清理高可用Partition 的 Leader-Follower 机制Leader 挂掉后通过选举切换 Follower 为新 Leader消费模式Pull拉模式消费者主动拉取消息可自主控制消费速率避免 Push 模式的消费过载核心特点超高吞吐十万级 / 秒、持久化能力强适合大数据流、日志采集等场景但功能相对简单。
RocketMQ1核心架构阿里系 功能全面阿里开源已捐 Apache基于 Java 开发融合 RabbitMQ 和 Kafka 的优点组件核心作用NameServer轻量级注册中心无状态管理 Broker 节点信息集群部署无需主从Broker核心节点分 Master/Slave存储消息、处理生产 / 消费请求支持消息过滤Topic消息主题逻辑分类Queue队列Topic 的物理拆分对应 Kafka 的 Partition分布在多个 Broker 上Producer/Consumer生产者 / 消费者支持集群部署、批量发送、集群消费 / 广播消费2核心原理消息模型基于「Topic-Queue」的发布订阅模型支持Tag/SQL92 消息过滤比 Kafka 灵活存储机制混合存储内存映射 文件顺序写性能接近 Kafka支持消息持久化、过期清理高可用Master-Slave 架构Master 处理读写Slave 同步数据Master 挂掉后可手动 / 自动切换消费模式伪 Push底层 Pull兼顾实时性和消费速率控制核心特点原生支持事务消息、精准延时消息、消息轨迹适配国内电商 / 金融场景性能和功能平衡。
ActiveMQ1核心架构老牌 JMS 规范Apache 开源老牌 MQ基于 Java 开发兼容 JMSJava 消息服务规范组件核心作用BrokerMQ 服务节点包含连接器支持多协议、消息存储、目的地Queue/TopicQueue/Topic点对点队列 / 发布订阅主题严格遵循 JMS 规范Message Store消息存储支持内存、文件KahaDB、数据库如 MySQL2核心原理消息模型支持 JMS 规范的 P2P点对点、Pub/Sub发布订阅无灵活路由存储机制支持多存储方式但高并发下文件存储性能差高可用支持 Master-Slave、集群部署但高并发易宕机核心特点兼容 JMS、协议多AMQP/MQTT/OpenWire、易上手但性能和扩展性弱于新一代 MQ。
Pulsar1核心架构云原生新一代 MQApache 开源新一代云原生 MQ基于 Java/Go 开发融合消息队列和流处理组件核心作用Broker无状态节点处理生产 / 消费请求可弹性扩缩不存储消息BookKeeper分布式存储集群专门存储消息分层存储热数据存 SSD冷数据存对象存储Topic分区主题支持多租户、跨地域复制ZooKeeper管理集群元数据Broker/BookKeeper 节点信息2核心原理消息模型发布订阅模型支持消息回溯、延迟消息、多租户存储机制分层存储BookKeeper支持无限消息留存云原生友好高可用Broker 无状态BookKeeper 多副本存储天生支持弹性扩缩核心特点云原生、跨地域部署、流批一体但架构复杂生态较新。
主流 MQ 核心对比表面试 / 选型必看特性RabbitMQKafkaRocketMQActiveMQPulsar开发语言ErlangScala/JavaJavaJavaJava/Go核心协议AMQP自定义协议自定义兼容 JMSJMS/AMQP/MQTT 等自定义兼容 Kafka核心优势路由灵活、低延迟、可靠性高超高吞吐、持久化好功能全事务 / 延时、国产适配兼容 JMS、易上手云原生、分层存储、多租户吞吐量中万级 / 秒极高十万级 / 秒高十万级 / 秒低千级 / 秒极高十万级 / 秒延迟消息插件支持精度低不支持需上层实现原生支持精准到秒支持原生支持事务消息支持基础支持幂等 事务原生高可靠支持支持原生支持消息回溯有限支持基于 Offset 回溯基于 Offset 回溯有限支持任意时间回溯高可用机制镜像队列Partition 副本Master-SlaveMaster-SlaveBookKeeper 多副本运维复杂度中高分区 / 副本管理中低高BrokerBookKeeper适用场景电商订单、即时通知、路由复杂场景日志采集、监控数据、大数据流电商交易、金融、国产大厂生态小型系统、兼容 JMS 场景云原生、跨地域、流批一体缺点高吞吐性能弱、Erlang 门槛高功能简单、运维复杂生态不如 RabbitMQ/Kafka高并发易宕机、性能差生态新、架构复杂
核心
总结选型 面试要点
选型核心原则「路由灵活、低延迟、可靠性」优先选 RabbitMQ如电商订单、即时通知「超高吞吐、大数据流」优先选 Kafka如日志采集、监控数据、实时计算「国内大厂生态、事务 / 延时消息」优先选 RocketMQ如阿里系电商、金融交易「小型系统、快速上手」选 ActiveMQ不推荐高并发场景「云原生、跨地域、流批一体」选 Pulsar新一代 MQ 首选。
面试高频考点Kafka 高吞吐的核心原因顺序写磁盘、Partition 并行、零拷贝sendfile、批量发送RocketMQ 对比 Kafka 的优势支持精准延时消息、事务消息、Tag 消息过滤RabbitMQ 高可用镜像队列保证 Queue 副本同步避免单点故障Pulsar 的核心创新Broker 无状态、分层存储冷热数据分离适配云原生弹性扩缩。
樱桃免费高清电视剧荣耀-樱桃免费高清电视剧荣耀应用