kafka源码学习:KafkaApis-LEADER_AND_ISR

本文源码基于kafka 0.10.2版本

​ 每当controller发生状态变更时,都会通过调用sendRequestsToBrokers方法发送leaderAndIsrRequest请求,本文主要介绍kafka服务端处理该请求的逻辑和过程。

阅读全文

CompletableFuture 总结

CompletableFuture 是Java8 中新增的用来进行函数式异步编程的工具类。

最近学习源码的过程中看到有很多 CompletableFuture 的使用,感觉自己对这个类中的各个方法的使用场景和方法不是很熟悉,遂参考了下面几篇博客进行学习(本文大部分内容也都来自下面几篇博客):

Java CompletableFuture 详解

Java8新的异步编程方式 CompletableFuture(一)

Java8新的异步编程方式 CompletableFuture(二)

Java8新的异步编程方式 CompletableFuture(三)

上面的博客介绍的比较详细,为了自己查阅回看的方便,这里对这些方法进行一下总结(这里只总结不举例,具体使用需要看上面的博客)。

阅读全文

Pulsar 源码阅读: Backlog

对于已经消费但是没有确认的消息,Pulsar 可以通过配置 BacklogQuota 决定保留大小及丢弃策略。

具体参见官方文档:Message retention and expiry

当 Backlog 大小未达到限额时,不需要处理,当 Backlog 大小超限时,根据丢弃策略进行处理。

BacklogQuota 的丢弃策略一共有三种:

  1. producer_request_hold:① 断开所有的 Producer ② 在新建 Producer 时进行检查,如果超出 BacklogQuota,则拒绝新建请求并等待超时(异步返回结果调用get()时才抛出异常)
  2. producer_exception:① 断开所有的 Producer ② 在新建 Producer 时进行检查,如果超出 BacklogQuota,则拒绝新建请求并抛出异常
  3. consumer_backlog_eviction:丢弃最早的 Backlog
阅读全文

Hello World, Hello Blog

开门啦

万事开头难

我的博客终于开通了,之后会在这里写一些东西,可能是一些想法,可能是一些笔记,也可能是一些技术文章,总之,希望我的博客可以发展起来!!!