架构师必要的20个英文缩写!看你晓得几个?
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><img src="https://mmbiz.qpic.cn/mmbiz_jpg/Wc4rFKffLwSaibb78icLRXblXb83324TicQzicghX9AoHUwBhqJNic4HTvUAHjK6kH9hicleynxxWvQ7VPQpibadasWZA/640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1" style="width: 50%; margin-bottom: 20px;"></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">做为</span>一个<span style="color: black;">架构师</span>,<span style="color: black;">倘若</span>在面试的时候,面试官说出了一个英文缩写,这个时候<span style="color: black;">倘若</span>你<span style="color: black;">无</span>听过,是不是很尴尬?<span style="color: black;">况且</span>你<span style="color: black;">亦</span>没办法针对这个问题进行描述<span style="color: black;">回答</span>!<span style="color: black;">因此</span>,多学习<span style="color: black;">有些</span><span style="color: black;">基本</span>的英文缩写,一是面试<span style="color: black;">能够</span>游刃有余,二是<span style="color: black;">能够</span>装逼!下面的20个缩写,你都能讲清楚吗?</p><span style="color: black;">IO</span>C:<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">掌控</span>反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,<span style="color: black;">能够</span>用来减低计算机<span style="color: black;">代码</span>之间的耦合度。其中最<span style="color: black;">平常</span>的方式叫做依赖注入(Dependency Injection,简<span style="color: black;">叫作</span>DI),还有一种方式叫“依赖<span style="color: black;">查询</span>”(Dependency Lookup)。<span style="color: black;">经过</span><span style="color: black;">掌控</span>反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体将其所依赖的对象的引用传递给它。<span style="color: black;">亦</span><span style="color: black;">能够</span>说,依赖被注入到对象中。</p><span style="color: black;">AOP</span>:<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">在<span style="color: black;">软件</span>业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,<span style="color: black;">经过</span>预<span style="color: black;">编译</span>方式和运行期动态代理实现程序功能的统一<span style="color: black;">守护</span>的一种技术。AOP是OOP的延续,是软件<span style="color: black;"><span style="color: black;">研发</span></span>中的一个热点,<span style="color: black;">亦</span>是Spring框架中的一个<span style="color: black;">要紧</span>内容,是<span style="color: black;">函数式编程</span>的一种衍生范型。利用AOP<span style="color: black;">能够</span>对业务<span style="color: black;">规律</span>的各个部分进行隔离,从而使得业务<span style="color: black;">规律</span>各部分之间的耦合度降低,<span style="color: black;">加强</span>程序的可重用性,<span style="color: black;">同期</span><span style="color: black;">加强</span>了<span style="color: black;">研发</span>的效率。</p>CAS:<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">是一种<span style="color: black;">阳光</span><span style="color: black;">锁</span>机制。CAS是英文单词Compare And Swap的缩写,<span style="color: black;">翻译</span>过来<span style="color: black;">便是</span>比较并替换。CAS机制<span style="color: black;">其中</span><span style="color: black;">运用</span>了3个基本操作数:内存<span style="color: black;">位置</span>V,旧的预期值A,要修改的新值B。更新一个变量的时候,<span style="color: black;">仅有</span>当变量的预期值A和内存<span style="color: black;">位置</span>V<span style="color: black;">其中</span>的<span style="color: black;">实质</span>值相<span style="color: black;">同期</span>,才会将内存<span style="color: black;">位置</span>V对应的值修改为B。</p>CAP:<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">CAP原则又<span style="color: black;">叫作</span>CAP定理,指的是在一个<span style="color: black;">分布式系统</span>中,<span style="color: black;">一致性</span>(Consistency)、可用性(Availability)、分区容忍性(Partition tolerance)。CAP 原则指的是,这三个要素最多只能<span style="color: black;">同期</span>实现两点,不可能三者兼顾。</p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">一致性(C):在<span style="color: black;">分布式</span>系统中的所有<span style="color: black;">数据</span><span style="color: black;">备份</span>,在同一时刻<span style="color: black;">是不是</span><span style="color: black;">一样</span>的值。(等同于所有节点<span style="color: black;">拜访</span>同一份最新的数据副本)</p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">可用性(A):在<span style="color: black;">集群</span>中一部分节点故障后,集群整体<span style="color: black;">是不是</span>还能响应客户端的读写请求。(对数据更新具备<span style="color: black;">高可用</span>性)</p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">分区容忍性(P):以<span style="color: black;">实质</span>效果而言,分区相当于对通信的时限<span style="color: black;">需求</span>。系统<span style="color: black;">倘若</span><span style="color: black;">不可</span>在时限内达成数据一致性,就<span style="color: black;">寓意</span>着<span style="color: black;">出现</span>了分区的<span style="color: black;">状况</span>,<span style="color: black;">必要</span>就当前操作在C和A之间做出<span style="color: black;">选取</span>。</p>AICD:<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">事务属性AICD:</p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">原子性(<span style="color: black;">Atom</span>icity):整体不可分割性,要么全做要不全不做。</p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">一致性(Consistency) :事务执行前、后<span style="color: black;">数据库</span>状态均一致。</p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">隔离性(Isolation) :在事务未提交前,它操作的数据,对其它用户不可见(从其他<span style="color: black;">session</span>读取的数据还是commit之前的数据状态)。</p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">持久性(Durability):一旦事务成功,将进行永久的变更,记录与redo日志。</p>RC:<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">数据库隔离级别,Read Committed(读取提交内容)。</p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">(1) 这是大<span style="color: black;">都数</span>数据库系统的默认隔离级别(但不是MySQL默认的)</p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">(2)它满足了隔离的简单定义:一个事务只能看见<span style="color: black;">已然</span>提交事务所做的改变</p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">(3)这种隔离级别<span style="color: black;">显现</span>的问题是——不可重复读(Nonrepea<span style="color: black;">tab</span>le Read):不可重复读<span style="color: black;">寓意</span>着<span style="color: black;">咱们</span>在同一个事务中执行完全相同的select语句时可能看到不<span style="color: black;">同样</span>的结果。</p>RR:<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">数据库隔离级别,Repeatable Read(可重读)。</p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">(1)这是MySQL的默认事务隔离级别。</p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">(2)它<span style="color: black;">保证</span>同一事务的多个<span style="color: black;">实例</span>在<span style="color: black;">并发</span>读取数据时,会看到<span style="color: black;">一样</span>的数据行。</p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">(3)此级别可能<span style="color: black;">显现</span>的问题——幻读(Phantom Read):当用户读取某一范围的数据行时,另一个事务又在该范围内<span style="color: black;">插进</span>了新行,当用户再读取该范围的数据行时,会<span style="color: black;">发掘</span>有新的“幻影” 行。</p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">(4)InnoDB和Falcon<span style="color: black;">存储引擎</span><span style="color: black;">经过</span>多版本并发<span style="color: black;">掌控</span>(MVCC,Multiversion Concurrency Control)机制<span style="color: black;">处理</span>了该问题。</p>Binlog:<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">是The Binary Log的简<span style="color: black;">叫作</span>,意思<span style="color: black;">便是</span>二进制的日志文件。binlog是一个二进制格式的文件,用于记录用户对数据库更新的SQL语句信息,例如更改数据库表和更改内容的SQL语句都会记录到binlog里,<span style="color: black;">然则</span>对库表等内容的<span style="color: black;">查找</span>不会记录。默认<span style="color: black;">状况</span>下,binlog日志是二进制格式的,<span style="color: black;">不可</span><span style="color: black;">运用</span>查看文本<span style="color: black;">工具</span>的命令(<span style="color: black;">例如</span>,<span style="color: black;">cat</span>,vi等)查看,而<span style="color: black;">运用</span><span style="color: black;">mysql</span>binlog<span style="color: black;">解析</span>查看。当有数据写入到数据库时,还会<span style="color: black;">同期</span>把更新的SQL语句写入到对应的binlog文件里,这个文件<span style="color: black;">便是</span>上文说的binlog文件。<span style="color: black;">运用</span>my<span style="color: black;">sql</span>dump备份时,只是对一段<span style="color: black;">时间</span>的数据进行全备,<span style="color: black;">然则</span><span style="color: black;">倘若</span>备份后<span style="color: black;">忽然</span><span style="color: black;">发掘</span>数据库<span style="color: black;">服务器</span>故障,这个时候就要用到binlog的日志了。<span style="color: black;">重点</span><span style="color: black;">功效</span>是用于数据库的主从复制及数据的增量恢复。</p>MVCC:<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">Multi-Version Concurrency Control 多版本并发<span style="color: black;">掌控</span>,MVCC 是一种并发<span style="color: black;">掌控</span>的<span style="color: black;">办法</span>,<span style="color: black;">通常</span>在数据库<span style="color: black;">管理</span>系统中,实现对数据库的并发<span style="color: black;">拜访</span>;在编程语言中实现事务内存。MVCC是<span style="color: black;">经过</span><span style="color: black;">保留</span>数据在某个时间点的快照来实现的. <span style="color: black;">区别</span>存储引擎的MVCC. <span style="color: black;">区别</span>存储引擎的MVCC实现是<span style="color: black;">区别</span>的,典型的有<span style="color: black;">阳光</span>并发<span style="color: black;">掌控</span>和悲观并发<span style="color: black;">掌控</span>。</p>RESP:<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">Redis Serialization Protocol,RESP 是 Redis 序列化<span style="color: black;">协议</span>的简写。它是一种直观的文本协议,<span style="color: black;">优良</span>在于实现<span style="color: black;">反常</span>简 单,解析性能极好。</p>COW:<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">写入时复制(英语:Copy-on-write,简<span style="color: black;">叫作</span>COW)是一种计算机程序设计<span style="color: black;">行业</span>的优化策略。其核心思想是,<span style="color: black;">倘若</span>有多个调用者(callers)<span style="color: black;">同期</span>请求相同资源(如内存或磁盘上的数据存储),<span style="color: black;">她们</span>会<span style="color: black;">一起</span>获取相同的指针指向相同的资源,直到某个调用者试图修改资源的内容时,系统才会真正复制一份专用副本(private copy)给该调用者,而其他调用者所见到的最初的资源仍然保持不变。这过程对其他的调用者都是透明的(transparently)。优点是<span style="color: black;">倘若</span>调用者<span style="color: black;">无</span>修改该资源,就不会有副本(private copy)被<span style="color: black;">创立</span>,<span style="color: black;">因此呢</span>多个调用者只是读取操作时<span style="color: black;">能够</span>共享同一份资源。</p>A<span style="color: black;">MQ</span>P:<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">即Advanced Message Queuing Protocol,一个<span style="color: black;">供给</span>统一<span style="color: black;">信息</span>服务的应用层标准高级<span style="color: black;"><span style="color: black;">信息</span>队列</span>协议,是应用层协议的一个开放标准,为面向<span style="color: black;">信息</span>的中间件设计。基于此协议的客户端与<span style="color: black;">信息</span>中间件可传递<span style="color: black;">信息</span>,并不受客户端/中间件<span style="color: black;">区别</span><span style="color: black;"><span style="color: black;">制品</span></span>,<span style="color: black;">区别</span>的<span style="color: black;">研发</span>语言等<span style="color: black;">要求</span>的限制。Erlang中的实现有 RabbitMQ等。</p>SDS:<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">简单动态字符串(simple dynamic string,SDS)的抽象类型。字符串是Redis中最为<span style="color: black;">平常</span>的数据存储类型,其底层实现是简单动态字符串sds(simple dynamic string),是<span style="color: black;">能够</span>修改的字符串。它类似于Java中的<span style="color: black;">ArrayList</span>,它采用预分配冗余<span style="color: black;">空间</span>的方式来减少内存的频繁分配。C语言字符串<span style="color: black;">运用</span>长度为n+1的字符数组来<span style="color: black;">暗示</span>长度为n的字符串,并且字符数组的最后一个元素总是空字符’/0’,<span style="color: black;">由于</span>这种字符串<span style="color: black;">暗示</span>方式<span style="color: black;">不可</span>满足Redis对字符串在<span style="color: black;">安全</span>性、效率以及功能方面的<span style="color: black;">需求</span>,<span style="color: black;">因此</span>Redis自己构建了SDS,用于满足其<span style="color: black;">需求</span>。在Redis里,C语言字符串只用于<span style="color: black;">有些</span><span style="color: black;">没</span>须对字符串值进行修改的<span style="color: black;">地区</span>,<span style="color: black;">例如</span>:日志。在Redis中,<span style="color: black;">包括</span>字符串值的键值对都是<span style="color: black;">运用</span>SDS实现的,除此之外,SDS还被用于AOF缓冲区、客户端状态的输入缓冲区。</p>DDD:<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">DDD(Domain-Driven Design <span style="color: black;">行业</span>驱动设计)<span style="color: black;">是由于</span>Eric Evans最先提出,目的是对软件所<span style="color: black;">触及</span>到的<span style="color: black;">行业</span>进行建模,以应对系统规模过大时<span style="color: black;">导致</span>的软件<span style="color: black;">繁杂</span>性的问题。<span style="color: black;">全部</span>过程大概是<span style="color: black;">这般</span>的,<span style="color: black;">研发</span>团队和<span style="color: black;">行业</span>专家<span style="color: black;">一块</span><span style="color: black;">经过</span> 通用语言(Ubiquitous Language)去理解和消化<span style="color: black;">行业</span>知识,从<span style="color: black;">行业</span>知识中提取和划分为一个一个的子<span style="color: black;">行业</span>(核心子域,通用子域,支撑子域),并在子<span style="color: black;">行业</span>上<span style="color: black;">创立</span><span style="color: black;">模型</span>,再重复以上<span style="color: black;">过程</span>,<span style="color: black;">这般</span>周而复始,构建出一套符合当前领域的模型。</p>RDB:<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">Redis支持RDB和AOF两种持久化机制,持久化功能有效地避免因<span style="color: black;">进程</span>退出<span style="color: black;">导致</span>的数据丢失问题,当下次重启时利用之前持久化文件<span style="color: black;">就可</span>实现数据恢复。RDB (Redis DataBase)。RDB 是 Redis 默认的持久化<span style="color: black;">方法</span>。在指定的时间间隔内,执行指定次数的写操作,则会将内存中的数据写入到磁盘中。即在指定<span style="color: black;">目录</span>下生成一个dump.r<span style="color: black;">db</span>文件。Redis 重启会<span style="color: black;">经过</span>加载dump.rdb文件恢复数据。RDB持久化是把当前<span style="color: black;">进程数</span>据生成快照<span style="color: black;">保留</span>到硬盘的过程,触发RDB持久化过程分为手动触发和自动触发。</p>AOF:<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">Redis支持RDB和AOF两种持久化机制,持久化功能有效地避免因进程退出造成的数据丢失问题,当下次重启时利用之前持久化文件<span style="color: black;">就可</span>实现数据恢复。AOF(append only file)持久化:以独立日志的方式记录每次写命令,重启时再重新执行AOF文件中命令达到恢复数据的目的。AOF的<span style="color: black;">重点</span><span style="color: black;">功效</span>是<span style="color: black;">处理</span>了数据持久化的实时性,<span style="color: black;">日前</span><span style="color: black;">已然</span>是Redis持久化的主流方式。</p>ZAB:<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">ZAB 协议全<span style="color: black;">叫作</span>:Zookeeper Atomic Broadcast(Zookeeper 原子广播协议)。ZAB 协议的<span style="color: black;">信息</span>广播过程<span style="color: black;">运用</span>的是一个原子广播协议,类似一个 二<span style="color: black;">周期</span>提交过程。<span style="color: black;">针对</span>客户端发送的写请求,<span style="color: black;">所有</span>由 Leader 接收,Leader 将请求封装成一个事务 Proposal,将其发送给所有 Follwer ,<span style="color: black;">而后</span>,<span style="color: black;">按照</span>所有 Follwer 的反馈,<span style="color: black;">倘若</span>超过半数成功响应,则执行 commit 操作(先提交自己,再发送 commit 给所有 Follwer)。</p>ACK:<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">ACK<span style="color: black;">信息</span>,Acknowledgement 。是在计算机网上中通信协议的一部分,是设备或是进程发出的<span style="color: black;">信息</span>,回复已收到数据。例如在传输<span style="color: black;">掌控</span>协议(<span style="color: black;">TCP</span>,Transmission Control Protocol)中就有用ACK来<span style="color: black;">通知</span>创建链接时有收到SYN数据包、<span style="color: black;">运用</span>链接时有收到数据包,或是在中止链接有收到FIN数据包。</p><span style="color: black;">BIO</span>:<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">Blocking Input Output,<span style="color: black;">同步</span>阻塞I/O模式,数据的读取写入<span style="color: black;">必要</span>阻塞在一个<span style="color: black;">线程</span>内等待其完成。服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就<span style="color: black;">必须</span><span style="color: black;">起步</span>一个线程进行处理,<span style="color: black;">倘若</span>这个连接不做任何事情会<span style="color: black;">导致</span>不必要的线程开销,当然<span style="color: black;">能够</span><span style="color: black;">经过</span><span style="color: black;">线程池</span>机制改善。</p><span style="color: black;">NIO</span>:<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">NIO<span style="color: black;">指的是</span>将IO模式设为“Non-Blocking”模式。NIO是一种同步非阻塞的I/O模型,在Java 1.4 中引入了NIO框架,对应<span style="color: black;">java</span>.nio 包,<span style="color: black;">供给</span>了 Channel , <span style="color: black;">Select</span>or,Buffer等抽象。NIO中的N<span style="color: black;">能够</span>理解为Non-blocking,不单纯是New。它支持面向缓冲的,基于通道的I/O操作<span style="color: black;">办法</span>。</p>
我深受你的启发,你的话语是我前进的动力。 一看到楼主的气势,我就觉得楼主同在社区里灌水。 我们有着相似的经历,你的感受我深有体会。
页:
[1]