架构师的英⽂缩写_架构师必备的20个英⽂缩写!看你知道⼏
个?
作为⼀个架构师,如果在⾯试的时候,⾯试官说出了⼀个英⽂缩写,这个时候如果你没有听过,是不是很尴尬?⽽且你也没办法针对这个问题进⾏描述回答!所以,多学习⼀些基础的英⽂缩写,⼀是⾯试可以游刃有余,⼆是可以!下⾯的20个缩写,你都能讲清楚吗?
IOC:
控制反转(Inversion of Control,缩写为IoC),是⾯向对象编程中的⼀种设计原则,可以⽤来减低计算机代码之间的耦合度。其中最常见的⽅式叫做依赖注⼊(Dependency Injection,简称DI),还有⼀种⽅式叫“依赖查”(Dependency Lookup)。通过控制反转,对象在被创建的时候,由⼀个调控系统内所有对象的外界实体将其所依赖的对象的引⽤传递给它。也可以说,依赖被注⼊到对象中。
AOP:
计算机架构师证书在软件业,AOP为Aspect Oriented Programming的缩写,意为:⾯向切⾯编程,通过预编译⽅式和运⾏期动态代理实现程序功能的统⼀维护的⼀种技术。AOP是OOP的延续,是软件开发中的⼀个热点,也是Spring框架中的⼀个重要内容,是函数式编程的⼀种衍⽣范型。利⽤AOP可以对业务逻辑的各个部分进⾏隔离,从⽽使得业务逻辑各部分之间的耦合度降低,提⾼程序的可重⽤性,同时提⾼了开发的效率。
CAS:
是⼀种乐观锁机制。CAS是英⽂单词Compare And Swap的缩写,翻译过来就是⽐较并替换。CAS机制当中使⽤了3个基本操作数:内存地址V,旧的预期值A,要修改的新值B。更新⼀个变量的时候,只有当变量的预期值A和内存地址V当中的实际值相同时,才会将内存地址V对应的值修改为B。
CAP:
CAP原则⼜称CAP定理,指的是在⼀个分布式系统中,⼀致性(Consistency)、可⽤性(Availability)、分区容忍性(Partition tolerance)。CAP 原则指的是,这三个要素最多只能同时实现两点,不可能三者兼顾。
⼀致性(C):在分布式系统中的所有数据备份,在同⼀时刻是否同样的值。(等同于所有节点访问同⼀份最新的数据副本)
可⽤性(A):在集中⼀部分节点故障后,集整体是否还能响应客户端的读写请求。(对数据更新具备⾼可⽤性)
分区容忍性(P):以实际效果⽽⾔,分区相当于对通信的时限要求。系统如果不能在时限内达成数据⼀致性,就意味着发⽣了分区的情况,必须就当前操作在C和A之间做出选择。
AICD:
事务属性AICD:
原⼦性(Atomicity):整体不可分割性,要么全做要不全不做。
⼀致性(Consistency) :事务执⾏前、后数据库状态均⼀致。
隔离性(Isolation) :在事务未提交前,它操作的数据,对其它⽤户不可见(从其他session读取的数据还是commit之前的数据状态)。
持久性(Durability):⼀旦事务成功,将进⾏永久的变更,记录与redo⽇志。
RC:
数据库隔离级别,Read Committed(读取提交内容)。
(1) 这是⼤多数数据库系统的默认隔离级别(但不是MySQL默认的)
(2)它满⾜了隔离的简单定义:⼀个事务只能看见已经提交事务所做的改变
(3)这种隔离级别出现的问题是——不可重复读(Nonrepeatable Read):不可重复读意味着我们在同⼀个事务中执⾏完全相同的select语句时可能看到不⼀样的结果。
RR:
数据库隔离级别,Repeatable Read(可重读)。
(1)这是MySQL的默认事务隔离级别。
(2)它确保同⼀事务的多个实例在并发读取数据时,会看到同样的数据⾏。
(3)此级别可能出现的问题——幻读(Phantom Read):当⽤户读取某⼀范围的数据⾏时,另⼀个事务⼜在该范围内插⼊了新⾏,当⽤户再读取该范围的数据⾏时,会发现有新的“幻影” ⾏。
(4)InnoDB和Falcon存储引擎通过多版本并发控制(MVCC,Multiversion Concurrency Control)机制解决了该问题。
Binlog:
是The Binary Log的简称,意思就是⼆进制的⽇志⽂件。binlog是⼀个⼆进制格式的⽂件,⽤于记录⽤户对数据库更新的SQL语句信息,例如更改数据库表和更改内容的SQL语句都会记录到binlog⾥,但是对库表等内容的查询不会记录。默认情况下,binlog⽇志是⼆进制格式的,不能使⽤查看⽂本⼯具的命令(⽐如,cat,vi等)查看,⽽使⽤mysqlbinlog解析查看。当有数据写⼊到数据库时,还会同时把更新的SQL语句写⼊到对应的binlog⽂件⾥,这个⽂件就是上⽂说的binlog⽂件。使⽤mysqldump备份时,只是对⼀段时间的数据进⾏全备,但是如果备份后突然发现数据库服务器故障,这个时候就要⽤到binlog的⽇志了。主要作⽤是⽤于数据库的主从复制及数据的增量恢复。
MVCC:
Multi-Version Concurrency Control 多版本并发控制,MVCC 是⼀种并发控制的⽅法,⼀般在数据库管理系统中,实现对数据库的并发访问;在编程语⾔中实现事务内存。MVCC是通过保存数据在某个时间点的快照来实现的. 不同存储引擎的MVCC. 不同存储引擎的MVCC 实现是不同的,典型的有乐观并发控制和悲观并发控制。
RESP:
Redis Serialization Protocol,RESP 是 Redis 序列化协议的简写。它是⼀种直观的⽂本协议,优势在于实现异常简 单,解析性能极好。
COW:
写⼊时复制(英语:Copy-on-write,简称COW)是⼀种计算机程序设计领域的优化策略。其核⼼思想是,如果有多个调⽤者(callers)同时请求相同资源(如内存或磁盘上的数据存储),他们会共同获取相同的指针指向相同的资源,直到某个调⽤者试图修改资源的内容时,系统才会真正复制⼀份专⽤副本(private copy)给该调⽤者,⽽其他调⽤者所见到的最初的资源仍然保持不变。这过程对其他的调⽤者都是透明的(transparently)。 优点是如果调⽤者没有修改该资源,就不会有副本(private copy)被建⽴,因此多个调⽤者只是读取操作时可以共享同⼀份资源。
AMQP:
即Advanced Message Queuing Protocol,⼀个提供统⼀消息服务的应⽤层标准⾼级消息队列协议,是应⽤层协议的⼀个开放标准,为⾯向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同的开发语⾔等条件的限制。Erlang 中的实现有 RabbitMQ等。
SDS:
简单动态字符串(simple dynamic string,SDS)的抽象类型。字符串是Redis中最为常见的数据存储类型,其底层实现是简单动态字符串sds(simple dynamic string),是可以修改的字符串。它类似于Java中的ArrayList,它采⽤预分配冗余空间的⽅式来减少内存的频繁分配。C语⾔字符串使⽤长度为n+1的字符数组来表⽰长度为n的字符串,并且字符数组的最后⼀个元素总是空字符'0',因为这种字符串表⽰⽅式不能满⾜Redis对字符串在安全性、效率以及功能⽅⾯的要求,所以Redis⾃⼰构建了SDS,⽤于满⾜其需求。在Redis⾥,C语⾔字符串只⽤于⼀些⽆须对字符串值进⾏修改的地⽅,⽐如:⽇志。在Redis中,包含字符串值的键值对都是使⽤SDS实现的,除此之外,SDS还被⽤于AOF缓冲区、客户端状态的输⼊缓冲区。
DDD:
DDD(Domain-Driven Design 领域驱动设计)是由Eric Evans最先提出,⽬的是对软件所涉及到的领域
进⾏建模,以应对系统规模过⼤时引起的软件复杂性的问题。整个过程⼤概是这样的,开发团队和领域专家⼀起通过 通⽤语⾔(Ubiquitous Language)去理解和消化领域知识,从领域知识中提取和划分为⼀个⼀个的⼦领域(核⼼⼦域,通⽤⼦域,⽀撑⼦域),并在⼦领域上建⽴模型,再重复以上步骤,这样周⽽复始,构建出⼀套符合当前领域的模型。
RDB:
Redis⽀持RDB和AOF两种持久化机制,持久化功能有效地避免因进程退出造成的数据丢失问题,当下次重启时利⽤之前持久化⽂件即可实现数据恢复。RDB (Redis DataBase)。RDB 是 Redis 默认的持久化⽅案。在指定的时间间隔内,执⾏指定次数的写操作,则会将内存中的数据写⼊到磁盘中。即在指定⽬录下⽣成⼀个dump.rdb⽂件。Redis 重启会通过加载dump.rdb⽂件恢复数据。RDB持久化是把当前进程数据⽣成快照保存到硬盘的过程,触发RDB持久化过程分为⼿动触发和⾃动触发。
AOF:
Redis⽀持RDB和AOF两种持久化机制,持久化功能有效地避免因进程退出造成的数据丢失问题,当下次重启时利⽤之前持久化⽂件即可实现数据恢复。AOF(append only file)持久化:以独⽴⽇志的⽅式记录每次写命令,重启时再重新执⾏AOF⽂件中命令达到恢复数据的⽬的。AOF的主要作⽤是解决了数据持久化的实时性,⽬前已经是Redis持久化的主流⽅式。
ZAB:
ZAB 协议全称:Zookeeper Atomic Broadcast(Zookeeper 原⼦⼴播协议)。ZAB 协议的消息⼴播过程使⽤的是⼀个原⼦⼴播协议,类似⼀个 ⼆阶段提交过程。对于客户端发送的写请求,全部由 Leader 接收,Leader 将请求封装成⼀个事务 Proposal,将其发送给所有Follwer ,然后,根据所有 Follwer 的反馈,如果超过半数成功响应,则执⾏ commit 操作(先提交⾃⼰,再发送 commit 给所有Follwer)。
ACK:
ACK消息,Acknowledgement 。是在计算机⽹上中通信协议的⼀部分,是设备或是进程发出的消息,回复已收到数据。例如在传输控制协议(TCP,Transmission Control Protocol)中就有⽤ACK来告知创建链接时有收到SYN数据包、使⽤链接时有收到数据包,或是在中⽌链接有收到FIN数据包。
BIO:
Blocking Input Output,同步阻塞I/O模式,数据的读取写⼊必须阻塞在⼀个线程内等待其完成。服务器实现模式为⼀个连接⼀个线程,即客户端有连接请求时服务器端就需要启动⼀个线程进⾏处理,如果这个连接不做任何事情会造成不必要的线程开销,当然可以通过线程池机制改善。
NIO:
NIO是指将IO模式设为“Non-Blocking”模式。NIO是⼀种同步⾮阻塞的I/O模型,在Java 1.4 中引⼊了NIO框架,对应 java.nio 包,提供了 Channel , Selector,Buffer等抽象。NIO中的N可以理解为Non-blocking,不单纯是New。它⽀持⾯向缓冲的,基于通道的I/O操作⽅法。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论