上一页 1 2 3 4 5 6 7 ··· 27 下一页
  2021年8月13日
摘要: dubbo 通过 SPI + ExtensionLoader 实现了一种比较灵活的定制开发的方式,SPI 即配置文件,文件名为接口类的全名,内容为 "key=接口实现类的全名",而 ExtensionLoader 是一个类似于 spring 的容器,在 dubbo 项目中需要获取一个类的实例时,直接 阅读全文
posted @ 2021-08-13 20:04 偶尔发呆 阅读(122) 评论(0) 推荐(0) 编辑
  2021年7月26日
摘要: 很长一段时间没有关注 nacos 了,今天看了下代码,发现其已经使用 grpc 替换了 http。 抽象出 com.alibaba.nacos.core.remote.RequestHandler,用来处理 grpc 的请求。 以 ConfigQueryRequestHandler 为例,它是一个查 阅读全文
posted @ 2021-07-26 16:47 偶尔发呆 阅读(2187) 评论(0) 推荐(1) 编辑
  2020年11月25日
摘要: 1. git clone 代码 2. 这个项目比较挑 jdk 版本,好像只支持 jdk8 3. 把注释掉的配置文件,解放出来 4. 启动本地 zk 5. 启动 org.apache.shardingsphere.proxy.Bootstrap 阅读全文
posted @ 2020-11-25 20:39 偶尔发呆 阅读(284) 评论(2) 推荐(0) 编辑
  2020年6月30日
摘要: 按照我看源码的进度,条件 condition 是 aqs 的最后一块拼图。 我总结的 aqs 三要素:stateownerThread等待队列 这里没有考虑到 condition,condition 的用法如下 lock.lock(); condition.await(t); lock.unlock 阅读全文
posted @ 2020-06-30 18:05 偶尔发呆 阅读(169) 评论(0) 推荐(0) 编辑
  2020年6月22日
摘要: KafkaController 需要处理各种各样的事件,事件统一投递到队列里面,由一个线程进行消费。 // kafka.controller.ControllerEventManager private val putLock = new ReentrantLock() // 存放事件的队列 pri 阅读全文
posted @ 2020-06-22 12:59 偶尔发呆 阅读(327) 评论(0) 推荐(0) 编辑
  2020年6月21日
摘要: 场景: 3 节点集群 (b1, b2, b3),分区 tp1 的 isr[1, 2, 3],leader 是 1,现在希望把 tp1 的 leader 切换为 3,怎么操作? 1. 通过 zk 客户端,修改 zk 上 tp1 的 isr 列表为 [3, 2, 1] 2. 执行命令行 kafka-pr 阅读全文
posted @ 2020-06-21 17:47 偶尔发呆 阅读(828) 评论(0) 推荐(0) 编辑
  2020年6月20日
摘要: kafka 非常难,难在 broker 有角色之分,controller 起控制作用,难在副本有角色之分,leader 提供读写服务,所以 broker 会有状态的切换,副本也有状态的切换。 从一个具体的场景切入,4 节点集群(b1, b2, b3, b4),存在 1 个分区 tp0 分布在 (b1 阅读全文
posted @ 2020-06-20 23:06 偶尔发呆 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 通常使用 ReentrantLock.tryLock 的时候,都会带上一个时间戳,如果到了时间仍然没获取锁返回 false。 不带时间戳,当前线程只会尝试获取一次锁,然后返回结果;带上时间戳,则当前线程在等待时间内会多次尝试获取锁。 这里面细节还挺多,在等待时间内,线程是否会挂起? 如果挂起,是怎么 阅读全文
posted @ 2020-06-20 12:28 偶尔发呆 阅读(1079) 评论(0) 推荐(0) 编辑
  2020年6月16日
摘要: 每一个副本 leader 管理自己的 isr 列表,进行扩缩,并写入 zk 把某些 replica 加入到 isr 中:如果 follower 的 offset 大于等于 leader 的 HW,则把该 replica 加入到 isr 中 // kafka.cluster.Partition#may 阅读全文
posted @ 2020-06-16 22:29 偶尔发呆 阅读(376) 评论(0) 推荐(0) 编辑
摘要: producer 发送数据到 broker,如果 producer 端设置 acks = -1,同时 broker 侧配置 min.insync.replicas = 2,这时 broker 会创建 DelayedProduce,leader broker 会等待消息复制到其他副本中,或者超时后返回 阅读全文
posted @ 2020-06-16 15:12 偶尔发呆 阅读(567) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 ··· 27 下一页