2022年4月7日

摘要: orderly:SUSPEND_CURRENT_QUEUE_A_MOMENT:在本地重试,先判断重新消费次数有没有达到最大值(consumer定义的时候传入,不传为Integer最大值),如果没达到,重试次数+1,放入消费池,1秒(默认)之后再消费,直到达到最大消费次数。发送到重试队列(这个时候必然 阅读全文
posted @ 2022-04-07 01:25 chuliang 阅读(20) 评论(0) 推荐(0) 编辑
 

2022年4月5日

摘要: producer.send方法,sendKernelImpl中,有MessageClientIDSetter.setUniqID(msg),是在message的properties属性(一个map)中,放入key为UNIQ_KEY的一个unique id(只有当UNIQ_KEY不存在,或者对应的值为 阅读全文
posted @ 2022-04-05 00:01 chuliang 阅读(11) 评论(0) 推荐(0) 编辑
 

2021年10月10日

摘要: broker定时向namesrv 注册,会告诉namesrv自己的brokername、brokeraddress、topic+队列数量信息等,namesrv会把topic的信息放到topicQueueTable(只有版本号改变才修改, broker只有topic信息发生改变了才改变版本号)中,同一 阅读全文
posted @ 2021-10-10 22:08 chuliang 阅读(23) 评论(0) 推荐(0) 编辑
 

2021年8月22日

摘要: indexFile(索引文件)和 ConsumeQueue(消费队列),都是为了更快的查找而建立的索引,后者是根据topic,前者是根据key。在ReputMessageService(一个ServiceThread的实现类)的doReput方法中, 会循环遍历每一条新收到的消息, DefaultM 阅读全文
posted @ 2021-08-22 18:59 chuliang 阅读(87) 评论(0) 推荐(0) 编辑
 

2021年6月14日

摘要: 权限控制初步: 官网是这样启动broker: nohup sh bin/mqbroker -n localhost:9876 & 在阿里云部署的时候,namesrv给producer的是局域网地址,所以要在启动的时候绑定外网ip,broker启动时候源码中是从 -c 参数指定的文件(broker.c 阅读全文
posted @ 2021-06-14 22:26 chuliang 阅读(51) 评论(0) 推荐(0) 编辑
 

2021年5月29日

摘要: 在RequestMappingHandlerAdapter.afterPropertiesSet >getDefaultArgumentResolvers方法中,先往argumentResolvers属性中添加默认的一批去处理有注解的参数,再添加一批处理特定对象类型的参数,此时还剩下的就是其他对象类 阅读全文
posted @ 2021-05-29 11:06 chuliang 阅读(122) 评论(0) 推荐(0) 编辑
 

2020年11月15日

摘要: vm.init,先为computed变量(假设是age,并在computed方法中依赖于另一个变量vm.factor)初始化,age会关联一个watcher(假设为cWatcher,lazy为true),vm.age的get方法被重写,cWatcher的dirty属性被置为true。其getter属 阅读全文
posted @ 2020-11-15 16:36 chuliang 阅读(1221) 评论(0) 推荐(0) 编辑
 

2020年11月2日

摘要: 全局组件通过Vue.component注册,而Vue.component的定义是在initGlobalAPI(Vue); >initAssetRegisters(Vue)。ASSET_TYPES数组中有'component'字符串。Vue.component(id, definition)方法的逻辑 阅读全文
posted @ 2020-11-02 00:24 chuliang 阅读(171) 评论(0) 推荐(0) 编辑
 

2020年8月26日

摘要: redisson用的是netty的io框架,逻辑在channel的handler中 先看配置,以常用的哨兵模式为例,config.useSentinelServers()+Redisson.create(config)。Redisson的构造方法中,最重要的是给connectionManager属性 阅读全文
posted @ 2020-08-26 18:21 chuliang 阅读(963) 评论(0) 推荐(0) 编辑
 

2020年8月21日

摘要: 先考虑一个问题:在一个JVM进程中,启动多个消费者/生产者,有没有限制?使用的netty client是同一个还是多个? 以DefaultMQPushConsumer为例,start this.defaultMQPushConsumerImpl.start() mQClientFactory.sta 阅读全文
posted @ 2020-08-21 13:19 chuliang 阅读(255) 评论(0) 推荐(0) 编辑