Ink's Blog

Less Is More

「Notes」分布式快照算法:Chandy-Lamport 论文阅读

学习 Flink Checkpoint 时,必然要了解分布式系统中实现快照的方法,本文是经典分布式快照 Chandy-Lamport 算法的小记,论文地址:Distributed Snapshots: Determining Global States of Distributed Systems 解决的问题Chandy-Lamport 算法的目标是在分布式系统下保存全局的状态,完成全局......

「Notes」Streaming Systems 第一章

Streaming 理论入门

准备阅读 Streaming Systems,这本书偏向于介绍构建流计算系统的通用理论知识,做一些阅读笔记。 第一章包括了对流处理中基本概念的描述,讨论了流式系统的能力、两种重要的时间概念,以及一些常见的数据处理模式。 基本术语解释:Streaming 到底是什么?Streaming System:用来处理无限数据集的数据处理引擎。 可以从两个维度描述给定的数据集: 数据的有界和无界 ......

最熟悉的陌生人:Java 的 wait、notify/notifyAll、join、sleep、interrupt、yield 方法

对于 Javaer 来说,wait、notify、sleep 等方法应该是最熟悉不过了,但是你真的知道它们的区别和内在原理吗,你知道如何正确使用它们吗,今天来做一个总结。 首先明确一点,以上这些方法,有的是 Object 类下面的方法,有的是 Thread 类下面的方法,但是它们起作用的都是线程,而非某个对象。就是为了让线程之间可以更好地协作,协作使用锁或者 CPU 这些共享资源。 wa......

闲聊 Kafka Producer 的设计

最近在看 Kafka Producer 的源码,直接讲解源码比较枯燥,本文将结合我们实际生活中的例子初步了解下 Kafka Producer 的设计思路。 Kafka Producer 怎么用?Kafka Producer 的用法是很简单的,指定一个 brokerlist 地址,指定一个 topic,然后往这个 topic 发数据就可以了。 123456789101112131415Pr......

Flink 集群的组成

本文介绍了 Flink 架构,描述了其主要组件如何交互以执行应用程序和从故障中恢复。 Flink 采用的是分布式系统中标准的 master-slave 架构,运行时包含两个主要组件:一个 JobManager 和一个或多个 TaskManager。当 Flink 集群启动后,首先会启动一个 JobManager。由 Client 提交任务给 JobManager,JobManager 再......

Flink 学习大纲

随着阿里的强势入主,Flink 目前已经成为了国内事实上的标准流式处理框架,本文将对其做一个基本的介绍,作为后续深入学习的大纲。本文主要回答以下三个问题: Flink 到底是什么?解决了什么问题? Flink 包含哪些基本内容? Flink 学习资源推荐 Flink 是什么?官方文档里说,Flink 是一个框架和分布式处理引擎,用于在无边界和有边界数据流上进行有状态的计算。 首先 F......

Flink CDC 介绍

flink-cdc 提供了基于 flink 的 cdc 方案,今天做一个简单介绍。 术语解释CDC:Change data capture DML:data manipulation language,对数据进行增删改的一些操作 DDL:data definition language,数据库定义 BINLOG:binary log,mysql二进制日志文件,顺序写顺序读,性能高,mys......

「Notes」Java 并发编程实战

2020.11.29 开始读,每天读一章,先读一周试试水。 非原子的64位操作Java 内存模型要求,变量的读取和写入操作都必须是原子操作,但对于非 volatile 类型的 long 和 double 变量,JVM 允许将 64 位的读操作或写操作分解为两个 32 位的操作。 volatile 作用 编译器和运行时不再重排序 不会被缓存到寄存器或者对其他处理器不可见的地方 不要在构造......

系统炸了怎么办?

线上出问题的时候,排查速度是放在第一位的,工欲善其事必先利其器,今天就来总结一下排查常用的工具和命令。 当遇到突发问题时,在我看来,正确的解决步骤应当按照下面几步进行: 评估影响 止损恢复 排查恢复 case study 评估影响某天突然来了告警,线上出问题,怎么办?先不要慌,千万不要一上来就想找到原因,因为你不一定能马上找到问题,当然如果问题特别简单或者你很快就找到了解决方案(5分......

如何实现多个 Kafka 集群的高可用

基于熔断机制切换主备 Kafka 集群

熔断机制是网关中经常用到的一种策略,那么它和 Kafka 组合在一起会产生什么化学反应呢,让我们一起来瞧一瞧。 多 Kafka 集群的高可用到底指什么?打开 Kafka 的官网,它首先告诉你 Kafka 能做啥,其中就有高可用。 Kafka 的高可用,通俗理解就是一个 Kafka 集群不会完全挂掉,总是会有那么几个 broker 是可以工作的,在数据量比较小的时候一般 Kafka 自身......