[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"site-config":3,"primary-menu":6,"cat-rabbitmq":85,"catposts-rabbitmq":99,"post-detail-post-rabbitmq-prefetch-87e4d077":208},{"config":4,"socialLinks":5},null,[],{"metadata":7,"spec":10,"menuItems":20},{"name":8,"creationTimestamp":9},"primary","2026-09-12T06:13:55.024154Z",{"displayName":11,"menuItems":12},"主菜单",[13,14,15,16,17,18,19],"88c3f10b-321c-4092-86a8-70db00251b74","menu-item-izrtmxer","c4c814d1-0c2c-456b-8c96-4864965fee94","menu-item-column","menu-item-tools","menu-item-zsxq","menu-item-ocrxlczu",[21,30,40,49,58,67,76],{"displayName":22,"metadata":23,"spec":25,"status":28,"children":29},"首页",{"name":13,"creationTimestamp":24},"2026-09-12T06:13:54.422830Z",{"displayName":22,"href":26,"priority":27,"menuName":8},"\u002F",0,{"displayName":22,"href":26},[],{"displayName":31,"metadata":32,"spec":34,"status":38,"children":39},"Java面试八股",{"name":14,"creationTimestamp":33},"2026-09-13T09:42:02.854891Z",{"displayName":31,"href":35,"target":36,"priority":37,"menuName":8},"\u002Fjava-interview","_self",1,{"displayName":31,"href":35},[],{"displayName":41,"metadata":42,"spec":44,"status":47,"children":48},"文章",{"name":15,"creationTimestamp":43},"2026-09-12T06:13:54.457307Z",{"displayName":41,"href":45,"priority":46,"menuName":8},"\u002Farchives",2,{"displayName":41,"href":45},[],{"displayName":50,"metadata":51,"spec":53,"status":56,"children":57},"项目实战",{"name":16,"creationTimestamp":52},"2026-09-14T00:35:08.138170Z",{"displayName":50,"href":54,"target":36,"priority":55,"menuName":8},"\u002Fcolumn",3,{"displayName":50,"href":54},[],{"displayName":59,"metadata":60,"spec":62,"status":65,"children":66},"在线工具",{"name":17,"creationTimestamp":61},"2026-09-14T00:35:08.171474Z",{"displayName":59,"href":63,"target":36,"priority":64,"menuName":8},"\u002Ftools",4,{"displayName":59,"href":63},[],{"displayName":68,"metadata":69,"spec":71,"status":74,"children":75},"知识星球",{"name":18,"creationTimestamp":70},"2026-09-14T00:35:08.199145Z",{"displayName":68,"href":72,"target":36,"priority":73,"menuName":8},"\u002Fzsxq",5,{"displayName":68,"href":72},[],{"displayName":77,"metadata":78,"spec":80,"status":83,"children":84},"特价云服务器",{"name":19,"creationTimestamp":79},"2026-09-25T15:30:59.201614Z",{"displayName":77,"href":81,"target":36,"priority":82,"menuName":8},"\u002Fserver",6,{"displayName":77,"href":81},[],{"metadata":86,"spec":91,"status":97,"postCount":73},{"name":87,"creationTimestamp":88,"labels":89},"rabbitmq","2026-09-13T09:13:25.810188Z",{"haloweb.section":90},"interview",{"displayName":92,"slug":87,"cover":93,"description":94,"priority":95,"hideFromList":96,"preventParentPostCascadeQuery":96},"RabbitMQ 面试题","","RabbitMQ 面试题：消息可靠性投递、死信队列、镜像队列、消费幂等与积压处理。",12,false,{"permalink":98,"postCount":73,"visiblePostCount":73},"\u002Fcategories\u002Frabbitmq",[100,124,145,166,187],{"metadata":101,"spec":104,"status":113,"categories":118},{"name":102,"creationTimestamp":103},"post-rabbitmq-prefetch-87e4d077","2026-09-13T10:01:09.619926Z",{"title":105,"slug":106,"cover":93,"excerpt":107,"publishTime":109,"categories":110,"tags":111,"priority":27,"pinned":96,"deleted":96,"visible":112,"allowComment":108},"RabbitMQ 的 prefetch 机制？","rabbitmq-prefetch",{"raw":93,"autoGenerate":108},true,"2026-09-13T10:01:09.668453Z",[87],[],"PUBLIC",{"permalink":114,"excerpt":115,"lastModifyTime":116,"phase":117},"\u002Farchives\u002Frabbitmq-prefetch","一、定义 prefetch（QoS）控制 RabbitMQ 一次推送给消费者多少条未确认的消息，实现限流和负载均衡。 二、设置 channel.basicQos(10); \u002F\u002F 每个消费者最多 10 条未确认消息\n 三、作用 防止消息都推给快的消费者，慢的消费者闲置，实现公平分发。 防止消费者内存被","2026-09-16T09:15:40.693057Z","PUBLISHED",[119],{"metadata":120,"spec":122,"status":123,"postCount":73},{"name":87,"creationTimestamp":88,"labels":121},{"haloweb.section":90},{"displayName":92,"slug":87,"cover":93,"description":94,"priority":95,"hideFromList":96,"preventParentPostCascadeQuery":96},{"permalink":98,"postCount":73,"visiblePostCount":73},{"metadata":125,"spec":128,"status":135,"categories":139},{"name":126,"creationTimestamp":127},"post-rabbitmq-vs-rocketmq-3e9be184","2026-09-13T10:01:09.436936Z",{"title":129,"slug":130,"cover":93,"excerpt":131,"publishTime":132,"categories":133,"tags":134,"priority":27,"pinned":96,"deleted":96,"visible":112,"allowComment":108},"RabbitMQ 和 RocketMQ 的区别？","rabbitmq-vs-rocketmq",{"raw":93,"autoGenerate":108},"2026-09-13T10:01:09.484368Z",[87],[],{"permalink":136,"excerpt":137,"lastModifyTime":138,"phase":117},"\u002Farchives\u002Frabbitmq-vs-rocketmq","一、对比 维度 RabbitMQ RocketMQ 开发语言 Erlang Java 吞吐量 万级 十万级 延迟 微秒级 毫秒级 事务消息 不支持 支持 顺序消息 支持（弱） 支持 延迟消息 支持插件 原生支持 管理界面 有 有 二、选择","2026-09-16T09:15:40.237199Z",[140],{"metadata":141,"spec":143,"status":144,"postCount":73},{"name":87,"creationTimestamp":88,"labels":142},{"haloweb.section":90},{"displayName":92,"slug":87,"cover":93,"description":94,"priority":95,"hideFromList":96,"preventParentPostCascadeQuery":96},{"permalink":98,"postCount":73,"visiblePostCount":73},{"metadata":146,"spec":149,"status":156,"categories":160},{"name":147,"creationTimestamp":148},"post-rabbitmq-reliable-d15663a6","2026-09-13T10:01:09.246619Z",{"title":150,"slug":151,"cover":93,"excerpt":152,"publishTime":153,"categories":154,"tags":155,"priority":27,"pinned":96,"deleted":96,"visible":112,"allowComment":108},"RabbitMQ 如何保证消息可靠？","rabbitmq-reliable",{"raw":93,"autoGenerate":108},"2026-09-13T10:01:09.295435Z",[87],[],{"permalink":157,"excerpt":158,"lastModifyTime":159,"phase":117},"\u002Farchives\u002Frabbitmq-reliable","一、生产端 开启 Publisher Confirm，确保消息到达 Exchange。 开启 Return 机制，消息不可路由时通知生产者。 本地消息表 + 定时补偿。 二、Broker 端 交换机、队列、消息都持久化（durable=true, deliveryMode=2）。 镜像队列：队列复制","2026-09-16T09:15:10.999791Z",[161],{"metadata":162,"spec":164,"status":165,"postCount":73},{"name":87,"creationTimestamp":88,"labels":163},{"haloweb.section":90},{"displayName":92,"slug":87,"cover":93,"description":94,"priority":95,"hideFromList":96,"preventParentPostCascadeQuery":96},{"permalink":98,"postCount":73,"visiblePostCount":73},{"metadata":167,"spec":170,"status":177,"categories":181},{"name":168,"creationTimestamp":169},"post-rabbitmq-message-ack-34ff22c9","2026-09-13T10:01:09.065945Z",{"title":171,"slug":172,"cover":93,"excerpt":173,"publishTime":174,"categories":175,"tags":176,"priority":27,"pinned":96,"deleted":96,"visible":112,"allowComment":108},"RabbitMQ 的消息确认机制？","rabbitmq-message-ack",{"raw":93,"autoGenerate":108},"2026-09-13T10:01:09.112893Z",[87],[],{"permalink":178,"excerpt":179,"lastModifyTime":180,"phase":117},"\u002Farchives\u002Frabbitmq-message-ack","一、生产者确认（Publisher Confirm） 消息投递到 Exchange 后返回 confirm。 消息路由到 Queue（持久化消息持久化到磁盘）后返回 ack。 可配合 mandatory 参数，消息不可路由时返回给生产者。 二、消费者确认（Consumer ACK） 自动确认（aut","2026-09-16T09:14:45.553264Z",[182],{"metadata":183,"spec":185,"status":186,"postCount":73},{"name":87,"creationTimestamp":88,"labels":184},{"haloweb.section":90},{"displayName":92,"slug":87,"cover":93,"description":94,"priority":95,"hideFromList":96,"preventParentPostCascadeQuery":96},{"permalink":98,"postCount":73,"visiblePostCount":73},{"metadata":188,"spec":191,"status":198,"categories":202},{"name":189,"creationTimestamp":190},"post-rabbitmq-architecture-b1256445","2026-09-13T10:01:08.867235Z",{"title":192,"slug":193,"cover":93,"excerpt":194,"publishTime":195,"categories":196,"tags":197,"priority":27,"pinned":96,"deleted":96,"visible":112,"allowComment":108},"RabbitMQ 的核心概念？","rabbitmq-architecture",{"raw":93,"autoGenerate":108},"2026-09-13T10:01:08.910375Z",[87],[],{"permalink":199,"excerpt":200,"lastModifyTime":201,"phase":117},"\u002Farchives\u002Frabbitmq-architecture","一、核心组件 Producer：生产者，发送消息到 Exchange。 Exchange：交换机，接收消息并按路由规则路由到 Queue。 Queue：队列，存储消息，消费者从队列取。 Consumer：消费者。 Binding：Exchange 和 Queue 的绑定关系，带 routing ke","2026-09-16T09:14:38.789864Z",[203],{"metadata":204,"spec":206,"status":207,"postCount":73},{"name":87,"creationTimestamp":88,"labels":205},{"haloweb.section":90},{"displayName":92,"slug":87,"cover":93,"description":94,"priority":95,"hideFromList":96,"preventParentPostCascadeQuery":96},{"permalink":98,"postCount":73,"visiblePostCount":73},{"metadata":209,"spec":210,"status":214,"categories":215,"content":221},{"name":102,"creationTimestamp":103},{"title":105,"slug":106,"cover":93,"excerpt":211,"publishTime":109,"categories":212,"tags":213,"priority":27,"pinned":96,"deleted":96,"visible":112,"allowComment":108},{"raw":93,"autoGenerate":108},[87],[],{"permalink":114,"excerpt":115,"lastModifyTime":116,"phase":117},[216],{"metadata":217,"spec":219,"status":220,"postCount":73},{"name":87,"creationTimestamp":88,"labels":218},{"haloweb.section":90},{"displayName":92,"slug":87,"cover":93,"description":94,"priority":95,"hideFromList":96,"preventParentPostCascadeQuery":96},{"permalink":98,"postCount":73,"visiblePostCount":73},{"content":222,"raw":222},"\u003Ch2>一、定义\u003C\u002Fh2>\n\u003Cp>prefetch（QoS）控制 RabbitMQ 一次推送给消费者多少条未确认的消息，实现限流和负载均衡。\u003C\u002Fp>\n\u003Ch2>二、设置\u003C\u002Fh2>\n\u003Cpre>\u003Ccode class=\"language-java\">channel.basicQos(10); \u002F\u002F 每个消费者最多 10 条未确认消息\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch2>三、作用\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>防止消息都推给快的消费者，慢的消费者闲置，实现公平分发。\u003C\u002Fli>\n\u003Cli>防止消费者内存被大量未处理消息占满。\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2>四、三种范围\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>prefetchCount=0：不限。\u003C\u002Fli>\n\u003Cli>channel.basicQos(prefetchSize, prefetchCount, global)。\u003C\u002Fli>\n\u003Cli>global=false：每个消费者限制。\u003C\u002Fli>\n\u003Cli>global=true：整个 channel 限制。\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2>五、注意\u003C\u002Fh2>\n\u003Cp>prefetch 只对手动 ACK 模式有效，自动 ACK 下消息立即从队列移除，无限制。\u003C\u002Fp>"]