摘要: 我开源了一个轻量级的 kafka 消费客户端,已上传到中央仓库,欢迎使用! https://github.com/rushsky518/lite-kafka-consumer 阅读全文
posted @ 2023-07-18 11:32 偶尔发呆 阅读(29) 评论(0) 推荐(0) 编辑
  2023年12月29日
摘要: 通常我们使用 ES, 使用的是 http api,其实 Elasticsearch 是天生的集群架构,ES 进程监听 2 个端口,9200 用于提供 http 访问,9300 用于和集群中的节点进行通信。 在 windows 开发环境下,调试 Elasticsearch 8.4.0-snapshot 阅读全文
posted @ 2023-12-29 21:01 偶尔发呆 阅读(19) 评论(0) 推荐(0) 编辑
  2023年12月28日
摘要: es 的索引生命周期管理 index lifecycle management 即 ILM,控制着索引的创建、滚动、删除、归档,属实好用,那么它是如何实现的呢? 可以想象得到,es 的 master 执行一个定时任务,定期检查关联了 ilm 的索引,判断索引的状态,执行状态的流转。 ILM 相关代码 阅读全文
posted @ 2023-12-28 16:13 偶尔发呆 阅读(53) 评论(0) 推荐(0) 编辑
  2023年10月16日
摘要: 通常我们说 es 是近实时的搜索服务,指的是 es 写入一条数据后,默认 1 s 后才可以搜索到,但我们在实际使用过程中指定 id 可以进行实时的查询。客户端使用 GetRequest 发起的查询默认是实时的,分片会从 translog 中读取数据并返回,为什么通过 id 查询就是实时的呢? es 阅读全文
posted @ 2023-10-16 16:26 偶尔发呆 阅读(156) 评论(0) 推荐(0) 编辑
  2023年9月21日
摘要: kafka 是一个高吞吐的消息服务中间件,当然这一切都是有原因的,今天我从 kafka 拉取消息这个场景剖析下 broker 的实现。 问题:kafka consumer 在 poll 的时候传递了一个 timeout 的参数,broker 是怎么处理这个参数的?如果 leader broker 有 阅读全文
posted @ 2023-09-21 11:42 偶尔发呆 阅读(161) 评论(0) 推荐(0) 编辑
  2023年9月20日
摘要: 在 kafka broker 内部,当执行一些需要等待的任务时(比如 broker 处理 producer 的消息,需要等待消息同步到其他副本),会使用到 DelayedOperationPurgatory 和 DelayedOperation,大致流程如下图: 顶层的类是 DelayedOpera 阅读全文
posted @ 2023-09-20 13:25 偶尔发呆 阅读(21) 评论(0) 推荐(0) 编辑
  2023年9月15日
摘要: 本文从一个示例入手,从代码层面分析 elastic search 查询文档的完整过程。 新建索引 cn-msg,设置 3 分片,1 副本 PUT localhost:9200/cn-msg { "settings": { "number_of_shards": 3, "number_of_repli 阅读全文
posted @ 2023-09-15 10:36 偶尔发呆 阅读(39) 评论(0) 推荐(0) 编辑
  2023年8月29日
摘要: 本文分析一下 es 写入文档,并同步到副本的一个过程,先阅读官方文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-replication.html Every indexing operation in E 阅读全文
posted @ 2023-08-29 14:51 偶尔发呆 阅读(20) 评论(0) 推荐(0) 编辑
  2023年8月21日
摘要: 先看一段 kubernetes scheduler 的描述: The Kubernetes scheduler is a control plane process which assigns Pods to Nodes. The scheduler determines which Nodes a 阅读全文
posted @ 2023-08-21 15:10 偶尔发呆 阅读(35) 评论(0) 推荐(0) 编辑
  2023年8月14日
摘要: 我们都知道 elastic search 是近实时的搜索系统,这里面的原因究竟是什么呢?es 是近实时,是因为 lucene 是近实时的。我们看一段 lucene 的示例代码: 使用的 lucene 版本如下: <dependency> <groupId>org.apache.lucene</gro 阅读全文
posted @ 2023-08-14 14:52 偶尔发呆 阅读(143) 评论(0) 推荐(0) 编辑
  2023年8月3日
摘要: 一、首先摆一张基于 zipkin 的调用链数据架构图 1.1 应用程序把搜集到的 span 信息发送到 kafka 1.2 zipkin 消费 kafka 中消息 1.3 zipkin 将数据写入到 mysql 1.4 为 zipkin 集群配置反向代理,路由 web ui 请求 二、接下来描述每个 阅读全文
posted @ 2023-08-03 10:58 偶尔发呆 阅读(268) 评论(2) 推荐(0) 编辑