随笔分类 - 架构
架构知识汇总
摘要:1 锁机制 1.1 并发控制 为啥要进行并发控制? 并发的任务对同一个临界资源进行操作,如果不采取措施,可能导致不一致,故必须进行并发控制(Concurrency Control)。 技术上,通常如何进行并发控制? 通过并发控制保证数据一致性的常见手段有: 锁(Locking) 数据多版本(Mult
阅读全文
摘要:1 MySQL日志系统(BinLog、RedoLog、UndoLog) MySQL日志系统是数据库的重要组件,用于记录数据库的更新和修改。若数据库发生故障,可通过不同日志记录恢复数据库的原来数据。因此实际上日志系统直接决定着MySQL运行的正确性和稳健性。 MySQL的日志有很多种,如二进制日志(b
阅读全文
摘要:1 MySQL简要架构 MySQL简要架构是怎么样的? MySQL整体分为三层: (1)客户端,是各种编程语言的connector; (2)MySQL服务,内部包含各种组件,实现各种功能; (3)文件系统,数据存储与日志; 其中,MySQL服务内,可以以插件的形式,实现各种存储引擎。 在InnoDB
阅读全文
摘要:1 MySQL逻辑架构 MySQL的逻辑架构可分为四层,包括连接层、服务层、引擎层和存储层,各层的接口交互及作用如下图所示。 连接层: 负责处理客户端的连接以及权限的认证。 服务层: 定义有许多不同的模块,包括权限判断,SQL接口,SQL解析,SQL分析优化, 缓存查询的处理以及部分内置函数执行等。
阅读全文
摘要:1 MySQL简介 在关系型数据库中,MySQL可以说是其中的王者。它是目前最流行的数据库之一,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL数据库具有以下几个方面的优势: 体积小、速度快; 代码开源,采用了 GPL 协议,可以修改源码来开发自己的 MySQL 系统;
阅读全文
摘要:Java并发之AQS > 本文内容来源于书籍和网络。 [TOCM] 一、AQS是什么?有什么用? AQS全称AbstractQueuedSynchronizer,即抽象的队列同步器,是一种用来构建锁和同步器的框架。 ** 基于AQS构建同步器 ** : ReentrantLock Semaphore
阅读全文
摘要:第1讲 | 谈谈你对Java平台的理解? 1)今天我要问你的问题是,谈谈你对Java平台的理解?“Java是解释执行”,这句话正确吗? 2)典型回答 Java本身是一种面向对象的语言,最显著的特性有两个方面,一是所谓的“书写一次,到处运行”(Write once, run anywhere),能够非
阅读全文
摘要:第1章 并发编程的挑战 1.1 上下文切换 即使是单核处理器也支持多线程执行代码,CPU通过给每个线程分配CPU时间片来实现 这个机制。时间片是CPU分配给各个线程的时间,因为时间片非常短,所以CPU通过不停地切 换线程执行,让我们感觉多个线程是同时执行的,时间片一般是几十毫秒(ms)。 CPU通过
阅读全文
摘要:1 啥,又要为表增加一列属性? 需求缘起 产品第一版:用户有用户名、密码、昵称等三个属性,对应表设计: user(uid, name, passwd, nick) 第二版,产品经理增加了年龄,性别两个属性,表结构可能要变成: user(uid, name, passwd, nick, age, se
阅读全文
摘要:0 Linux系统性能问题定位的一张神图 1)Linux性能查看工具 1 线上问题排查,这些命令你一定用得到! 1)了解机器连接数情况 问题:1.2.3.4的sshd的监听端口是22,如何统计1.2.3.4的sshd服务各种连接状态(TIME_WAIT/ CLOSE_WAIT/ ESTABLISHE
阅读全文
摘要:0. Java架构师的第一性原理 《Java架构师的第一性原理》00计算机的第一性原理 1. 计算机基础 《Java架构师的第一性原理》10计算机基础之计算机组成原理 《Java架构师的第一性原理》11计算机基础之操作系统 《Java架构师的第一性原理》12计算机基础之计算机网络 2. Java基础
阅读全文
摘要:1 计算机的基本组成 计算机的基本组成: 存储器: 实现记忆功能的部件用来存放计算程序及参与运算的各种数据 运算器: 负责数据的算术运算和逻辑运算即数据的加工处理 控制器: 负责对程序规定的控制信息进行分析,控制并协调输入,输出操作或内存访问 输入设备: 实现计算程序和原始数据的输入 输出设备: 实
阅读全文
摘要:1 信息、知识、智慧 我所说的,都是错的。 庄子说过吾生有崖,知无涯。以有限的生命去学习无尽的知识是很愚蠢的。那么,我们应该学习什么? 语言是人类用于交流的一种工具。语言是主要以呼吸器官发声为基础来传递信息的符号系统,用于表达事物、动作、思想和状态。 语言用来传递的比特,可以分为三个层次,信息、知识
阅读全文
摘要:Java 并发 Java 并发 一、使用线程 实现 Runnable 接口 实现 Callable 接口 继承 Thread 类 实现接口 VS 继承 Thread 二、基础线程机制 Executor Daemon sleep() yield() 三、中断 InterruptedException
阅读全文
摘要:B站:爱学习的饲养员 目标:简单题、中等题会刷,至少有思路 1. 算法的时间复杂度和空间复杂度 1.1 时间复杂度 1)什么是时间复杂度 算法的执行效率 = 算法的执行时间与算法的输入值之间的关系 2)大O表示法 3)常用时间复杂度案例分析 O(1)、O(logN)、O(N)、O(NlogN)、O(
阅读全文
摘要:1 SimpleMemory主题 + 部分定制化 备份下原来基于SimpleMemory主题 + 部分定制化的代码。包含回到top、文章自动生成目录的功能。 1.1 页面定制CSS代码 /*推荐栏固定到右下角*/ /* #div_digg{ position: fixed; bottom: 5px;
阅读全文
摘要:SOLID,GRASP 设计原则,这些原则都是基于面向对象设计总结而来的。GOF23 是基于许多常见的场景总结出一套设计模式。 DRY - Don’t Repeat Yourself A basic strategy for reducing complexity to managable unit
阅读全文
摘要:1. 定目标 去什么样的公司? 1)去互联网公司 一线互联网公司:百度、阿里、腾讯、字节跳动、美团、拼多多、京东、网易、小米、滴滴 按城市划分 北京: 微软 百度 腾讯 阿里 京东 网易 滴滴 新浪 美团 爱奇艺 小米 搜房网 完美世界 360 搜狐 字节跳动 金山 亚马逊 当当网 人人贷 矿视 去
阅读全文
摘要:聊一聊 软件系统中的“热力学第二定律” 热力学第二定律,也叫“熵增定律”。这是德国人克劳修斯提出的理论,最初用于揭示事物总是向无序的方向的发展、以及“孤立系统下热量从高温物体流向低温不可逆”的热力学定律。 “熵”,就是事物的混乱/无序程度,在孤立系统下,熵是不断增加的,当熵达到最大值时,系统会出现严
阅读全文
摘要:1. 问题 1、什么是系统设计,系统设计的核心是什么? 2、如何训练系统设计的思维模式? 3、有什么方法来帮助我们理解复杂的系统? 4、如何进行系统分析? 5、架构设计的本质是什么? 6、如何进行架构设计? 7、如何进行业务领域建模? 8、模型如何推导出架构设计? 9、架构设计需要遵循哪些规范? 2
阅读全文