当前位置: 首页 > news >正文

网站培训班有哪些课程紫金保险车险官方网站

网站培训班有哪些课程,紫金保险车险官方网站,怎么调查建设网站,不能制作网页的软件是一、RocketMQ 核心架构图架构特点:完全无单点:NameServer 集群无状态,Broker 主从高可用。水平扩展:Broker 可无限横向扩展,Topic 可跨多个 Broker。Pull 模型:Consumer 主动拉取,可控消费速度&…

一、RocketMQ 核心架构图

架构特点

        完全无单点:NameServer 集群无状态,Broker 主从高可用。

        水平扩展:Broker 可无限横向扩展,Topic 可跨多个 Broker。

        Pull 模型:Consumer 主动拉取,可控消费速度,避免压垮消费者。

二、四大核心组件详解


1. Producer(生产者)—— 消息的“发件人”

职责

  • 创建并发送消息到指定 Topic。
  • 支持同步、异步、单向发送模式。
  • 自动从 NameServer 获取 Topic 路由信息(Broker 地址列表)。
  • 支持消息重试、事务消息、顺序消息、延迟消息。

关键概念

  Producer Group生产者组,用于标识一类 Producer(事务消息回查用)。

  Tag消息标签,用于 Consumer 端过滤(如 TagA || TagB)。

  Key消息业务唯一键,用于精确查询和去重。

DefaultMQProducer producer = new DefaultMQProducer("ProducerGroup1");
producer.setNamesrvAddr("localhost:9876");
producer.start();Message msg = new Message("OrderTopic", "CreateOrder", "orderId_123", "Hello RocketMQ".getBytes());
SendResult result = producer.send(msg); // 同步发送
System.out.println("Send Status: " + result.getSendStatus());

2. Consumer(消费者)—— 消息的“收件人”

职责

  • 从 Broker 拉取消息并处理。
  • 支持集群消费(Clustering)和广播消费(Broadcasting)。
  • 自动从 NameServer 获取路由,负载均衡分配 Queue。
  • 支持消费重试、死信队列、消费位点(Offset)持久化。

关键概念

  Consumer Group消费者组,同一组内负载均衡消费(每条消息只被组内一个 Consumer 消费)。

  MessageListener消息监听器,实现 consumeMessage() 方法处理业务逻辑。

  Offset消费位点,记录 Consumer 已消费到的位置(存储在 Broker 或本地)。

DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("ConsumerGroup1");
consumer.setNamesrvAddr("localhost:9876");
consumer.subscribe("OrderTopic", "*"); // 订阅所有 Tagconsumer.registerMessageListener((MessageListenerConcurrently) (msgs, context) -> {for (MessageExt msg : msgs) {System.out.println("Received: " + new String(msg.getBody()));// 处理业务逻辑}return ConsumeConcurrentlyStatus.CONSUME_SUCCESS; // 消费成功
});consumer.start();

3. Broker(消息服务器)—— 消息的“邮局 + 仓库”

职责

  • 接收 Producer 发送的消息,存储到 CommitLog(顺序写磁盘)。
  • 响应 Consumer 的拉取请求,从 ConsumeQueue + IndexFile 快速检索。
  • 管理 Topic、Queue、Consumer Offset、权限控制等。
  • 主从同步:Master Broker 接收读写,Slave Broker 只读 + 同步数据(高可用)。

核心存储结构

  CommitLog所有 Topic 消息混合顺序写入(高性能关键)。

  ConsumeQueue每个 Queue 一个文件,存储消息在 CommitLog 的 offset、size、tag hash(供 Consumer 快速定位)。

  IndexFile基于 Key 的哈希索引,支持按 Key 查询消息。

高可用模式

        异步复制:Master 写成功即返回,异步同步给 Slave(高性能,可能丢少量数据)。

        同步双写:Master + Slave 都写成功才返回(强一致,性能略低)。


4. NameServer(路由注册中心)—— 消息的“DNS 服务器”

职责

  • 无状态、轻量级:多个 NameServer 之间无通信,数据最终一致。
  • 路由管理:Broker 启动时向所有 NameServer 注册 Topic 路由信息(含 Master/Slave 地址)。
  • 路由发现:Producer/Consumer 定时(默认 30s)从 NameServer 拉取最新路由表。
  • 心跳检测:NameServer 每 10s 检测 Broker 心跳,超时(120s)则剔除路由。

为什么不用 ZooKeeper?

        RocketMQ 追求极致性能与简单性,NameServer 无选举、无 Watch,比 ZK 更轻量、更稳定。

部署建议

        至少部署 2 个 NameServer,Producer/Consumer 配置多个地址(逗号分隔)。

        NameServer 不存储消息,宕机不影响已建立连接的读写(路由缓存有效期内)。

三、核心概念:Topic、Queue、Group、Tag

概念说明类比
Topic消息主题,一类消息的逻辑分类(如 OrderTopicLogTopic邮箱的“收件箱分类”
QueueTopic 的分区,一个 Topic 可分多个 Queue,分布在不同 Broker 上(并行消费)邮箱的“分拣格子”
Producer Group一类 Producer 的标识,用于事务消息回查发件人“部门”
Consumer Group一类 Consumer 的标识,组内负载均衡消费收件人“工作组”
Tag消息标签,用于 Consumer 端二次过滤(如 TagATagB邮件“标签/优先级”
Key消息业务唯一键,用于查询、去重(如订单ID)邮件“追踪号”

最佳实践

  1. Topic 按业务域划分(如 OrderPaymentUser)。
  2. Queue 数量 = 消费并发度上限(建议 8~32 个,根据业务调整)。
  3. 同一业务用同一个 Consumer Group,避免重复消费。

四、消息全流程:从发送到消费

关键点

  • Producer/Consumer 与 NameServer 是“查询关系”,非强依赖。
  • Broker 是消息存储与转发的核心,需保证高可用。
  • Consumer 主动 Pull,可控制消费速度(背压机制)。

五、高级特性与生产实践

1. 顺序消息(Orderly Message)

保证同一业务 ID(如订单ID)的消息按发送顺序消费。

        实现:Producer 按 shardingKey 选择固定 Queue,Consumer 单线程消费该 Queue。

        场景:订单创建 → 付款 → 发货 → 完成。

2. 事务消息(Transactional Message)

实现“本地事务 + 消息发送”的最终一致性。

        流程:发送 Half 消息 → 执行本地事务 → Commit/Rollback → Broker 回查(若超时)。

        场景:扣库存 + 发订单消息。

3. 延迟消息(Delay Message)

消息发送后,延迟指定时间才对 Consumer 可见。

        级别:支持 18 个固定延迟级别(1s ~ 2h)。

        场景:订单超时未支付自动取消。

4. 死信队列(DLQ - Dead Letter Queue)

消费失败超过最大重试次数(默认 16 次)的消息,进入死信队列。

        Topic%DLQ% + ConsumerGroupName

        处理:人工干预或定时任务补偿。

http://www.dtcms.com/a/500251.html

相关文章:

  • 抗体药物偶联物(ADCs):从研发突破到临床变革,解码疗效与毒性的核心机制
  • 建邺区建设局网站重庆市特种作业证报名
  • 9861云南网站建设北京建设投标网站
  • 【OS笔记10】:进程和线程8-进程通信
  • 给会所做网站室内装潢设计师
  • 长春建站塔山双喜网络广告营销案例有哪些
  • Linux防火墙利器:iptables详解
  • 网站建设mrd文档模板公众号开发运营方案
  • IDEA实用快捷键
  • 电影网站建设公司泰州企业网站建设
  • 论文学习_kTrans: Knowledge-Aware Transformer for Binary Code Embedding
  • 南京著名网站制作公司翻译
  • c和c++生态以及学习路线和应用领域
  • 网站名称是什么意思有没有做翻译赚钱的网站
  • 网站开发语言怎么用ps做网站框架
  • Linux中pinctrl使用
  • 网站建设设计说明医疗器械网站建设方案
  • 网站建设 主机选择快照打开是网站网站
  • 从零构建RAG知识库管理系统(三)
  • 网站建设制作小程序开发wordpress 标点排版
  • 【单调栈 离散化】P10798 「CZOI-R1」消除威胁|普及+
  • 邵武建设局网站wordpress多用户博客
  • (Kotlin高级特性三)Kotlin密封类(Sealed Class)在何时比枚举更适用?
  • kalibr进行相机内参以及相机imu的融合标定
  • 最简单的做网站工具网站发外链的好处
  • 北京神州网站建设xxx网站策划书
  • linux开启bbr网络优化
  • 前后端路径处理完整指南:从零开始理解Web开发中的路径问题
  • 为什么网站要备案头条新闻 免费下载
  • 汇通网做期货的网站做期货的网站软件开发平台 devcloud