/images/avatar.png

DDIA 分布式数据的分区与复制 - 基于 Redis、Kafka、Elasticsearch 的深入分析

引言

本文基于《Designing Data-Intensive Applications》一书(设计数据密集型应用,简称 DDIA),深入探讨了 RedisKafkaElasticsearch 等常用组件的分区与复制机制。通过这些案例分析,我们可以更好地理解分布式系统的基本原理和实际应用。

Redis 全文检索及使用示例

序言

Redis 除了我们所熟知的缓存功能之外,还通过 RedisJSONRediSearchRedisTimeSeriesRedisBloom 等模块支持了 JSON 数据、查询与搜索(包括全文检索、向量搜索、GEO 地理位置等)、时序数据、概率计算等等扩展功能。这些模块既可以按需导入,也被全部打包到了 Redis Stack 中方便我们直接使用。

Redis 向量搜索

序言

Redis 除了我们所熟知的缓存功能之外,还通过 RedisJSONRediSearchRedisTimeSeriesRedisBloom 等模块支持了 JSON 数据、查询与搜索(包括全文搜索、向量搜索、GEO 地理位置等)、时序数据、概率计算等等扩展功能。这些模块既可以按需导入,也被全部打包到了 Redis Stack 中方便我们直接使用。

Kubernetes scheduler 概述及自定义调度器

kube-scheduler

kube-scheduler 是 k8s 集群中控制平面的一个重要组件,其负责的工作简单且专一:给未分配的 pod 分配一个 node 节点。

调度器的大致工作过程可以分为以下几步:

  • 监听到未绑定 node 的 pod。
  • 过滤节点:挑选出来适合分配这个 pod 的 node 节点(可能有多个)。
  • 节点打分:给过滤出来的节点进行打分。
  • 最后选择得分最高的那个 node 与 pod 绑定(如果最高得分有多个 node 则随机选择一个)。

更加详细的步骤则参考下图所示: