图解
zl1zl2zl3
这个作者很懒,什么都没留下…
展开
-
一口气搞懂「文件系统」,就靠这 25 张图了
前言不多 BB,直接上「硬菜」。正文文件系统的基本组成文件系统是操作系统中负责管理持久数据的子系统,说简单点,就是负责把用户的文件存到磁盘硬件中,因为即使计算机断电了,磁盘里的数据并不会丢失,所以可以持久化的保存文件。文件系统的基本数据单位是文件,它的目的是对磁盘上的文件进行组织管理,那组织的方式不同,就会形成不同的文件系统。Linux 最经典的一句话是:「一切皆文件」,不仅普通的文件和目录,就连块设备、管道、socket 等,也都是统一交给文件系统管理的。Linux 文件系转载 2020-08-20 17:14:43 · 179 阅读 · 0 评论 -
我画了35张图,就是为了让你深入理解 AQS
前言谈到并发,我们不得不说AQS(AbstractQueuedSynchronizer),所谓的AQS即是抽象的队列式的同步器,内部定义了很多锁相关的方法,我们熟知的ReentrantLock、ReentrantReadWriteLock、CountDownLatch、Semaphore等都是基于AQS来实现的。我们先看下AQS相关的UML图:1AQS实现原理AQS中 维护了一个volatile int state(代表共享资源)和一个FIFO线程等待队列(多线程...转载 2020-05-17 11:16:53 · 575 阅读 · 0 评论 -
图解 MySQL 索引:B-树、B+树,终于搞清楚了!
看了很多关于索引的博客,讲的大同小异。但是始终没有让我明白关于索引的一些概念,如B-Tree索引,Hash索引,唯一索引….或许有很多人和我一样,没搞清楚概念就开始研究B-Tree,B+Tree等结构,导致在面试的时候答非所问!索引是什么?索引是帮助MySQL高效获取数据的数据结构。索引能干什么?提高数据查询的效率。索引:排好序的快速查找数据结构!索引会影响where后面的查找,和order by 后面的排序。一、索引的分类1. 从存储结构上来划分:BTree索引(B-T.转载 2020-05-17 10:43:42 · 383 阅读 · 0 评论 -
大白话 + 13 张图解 Kafka
前言应大部分的小伙伴的要求,在Yarn之前先来一个kafka的小插曲,轻松愉快。一、Kafka基础消息系统的作用应该大部份小伙伴都清楚,用机油装箱举个例子所以消息系统就是如上图我们所说的仓库,能在中间过程作为缓存,并且实现解耦合的作用。引入一个场景,我们知道中国移动,中国联通,中国电信的日志处理,是交给外包去做大数据分析的,假设现在它们的日志都交给了你做的系统去做用户画...转载 2020-01-19 10:53:40 · 433 阅读 · 0 评论 -
终于有人把 Nginx 说清楚了,图文详解!
想必大家一定听说过 Nginx,若没听说过它,那么一定听过它的"同行"Apache 吧!Nginx 的产生Nginx 同 Apache 一样都是一种 Web 服务器。基于 REST 架构风格,以统一资源描述符(Uniform Resources Identifier)URI 或者统一资源定位符(Uniform Resources Locator)URL 作为沟通依据,通过 HTTP 协议提...转载 2019-11-29 16:07:28 · 311 阅读 · 0 评论 -
图解高内聚与低耦合,傻瓜都能看懂!
模块模块就是从逻辑上将系统分解为更细微的部分, 分而治之, 复杂问题拆解为若干简单问题, 逐个解决.耦合主要描述模块之间的关系, 内聚主要描述模块内部. 模块的粒度可大可小,可以是函数, 类, 功能块等等.耦合模块之间存在依赖, 导致改动可能会互相影响, 关系越紧密, 耦合越强, 模块独立性越差.比如模块A直接操作了模块B中数据, 则视为强耦合, 若A只是通过数据与模块B交互...转载 2019-11-04 09:26:45 · 437 阅读 · 0 评论 -
讲一点分布式的基础知识,图解!
故事还是得从单机开始,没有单机哪儿来的分布式?在IT世界,二进制的数据是我们最宝贵的资产,必须要把它保存在断电也不怕的硬盘上。但是只用一块硬盘很危险,万一坏了数据就彻底没了。于是人们就想了个办法,把两块硬盘组织了起来,互为备份。这种方式有个专门的术语,叫RAID ,就是冗余磁盘阵列的意思。上图中两个磁盘互为备份,是RAID 1 , 数据会被同时写到两块硬盘中,安全性大大提高...转载 2019-07-05 08:54:01 · 356 阅读 · 0 评论 -
图文并茂的带你彻底理解悲观锁与乐观锁
这是一篇介绍悲观锁和乐观锁的入门文章。旨在让那些不了解悲观锁和乐观锁的小白们弄清楚什么是悲观锁,什么是乐观锁。不同于其他文章,本文会配上相应的图解让大家更容易理解。通过该文,你会学习到如下的知识。1锁(Lock)在介绍悲观锁和乐观锁之前,让我们看一下什么是锁。锁,在我们生活中随处可见,我们的门上有锁,我们存钱的保险柜上有锁,是用来保护我们财产安全的。程序中也有锁,当多个线程修...转载 2019-05-06 11:25:39 · 387 阅读 · 0 评论 -
图解分布式架构的演进过程
一、什么是分布式架构分布式系统(distributed system) 是建立在网络之上的软件系统。内聚性:是指每一个数据库分布节点高度自治,有本地的数据库管理系统。透明性:是指每一个数据库分布节点对用户的应用来说都是透明的,看不出是本地还是远程。在分布式数据系统中,用户感觉不数据是分布的,即用户不须知道关系是否分割,有无副本,数据存在于那个站点以及事物在哪个站点上执行。简单来...转载 2019-05-03 20:28:16 · 534 阅读 · 0 评论 -
Linux通俗图解
Linux 是一个生态,里面丰富多彩。很多大牛都是基于 Linux 来开发各种各样的软件。可以这么说,只要你能想象到的技术领域,几乎都能在里面找到 Linux 的身影。操作系统是干什么的呢?我们都知道,一台物理机上有很多硬件,最重要的就是 CPU、内存、硬盘、网络。同时,一台物理机上也要跑很多程序,这些资源应该给谁用呢?当然是大家轮着用,谁也别独占,谁也别饿着。为了完成资源分配这件事,操作系统...转载 2019-03-28 09:06:49 · 1379 阅读 · 0 评论 -
图解:从单个服务器扩展到百万用户的系统
作者 | Wolfram Hempel翻译 | Join你开发了一个网站(例如网上商店、社交网站或者其他任何东西),之后你把它发布到了网上,网站运行良好,每天有几百的访问量,能快速地相响应用户的请求。但是有一天,不知道什么原因,你的网站出名了!每分每秒都有成千上万的用户蜂拥而至,你的网站变得越来越慢……对你来讲,这是个好消息,但是对你的Web应用来说这是个坏消息。因...转载 2019-04-04 19:35:43 · 790 阅读 · 0 评论 -
8 张图,看你是否理解 Java
一图胜千言,下面图解均来自Program Creek 网站的Java教程,目前它们拥有最多的票选。如果图解没有阐明问题,那么你可以借助它的标题来一窥究竟。1、字符串不变性堆中常量池决定(毕竟final类型,JVM还特别优化了String)2、equals()方法、hashCode()方法的区别HashCode被设计用来提高性能。equals()方法与hashCode()方法...转载 2019-03-21 09:27:34 · 223 阅读 · 0 评论 -
面试|图解kafka的高可用机制
对于一个复杂的分布式系统,如果没有丰富的经验和牛逼的架构能力,很难把系统做得简单易维护,我们都知道,一个软件的生命周期中,后期维护占了70%,所以系统的可维护性是极其重要的, kafka 能成为大数据领域的事实标准,很大原因是因为运维起来很方便简单,今天我们来看下 kafka 是怎么来简化运维操作的。kafka 使用多副本来保证消息不丢失,多副本就涉及到kafka的复制机制,在一个超大规模...转载 2019-03-12 09:57:34 · 780 阅读 · 0 评论 -
漫画:通俗易懂的进程与线程解释
进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。最近,我读到一篇材料,发现有一个很好的类比,可以把它们解释地清晰易懂。1.计算机的核心是CPU,它承担了所有的计算任务。它就像一座工厂,时刻在运行。 2.假定工厂的电力有限,一次只能供给一个车间使用。也就是说,一个车间开工的时候,其他车间都必须停工。背后的含义就是,单...转载 2019-01-14 15:39:29 · 641 阅读 · 0 评论 -
图解 | 当我们在读写 Socket 时,我们究竟在读写什么?
套接字socket是大多数程序员都非常熟悉的概念,它是计算机网络编程的基础,TCP/UDP收发消息都靠它。我们熟悉的web服务器底层依赖它,我们用到的MySQL关系数据库、Redis内存数据库底层依赖它。我们用微信和别人聊天也依赖它,我们玩网络游戏时依赖它,读者们能够阅读这篇文章也是因为有它在背后默默地支持着网络通信。简单过程当客户端和服务器使用TCP协议进行通信时,客户端封装一个请求对象...转载 2018-12-07 19:06:25 · 295 阅读 · 0 评论 -
图解 Elasticsearch 原理
摘要先自上而下,后自底向上的介绍ElasticSearch的底层工作原理,试图回答以下问题: 为什么我的搜索 *foo-bar* 无法匹配 *foo-bar* ? 为什么增加更多的文件会压缩索引(Index)? 为什么ElasticSearch占用很多内存? 版本elasticsearch版本: elasticsearch-2.2.0 内容图...转载 2018-12-05 09:40:44 · 4842 阅读 · 1 评论 -
买什么数据结构与算法,这里有:动态图解十大经典排序算法(含JAVA代码实现)
上篇的动图数据结构反响不错,这次来个动图排序算法大全。数据结构与算法,齐了。几张动态图捋清Java常用数据结构及其设计原理本文将采取动态图+文字描述+正确的java代码实现来讲解以下十大排序算法:冒泡排序 选择排序 插入排序 希尔排序 归并排序 快速排序 堆排序 计数排序 桶排序 基数排序 0、排序算法说明0.1 排序的定义对一序列对象根据某个关...转载 2018-11-25 10:51:07 · 484 阅读 · 0 评论 -
几张动态图捋清Java常用数据结构及其设计原理
最近在整理数据结构方面的知识, 系统化看了下Java中常用数据结构, 突发奇想用动画来绘制数据流转过程.主要基于jdk8, 可能会有些特性与jdk7之前不相同, 例如LinkedList LinkedHashMap中的双向链表不再是回环的.HashMap中的单链表是尾插, 而不是头插入等等, 后文不再赘叙这些差异, 本文目录结构如下:LinkedList经典的双链表结构, ...转载 2018-11-25 00:17:41 · 1342 阅读 · 1 评论 -
【看图识算法】这是你见过最简单的 “算法说明书”
【新智元导读】像阅读宜家的安装说明书一样学习算法,是怎样的体验?不伦瑞克工业大学的三名研究者制作了这份“算法说明书”,简明传神地解释了一些基本算法,一起来看图说话。Quicksort算法快速排序(Quicksort)是基于“分治法”的高效排序算法。随机选择划分元素是避免最坏情况runtime好策略。Bogo排序Bogo排序(Bogo sort)也称为愚蠢排序,是一种简单...转载 2018-03-20 16:27:59 · 1108 阅读 · 0 评论