消息中间件RocketMQ原理解析 - 斩秋TreeMapkey 是消息在此 ConsumeQueue 队列中索引 (2) 对于顺序消息消费 处理 locked 属性:当 consumer 端向 broker 申请锁队列成功后设置 true, 只有被锁定 的 processqueue 才能被执行消费 rollback: 将消费在 msgTreeMapTemp 中的消息,放回 msgTreeMap 重新消费 commit: 构建一个线程池来接收消费请求 ConsumeRequest 构建一个单线程的本地线程, 用来稍后定时重新消费 ConsumeRequest, 用来执行 定时周期性(一秒)钟锁队列任务 周期性锁队列 lockMQPeriodically 获取正在消费队列列表 ProcessQueueTable 所有 MesssageQueue, 构建根据 broker 归类成 MessageQueue ConsumeRequest 任务的 run 方法 判断 proccessQueue 是否被 droped 的, 废弃直接返回,不在消费消息 每个 messagequeue 都会生成一个队列锁来保证在当前 consumer 内,同一个队列串行 消费, 判断 processQueue 的 lock 属性是否为 true,lock 属性是否过期,如果为 false 或者过期, 放到本地线程稍后锁定在消费。 0 码力 | 57 页 | 2.39 MB | 1 年前3
谈谈MYSQL那点事使用 SHOW PROCESSLIST SHOW PROCESSLIST 来查看当前 来查看当前 MySQL MySQL 服务器线 服务器线 程 程 执行情况,是否锁表,查看相应的 执行情况,是否锁表,查看相应的 SQL SQL 语句 语句 设置 设置 my.cnf my.cnf 中的 中的 long-query-time long-query-time 和0 码力 | 38 页 | 2.04 MB | 1 年前3
共 2 条
- 1













