木西笔记

个人博客

K8S 搭建指南(二)

前言在本搭建指南的第一部分中,我们从零开始,详细介绍了两种主流的 Kubernetes 集群搭建方法。首先,我们探讨了如何使用 kubeadm 工具快速部署一个功能完备的集群,这个过程涵盖了从环境准备、容器运行时安装到集群初始化的每一个步骤。随后,我们深入到手动二进制部署的细节,构建了一个高可用的生产级集群。这包括:手动签发所有 TLS 证书,搭建高可用 etcd 集群,配置 keepali...

K8S 搭建指南(一)

K8S 搭建指南 第一部分 前置操作设置静态IP地址 使用mutui的方法重置网络配置123456789在终端输入:nmtui选择 "Edit a connection"。选择你的网卡并按 Enter。将 IPv4 CONFIGURATION 从 <Automatic> 改为 <Manual>。点击 <Show> 展开,填写 Addre...

分布式事务一

CAP和BASE理论

基础理论CAP 理论CAP 定理(Consistency、Availability、Partition Tolerance Theorem),也称为 Brewer 定理,起源于在 2000 年 7 月,是加州大学伯克利分校的 Eric Brewer 教授于“ACM 分布式计算原理研讨会(PODC)”上提出的一个猜想。两年之后,麻省理工学院的 Seth Gilbert 和 Nancy Lync...

分布式事务二

分布式事务概述

基础理论分布式事务单机的事务我已经在我的隔离级别系列文章中总结过,分布式事务是针对分布式系统中对数据的修改发生的逻辑上满足事务特性的操作序列的要求。 分布式事务指的是事务的参与者、事务所在的服务器、涉及的资源服务器以及事务管理器等分别位于不同分布式系统的不同服务或数据库节点上。简单来说,分布式事务就是一个在不同环境(比如不同的数据库、不同的服务器)下运行的整体事务。这个整体事务包含一个或者多...

事务详解(2)-- 再谈隔离级别

基于锁调度的隔离级别

前言在上一篇文章当中,我们讨论了事务的一般理论以及事务的隔离级别的起源,并讨论了SQL-92标准的问题的修正的论文 「A Critique of ANSI SQL Isolation Levels」。改论文在标准的基础上推广出了异常现象P1-P3广义的解释,然后根据A1-A3的容忍度补充了标准内的隔离级别P0的个隔离级别。本文继续讨论 「A Critique of ANSI SQL Isol...

事务详解(1)-- 隔离级别

【A Critique of ANSI SQL Isolation Levels】详解

概要本文主要讨论的是事务隔离级别,从事务隔离级别的起源,标准和本质来深入分析事务并发控制下的隔离级别的原理和实现。阅读文本前,你需要具备事务的一些基本知识,本文的第一章节会回顾我们所熟知的有关隔离级别和事务的基础知识。如果你了解事务的一般基础知识,你可以跳过第一章节,直接阅读第二章节。 事务概述什么是事务事务由一组操作构成,我们希望这组操作能够全部正确执行,如果这一组操作中的任意一个步骤发生...

开源重试组件Attempt

开源想做开源软件很久了,奈何一直没有启动起来。一来是没有契机,二来也没有想法。2020年由于一些变故,我从某团离职后来到了新公司。负责一个To B业务, 由于并发量和我以前负责的项目没法比,同时又是个to B的项目,因此省去了火急火燎的去处理线上问题的时间。因此,更多的时间我拿来思考和总结。 同时也参加了软件架构师的培训中。虽然各大互联网企业对软考证书似乎并不care,但是我的目的不仅仅如此...

Java并发编程之volatile关键字

从Hotspot分析volatile的实现原理

概述volatile关键字是Java并发编程当中不可或缺的一环,维序着Java共享变量的可见性和有序性。由于volatile关键字是与Java的内存模型有关的,因此在讲述volatile关键之前,我们先来回顾一下volatile的应用场景。 Java是跨平台的,因此针对于不同平台,JVM实现方式也有所不同,但是必遵循一定的规范,来统一Java编程的基本原则,这个规范被成为Java虚拟机规范。...

Java内存模型(2)

编译器重排序

前言在我的Java内存模型(1)JMM是什么 中我已经阐述了JMM是什么以及CPU缓存模型和流水线的技术,下面针对于指令重排序中的编译器重排序做深入的讨论。 内存模型在JVM的应用首先,我们再来重温一下,三种重排序。 重排序指令重排序:在执行程序时为了提高性能,编译器和处理器常常会对指令做重排序。重排序分三种类型: 编译器优化的重排序 编译器在不改变单线程程序语义的前提下(代码中不包含s...

CPU缓存一致性协议

深入理解内存屏障

CPU 结构现代多核处理器,一个CPU由多个核组成,每个核又可以有多个硬件线程,比如我们说4核8线程,就是指有4个核,每个核2个线程,这在OS看来就像8个并行处理器一样。CPU缓存有多级缓存,比如L1, L2, L3等:L1容量最小,速度最快,每个核都有L1缓存,L1又专门针对指令和数据分成L1d(数据缓存),L1i(指令缓存)。L2容量比L1大,速度比L1慢,每个核都有L2缓存。L3容量最...