跳至主要內容
《Kafka 核心技术与实战》笔记

《Kafka 核心技术与实战》笔记

开篇词 为什么要学习 Kafka?

消息引擎系统 ABC

消息引擎系统的作用:

  • 消息引擎传输的对象是消息;
  • 如何传输消息属于消息引擎设计机制的一部分。

钝悟...大约 33 分钟笔记分布式分布式通信分布式分布式通信MQKafka
Kafka 面试

Kafka 面试

Kafka 简介

【基础】什么是 Kafka?

要点

Apache Kafka 是一款开源的消息引擎系统,也是一个分布式流计算平台,此外,还可以作为数据存储

img
img

Kafka 的核心功能如下:

  • 消息引擎 - Kafka 可以作为一个消息引擎系统。
  • 流处理 - Kafka 可以作为一个分布式流处理平台。
  • 存储 - Kafka 可以作为一个安全的分布式存储。

Kafka 的设计目标:

  • 高性能
    • 分区、分段、索引:基于分区机制提供并发处理能力。分段、索引提升了数据读写的查询效率。
    • 顺序读写:使用顺序读写提升磁盘 IO 性能。
    • 零拷贝:利用零拷贝技术,提升网络 I/O 效率。
    • 页缓存:利用操作系统的 PageCache 来缓存数据(典型的利用空间换时间)
    • 批量读写:批量读写可以有效提升网络 I/O 效率。
    • 数据压缩:Kafka 支持数据压缩,可以有效提升网络 I/O 效率。
    • pull 模式:Kafka 架构基于 pull 模式,可以自主控制消费策略,提升传输效率。
  • 高可用
    • 持久化:Kafka 所有的消息都存储在磁盘,天然支持持久化。
    • 副本机制:Kafka 的 Broker 集群支持副本机制,可以通过冗余,来保证其整体的可用性。
    • 选举 Leader:Kafka 基于 ZooKeeper 支持选举 Leader,实现了故障转移能力。
  • 伸缩性
    • 分区:Kafka 的分区机制使得其具有良好的伸缩性。

钝悟...大约 45 分钟分布式分布式通信mqkafkaJava中间件mqkafka面试
RPC 面试

RPC 面试

RPC 简介

【基础】什么是 RPC?RPC 有什么用?

要点

RPC 的全称是 Remote Procedure Call,即远程过程调用

RPC 的主要作用是:

  • 屏蔽远程调用跟本地调用的差异,让用户像调用本地一样去调用远程方法。
  • 隐藏底层网络通信的复杂性,让用户更聚焦于业务逻辑。

RPC 是微服务架构的基石,它提供了一种应用间通信的方式。


钝悟...大约 40 分钟分布式分布式通信RPC分布式通信微服务RPC
分布式存储面试

分布式存储面试

缓存

扩展:


钝悟...大约 11 分钟分布式分布式存储分布式分布式存储面试
分布式调度面试

分布式调度面试

服务注册和发现

【基础】什么是服务注册和发现?

要点

服务定义是服务提供者和服务消费者之间的约定,但是在微服务架构中,如何达成这个约定呢?这就依赖于服务注册和发现机制。

在微服务架构下,服务注册和发现机制中主要有三种角色:

  • 服务提供者(RPC Server / Provider)
  • 服务消费者(RPC Client / Consumer)
  • 服务注册中心(Registry)

服务发现通常依赖于注册中心来协调服务发现的过程,其步骤如下:

  1. 服务提供者将接口信息以注册到注册中心。
  2. 服务消费者从注册中心读取和订阅服务提供者的地址信息。
  3. 如果有可用的服务,注册中心会主动通知服务消费者。
  4. 服务消费者根据可用服务的地址列表,调用服务提供者的接口。

这个过程很像是生活中的房屋租赁,房东将租房信息挂到中介公司,房客从中介公司查找租房信息。房客如果想要租房东的房子,通过中介公司牵线搭桥,联系上房东,双方谈妥签订协议,就可以正式建立起租赁关系。

img
img

钝悟...大约 69 分钟分布式分布式调度分布式协同面试
分布式协同面试

分布式协同面试

复制

【基础】什么是复制?复制有什么作用?

要点

复制主要指通过网络在多台机器上保存相同数据的副本

复制数据,可能出于各种各样的原因:

  • 提高可用性 - 当部分组件出现位障,系统依然可以继续工作,系统依然可以继续工作。
  • 降低访问延迟 - 使数据在地理位置上更接近用户。
  • 提高读吞吐量 - 扩展至多台机器以同时提供数据访问服务。

钝悟...大约 72 分钟分布式分布式协同分布式协同综合分布式协同面试
Dubbo 面试

Dubbo 面试

简介

【基础】Dubbo 是什么?为什么使用 Dubbo?

要点

Dubbo 是一款高性能、轻量级的开源 Java RPC 框架。

Dubbo 提供了三大核心能力:

  • 面向接口的远程过程调用(RPC):提供高性能的基于代理的远程调用能力,服务以接口为粒度,为开发者屏蔽远程调用底层细节。
  • 智能容错和负载均衡:内置多种负载均衡策略,智能感知下游节点健康状况,显著减少调用延迟,提高系统吞吐量。
  • 服务自动注册和发现:支持多种注册中心服务,服务实例上下线实时感知。

钝悟...大约 49 分钟分布式分布式通信RPC分布式通信RPC微服务Dubbo面试
《深入理解 Sentinel》笔记

《深入理解 Sentinel》笔记

开篇词:一次服务雪崩问题排查经历

什么是服务雪崩

服务雪崩是指:在微服务项目中指由于突发流量导致某个服务不可用,从而导致上游服务不可用,并产生级联效应,最终导致整个系统不可用。

当一切正常时,整体系统如下所示:


钝悟...大约 8 分钟笔记分布式分布式调度分布式调度限流熔断降级Sentinel
服务注册和发现

服务注册和发现

服务注册和发现的基本原理

服务定义是服务提供者和服务消费者之间的约定,但是在微服务架构中,如何达成这个约定呢?这就依赖于服务注册和发现机制。

注册和发现的角色

在微服务架构下,服务注册和发现机制中主要有三种角色:

  • 服务提供者(RPC Server / Provider)
  • 服务消费者(RPC Client / Consumer)
  • 服务注册中心(Registry)

钝悟...大约 21 分钟分布式分布式调度分布式服务治理调度服务注册服务发现
分布式共识

分布式共识

什么是分布式共识

分布式系统最重要的抽象之一就是共识(consensus):所有的节点就某一项提议达成一致

共识问题通常形式化如下:一个或多个节点可以提议(propose) 某些值,而集群中的所有有效节点根据共识算法进行协商,最终决议(decides) 采纳某个节点的提议。

而共识算法必须满足以下性质:

  1. 达成一致(Uniform agreement) - 没有两个节点的决定不同。
  2. 完整性(Integrity) - 每个节点最多决议一次。
  3. 有效性(Validity) - 如果一个节点决定了值 v ,则 v 由某个节点所提议。
  4. 终止(Termination) - 由所有未崩溃的节点来最终决议。

钝悟...大约 11 分钟分布式分布式协同分布式协同综合分布式协同共识广播epochquorum
2
3
4
5
...
8