做为一个架构师,倘若在面试的时候,面试官说出了一个英文缩写,这个时候倘若你无听过,是不是很尴尬?况且你亦没办法针对这个问题进行描述回答!因此,多学习有些基本的英文缩写,一是面试能够游刃有余,二是能够装逼!下面的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操作办法。
|