12 2021 档案

摘要:维基百科对 Zookeeper 的介绍如下所示: Apache ZooKeeper是 Apache 软件基金会的一个软件项目,它为大型分布式计算提供开源的分布式配置服务、同步服务和命名注册 ZooKeeper 的架构通过冗余服务实现高可用性。因此,如果第一次无应答,客户端就可以询问另一台ZooKee 阅读全文
posted @ 2021-12-29 23:04 FatalFlower 阅读(251) 评论(0) 推荐(0)
摘要:RocketMQwiki是一个分布式消息和流数据平台,具有低延迟、高性能、高可靠性、万亿级容量和灵活的可扩展性。RocketMQ是2012年阿里巴巴开源的第三代分布式消息中间件,2016年11月21日,阿里巴巴向Apache软件基金会捐赠了RocketMQ;第二年2月20日,Apache软件基金会宣 阅读全文
posted @ 2021-12-25 20:36 FatalFlower 阅读(550) 评论(0) 推荐(0)
摘要:消息中间件的作用 采用消息中间件的原因: 有时并发量并不是一直那么大,只是瞬时间有那么大的流量导致系统在这个时间区间内无法负载这么大的流量,导致系统崩溃。这种情况下,可以采用消息中间件来暂时存储这些消息,在之后的时间区域内再进行处理,这也被成为 “削峰填谷” 随着微服务的流行,需要对系统的各个部分进 阅读全文
posted @ 2021-12-25 10:50 FatalFlower 阅读(398) 评论(0) 推荐(0)
摘要:有时可能需要查看 Unix 操作系统中有关于文件基本单元的块大小,以便对有的系统进行适当的优化(如 MySQL),本文将介绍几种在 Unix 上以及类 Unix 操作系统上可行的查看方式 检查文件系统[1] 使用 df 命令 具体的命令如下: # df 命令本身是用于报告磁盘的使用情况,经过扩展 - 阅读全文
posted @ 2021-12-22 22:20 FatalFlower 阅读(1995) 评论(0) 推荐(0)
摘要:解决并发事务带来的问题 写—写情况 任意一种事务隔离级别都不允许 “脏写” 的发生,因为这样会使得数据混乱。所以,当多个未提交的事务相继对一条记录进行改动时,就需要使得这些事务串行执行,避免 “脏写” 的发生。 为了使得事务的执行是串行化的,需要通过对修改的记录进行加锁,才能保证事务的执行是串行化的 阅读全文
posted @ 2021-12-22 13:56 FatalFlower 阅读(97) 评论(0) 推荐(0)
摘要:事务 事务是一组原子性的 SQL 操作,或者被称为一个独立的工作单元,如果数据库引擎能够成功地对数据库应用该组的全部 SQL 语句,那么就会全部执行,否则全部不执行。 事务的特性 在关系数据库管理系统中,事务需要满足 ACID 四个基本特征,具体解释如下[1]: A(Atomicity)原子性 一个 阅读全文
posted @ 2021-12-21 09:19 FatalFlower 阅读(97) 评论(0) 推荐(0)
摘要:在操作系统和数据库管理系统中,为了提高数据的容灾性,一般都会通过写入相关日志的方式来记录数据的修改,使得系统受到灾难时能够从之前的数据中恢复过来。MySQL 也提供了日志的机制来提高数据的容灾性,主要包括 redo 日志和 undo 日志 redo 日志 在 Buffer Pool中修改了页,如果在 阅读全文
posted @ 2021-12-20 14:32 FatalFlower 阅读(135) 评论(0) 推荐(0)
摘要:对应 LeetCode 475.供暖器 问题描述 给出位于一条水平线上的房屋 \(houses\) 和供暖器 \(heaters\) 的位置,请找出并返回可以覆盖所有房屋的最小加热半径。所有供暖器都遵循你的半径标准,加热的半径也一样 比如,对于输入的 $house=[1, 5]$​,$heaters 阅读全文
posted @ 2021-12-20 09:51 FatalFlower 阅读(43) 评论(0) 推荐(0)
摘要:存储在磁盘上的数据需要通过 IO 来读取,这是一个比较耗时的操作,为了能够提高访问速度,MySQL 引入了 Page 的结构作为客户端与数据交互的基本单元。 Page 结构 Page 的大小默认为 16 kb,由于这个大小可能无法与某些操作系统的页大小相匹配,这种情况下可能会使得对于 Page 的写 阅读全文
posted @ 2021-12-17 08:51 FatalFlower 阅读(438) 评论(0) 推荐(0)
摘要:对应 126. 单词接龙 II 问题描述 按字典 wordList 完成从单词 beginWord 到单词 endWord 转化,一个表示此过程的 转换序列 是形式上像 beginWord → s1 → s2 → ... → sk 这样的单词序列,并满足: 每对相邻的单词之间仅有单个字母不同。 转换 阅读全文
posted @ 2021-12-16 17:13 FatalFlower 阅读(42) 评论(0) 推荐(0)
摘要:对应 LeetCode 752.转动转盘锁 ### 问题定义 你有一个带有四个圆形拨轮的转盘锁。每个拨轮都有10个数字: '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' 。每个拨轮可以自由旋转:例如把 '9' 变为 '0','0' 变为 '9' 。每 阅读全文
posted @ 2021-12-16 16:40 FatalFlower 阅读(68) 评论(0) 推荐(0)
摘要:本文翻译于: https://redis.io/topics/distlock 分布式锁在不同的进程必须互斥地访问共享资源的情况下是十分有用的。 已经有许多的库和博客描述了如何使用 Redis 来实现 DLM(Distrubtion Lock Manage)。但是这些库都使用了不同的方法,并且与使用 阅读全文
posted @ 2021-12-15 21:44 FatalFlower 阅读(766) 评论(0) 推荐(0)
摘要:任务的创建与执行 在多线程的编程环境中,理想的情况是每个任务之间都存在理想的边界,各个任务之间相互独立,这样才能够享受到并发带来的明显的性能提升,并且,由于每个任务之间如果都是独立的,对于并发的处理也会简单许多。 一般情况下,显式地创建一个线程,启动一个任务会调用以下的构造函数创建一个 Thread 阅读全文
posted @ 2021-12-15 21:39 FatalFlower 阅读(58) 评论(0) 推荐(0)
摘要:传统 Map 的局限性 HashMap JDK 1.7 的 HashMap JDK 1.7 中 HashMap 的实现只是单纯的 “数组 + 链表 ” 的组合方式,具体的组成如下: [1] 在 JDK 1.7 的实现中,HashMap 内部会维护一个数组,数组中的每个元素都是一个单向链表。这是因为不 阅读全文
posted @ 2021-12-12 14:21 FatalFlower 阅读(53) 评论(0) 推荐(0)
摘要:本文使用的 JDK 版本为 JDK 8 JUC 中关于读写锁的接口定义如下: // java.util.concurrent.locks.ReadWriteLock public interface ReadWriteLock { // 返回一个读锁 Lock readLock(); // 返回一个 阅读全文
posted @ 2021-12-09 21:19 FatalFlower 阅读(145) 评论(0) 推荐(0)
摘要:本文使用的 JDK 版本为 JDK 8 基本同步工具类 闭锁(CountDownLatch) 闭锁是一种工具类,可以延迟线程的进度直到其到达终止状态。闭锁的作用相当与一扇门:在闭锁的状态到达之前,这扇门一直是关闭的,没有任何线程能够通过,当到达这扇门之后,这扇门会打开并且允许所有的线程通过。当闭锁到 阅读全文
posted @ 2021-12-09 21:18 FatalFlower 阅读(125) 评论(0) 推荐(0)
摘要:本文 JDK 对应的版本为 JDK 13 由于传统的 synchronized 关键字提供的内置锁存在的一些缺点,自 JDK 1.5 开始提供了 Lock 接口来提供内置锁不具备的功能。显式锁的出现不是为了替代 synchronized提供的内置锁,而是当内置锁的机制不适用时,作为一种可选的高级功能 阅读全文
posted @ 2021-12-07 14:29 FatalFlower 阅读(62) 评论(0) 推荐(0)
摘要:线程状态 线程一般的状态转换图如下: 在线程生命周期中存在的状态解释如下: New(初始化)状态 此时线程刚刚被实例化,可以通过调用 start() 方法来启动这个实例化的的线程,使其状态转变成为 Ready 状态 Runnable 状态 Ready 状态和 Running 状态统称为 Runnab 阅读全文
posted @ 2021-12-06 14:47 FatalFlower 阅读(76) 评论(0) 推荐(0)
摘要:与计算机基础相关的线程知识在此略过 线程安全性 相关的定义如下: 当多个线程访问某个类时,不管运行时环境采用何种调度方式或者这些线程将如何交替执行,并且在代码中不需要任何额外的同步或者协同,这个类都能够表现出正确的行为,那么称这个类是线程安全的 常见的线程安全对象: 无状态对象 无状态对象一定是线程 阅读全文
posted @ 2021-12-04 11:17 FatalFlower 阅读(82) 评论(0) 推荐(0)
摘要:对应 LeetCode 127 单词接龙 问题定义 给定一个字典序列 wordList,一个初始的单词 beginWord 和一个目标单词 endWord,现在要求每次变换满足以下条件将 beginWord 转换为 endWord: 每次只能转换一个字母 转换后的单词必须出现在 wordList 中 阅读全文
posted @ 2021-12-03 15:16 FatalFlower 阅读(57) 评论(0) 推荐(0)