摘要: 关于 CompletableFuture, 引用 baeldung 中的一句话: The best part of the CompletableFuture API is the ability to combine CompletableFuture instances in a chain o 阅读全文
posted @ 2022-12-03 23:28 Tailife 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 1. 现象:CPU 使用率高达 600% idea 打开项目,Mac 风扇狂转不止,通过 Mac 自带的 Activity Monitor 看到有个 Java 进程 CPU 使用率高达 600%,丝毫没有停止的迹象。 2. 分析:查找 CPU 使用率高的线程 按照经验来说,这时候的标准步骤如下: 使 阅读全文
posted @ 2022-07-08 18:04 Tailife 阅读(2216) 评论(0) 推荐(0) 编辑
摘要: 概览 Raft is a consensus algorithm for managing a replicated log:管理复制日志的一致性算法。 Consensus:[kənˈsensəs] 一致性,共识 In designing Raft we applied specific techn 阅读全文
posted @ 2022-06-30 10:29 Tailife 阅读(71) 评论(0) 推荐(0) 编辑
摘要: 如果说到分布式 ID,肯定逃不开 Snowflake 算法,其原理如下图 介绍如下 snowflake是Twitter开源的分布式ID生成算法,结果是一个long型的ID。其核心思想是:使用41bit作为毫秒数,10bit作为机器的ID(5个bit是数据中心,5个bit的机器ID),12bit作为毫 阅读全文
posted @ 2022-06-17 15:29 Tailife 阅读(91) 评论(0) 推荐(0) 编辑
摘要: 相信很多程序员对编码既熟悉又陌生,特别是 UTF-8,几乎每天都在打交道,显得格外亲切。但是 UTF-8 到底是个啥玩意儿,还有啥 Unicode、ASCII 等都是什么鬼,不少人也都是懵逼状态,仅仅瞅着眼熟。于是我就打算理一理这三者之间的关系。 ASCII 我们知道,计算机内部使用二进制存储信息的 阅读全文
posted @ 2022-06-10 19:08 Tailife 阅读(482) 评论(0) 推荐(0) 编辑
摘要: 本文是《Paxos到Zookeeper:分布式一致性原理与实践》读书笔记,如有雷同,实属必然。 在分布式系统中,每一个机器节点虽然能够明确地知道自己在进行事务操作过程中的结果是成功或失败,但却无法直接获取到其他分布式节点的操作结果。因此,当一个事务操作需要跨越多个分布式节点的时候,为了保持事务处理的 阅读全文
posted @ 2022-06-10 18:54 Tailife 阅读(133) 评论(0) 推荐(0) 编辑
摘要: ZooKeeper 为分布式应用提供了高效且可靠的分布式协调服务,例如统一命名服务、配置管理和分布式锁等分布式的基础服务。另外,在解决分布式一致性方面,ZooKeeper 并没有直接采用 Paxos 算法,而是采用一种被称为 ZAB(ZooKeeper Atomic Broadcast)的一致性协议 阅读全文
posted @ 2022-06-10 18:54 Tailife 阅读(69) 评论(0) 推荐(0) 编辑
摘要: 本文是《Paxos到Zookeeper:分布式一致性原理与实践》读书笔记,如有雷同,实属必然。 对于本地事务或者是集中式的事务处理系统,我么可以采用已经被实现很成熟的 ACID 模型来保证数据的严格一致性。随着分布式事务的出现,传统单机事务模型已经无法胜任,我们期望实现一套严格满足 ACID 特性的 阅读全文
posted @ 2022-06-10 18:52 Tailife 阅读(118) 评论(0) 推荐(0) 编辑
摘要: ZAB 协议 ZAB(Zookeeper Atomic Broadcast) 协议是为分布式分布式协调服务 Zookeeper 专门设计的一种支持崩溃恢复的原子广播协议。 在 Zookeeper 中,主要依赖 ZAB 协议来实现分布式数据一致性,基于该协议,ZooKeeper 实现了一种主备模式的系 阅读全文
posted @ 2022-06-10 18:51 Tailife 阅读(207) 评论(0) 推荐(0) 编辑
摘要: foreach 背后 平常我们循环一个 List 大概有下面这三种方式: 传统 for 循环 for (int i = 0; i < list.size(); i++) { } 用迭代器进行迭代遍历 Iterator itr = list.iterator(); while (itr.hasNext 阅读全文
posted @ 2022-06-09 14:35 Tailife 阅读(24) 评论(0) 推荐(0) 编辑