[TOC]
扁平化
扁平化概念的核心意义是:去除冗余、厚重和繁杂的装饰效果。
东西流量
场景是数据中心网络,东西向流量是数据中心内部机器之间流量,南北向是数据中心内部机器和数据中心外(互联网)的流量。
临界资源
多道程序系统中存在许多进程,它们共享各种资源,然而有很多资源一次只能供一个进程使用。一次仅允许一个进程使用的资源称为临界资源。许多物理设备都属于临界资源,如输入机、打印机、磁带机等。
上游服务器
上游,有发源的意思,故上游服务器指的产生内容的服务器。
如nginx+tomcat tomcat是上游服务器。在nginx中有配置upstream,就是配置上游服务器集群,如应用服务器tomcat
语义化版本
版本格式:主版本号.次版本号.修订号,版本号递增规则如下:
- 主版本号:当你做了不兼容的 API 修改,
- 次版本号:当你做了向下兼容的功能性新增,
- 修订号:当你做了向下兼容的问题修正。
先行版本号及版本编译元数据可以加到“主版本号.次版本号.修订号”的后面,作为延伸。
https://semver.org/lang/zh-CN/
原语
操作系统用语范畴。
是由若干条指令组成的,用于完成一定功能的一个过程。
primitive or atomic action 是由若干个机器指令构成的完成某种特定功能的一段程序,具有不可分割性.
即原语的执行必须是连续的,在执行过程中不允许被中断
脏数据
脏数据在临时更新(脏读)中产生。事务A更新了某个数据项X,但是由于某种原因,事务A出现了问题,于是要把A回滚。但是在回滚之前,另一个事务B读取了数据项X的值(A更新后),A回滚了事务,数据项恢复了原值。事务B读取的就是数据项X的就是一个“临时”的值,就是脏数据。
CAP原则
CAP原则是NOSQL数据库的基石。Consistency(一致性)。 Availability(可用性)。Partition tolerance(分区容错性)
C:Consistency
即一致性,访问所有的节点得到的数据应该是一样的。注意,这里的一致性指的是强一致性,也就是数据更新完,访问任何节点看到的数据完全一致,要和弱一致性,最终一致性区分开来。
A:Availability
即可用性,所有的节点都保持高可用性。注意,这里的高可用还包括不能出现延迟,比如如果节点B由于等待数据同步而阻塞请求,那么节点B就不满足高可用性。
也就是说,任何没有发生故障的服务必须在有限的时间内返回合理的结果集。
P:Partiton tolerance
即分区容忍性,这里的分区是指网络意义上的分区。由于网络是不可靠的,所有节点之间很可能出现无法通讯的情况,在节点不能通信时,要保证系统可以继续正常服务。
CAP原理说,一个数据分布式系统不可能同时满足C和A和P这3个条件。所以系统架构师在设计系统时,不要将精力浪费在如何设计能满足三者的完美分布式系统,而是应该进行取舍。由于网络的不可靠性质,大多数开源的分布式系统都会实现P,也就是分区容忍性,之后在C和A中做抉择。
CSR
CSR(Cerificate Signing Request ) 证书请求文件
在申请数字证书之前,您必须先生成证书私钥和证书请求文件(CSR,Cerificate Signing Request),CSR是您的公钥证书原始文件,包含了您的服务器信息和您的单位信息,需要提交给CA认证中心。在生成CSR文件时会同时生成私钥文件,请妥善保管和备份您的私钥。
生成CSR文件时,一般需要输入以下信息(中文需要UTF8编码):
- Organization Name(O):申请单位名称法定名称,可以是中文或英文
- Organization Unit(OU):申请单位的所在部门,可以是中文或英文
- Country Code(C):申请单位所属国家,只能是两个字母的国家码,如中国只能是:CN
- State or Province(S):申请单位所在省名或州名,可以是中文或英文
- Locality(L):申请单位所在城市名,可以是中文或英文
- Common Name(CN):申请SSL证书的具体网站域名
进程和线程
进程和线程的区别?
-
进程是资源分配的最小单位,线程是CPU调度的最小单位。
-
进程有独立的地址空间,一个进程崩溃后,不会对其它进程产生影响, 线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉。
-
进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。
-
一个程序至少有一个进程,一个进程至少有一个线程。
-
线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。
线程和进程的关系:
线程是属于进程的,线程运行在进程空间内,同一进程所产生的线程共享同一内存空间,当进程退出时该进程所产生的线程都会被强制退出并清除。线程可与属于同一进程的其它线程共享进程所拥有的全部资源,但是其本身基本上不拥有系统资源,只拥有一点在运行中必不可少的信息(如程序计数器、一组寄存器和栈)。
进程间通讯(IPC)
进程间通信方法:
- 管道(pipe) 有名管道FIFO
- 信号 (signal)
- 消息队列
- 信号量 (semaphore)
- 共享内存
- 套接字 (socket)
互斥锁
信号量:
信号量用在多线程多任务同步的,一个线程完成了某一个动作就通过信号量告诉别的线程,别的线程再进行某些动作。
互斥锁
互斥锁是用在多线程多任务互斥的,一个线程占用了某一个资源,那么别的线程就无法访问,直到这个线程unlock,其他的线程才开始可以利用这 个资源。比如对全局变量的访问,有时要加锁,操作完了,再解锁。有的时候锁和信号量会同时使用的。
防止多个线程同时读写某一块内存区域。
作用域 信号量: 进程间或线程间(linux仅线程间的无名信号量pthread semaphore) 互斥锁: 线程间
Mnesia数据库
Mnesia数据库是Erlang内置的一个DBMS(Database Management System),可以直接存储Erlang的各种数据结构。有其它语言编程经验的可能比较熟悉,要将某种语言中的数据结构放入数据库,就需要对其进行转换(如序列化、python的pickle等)。同时,Mnesia数据库还可以配置数据存储在内存或磁盘上,甚至在多台计算机上存储多个副本。
so文件
.so文件代表Linux的共享函数库文件,程序运行时可能会使用到里面的函数代码。当一个程序需要.so共享函数库文件时,系统自动会把它加载到内存中使用。相当于Windows系统里面的dll动态链接库文件。(用户层的)
.ko文件是内核态的动态链接库,用于内核态的动态链接使用,可以用于内核之间的模块相互调用。用户态的代码不可直接调用内核态的代码,但是可以通过其他方式进行通信。
.a文件是用于静态链接时,使用的静态库。
.o文件是目标文件,编译生成,.a文件就是由.o文件打包生成的。
ETL
ETL是将业务系统的数据经过抽取、清洗转换之后加载到数据仓库的过程,目的是将企业中的分散、零乱、标准不统一的数据整合到一起,为企业的决策提供分析依据。 ETL是BI项目重要的一个环节。 通常情况下,在BI项目中ETL会花掉整个项目至少1/3的时间,ETL设计的好坏直接关接到BI项目的成败。
https://www.cnblogs.com/yjd_hycf_space/p/7772722.html
FUSE
用户空间文件系统(Filesystem in Userspace,简称FUSE)是操作系统中的概念,指完全在用户态实现的文件系统。目前Linux通过内核模块对此进行支持。一些文件系统如ZFS,glusterfs和luster使用FUSE实现。
OLAP
联机分析处理 Online Analytical Processing
OLTP
联机事务处理(Online Transaction Processing)
POSIX
POSIX表示可移植操作系统接口(Portable Operating System Interface of UNIX,缩写为 POSIX ),POSIX标准定义了操作系统应该为应用程序提供的接口标准。
RBAC
Role-Based Access Control
基于角色的访问控制
referer
HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的,服务器基此可以获得一些信息用于处理。
比如从我主页上链接到一个朋友那里,他的服务器就能够从HTTP Referer中统计出每天有多少用户点击我主页上的链接访问他的网站。
TLS
Transport Layer Security
安全传输层协议(TLS)用于在两个通信应用程序之间提供保密性和数据完整性。
WSGI
Web Server Gateway Interface
X509
X.509 - 这是一种证书标准,主要定义了证书中应该包含哪些内容.其详情可以参考RFC5280,SSL使用的就是这种证书标准.
PV
page view 页面浏览量
Goosip
Gossip 算法又被称为反熵(Anti-Entropy),熵是物理学上的一个概念,代表杂乱无章,而反熵就是在杂乱无章中寻求一致,这充分说明了 Gossip 的特点:在一个有界网络中,每个节点都随机地与其他节点通信,经过一番杂乱无章的通信,最终所有节点的状态都会达成一致。每个节点可能知道所有其他节点,也可能仅知道几个邻居节点,只要这些节可以通过网络连通,最终他们的状态都是一致的,当然这也是疫情传播的特点。 简单的描述下这个协议,首先要传播谣言就要有种子节点。种子节点每秒都会随机向其他节点发送自己所拥有的节点列表,以及需要传播的消息。任何新加入的节点,就在这种传播方式下很快地被全网所知道。这个协议的神奇就在于它从设计开始就没想到信息一定要传递给所有的节点,但是随着时间的增长,在最终的某一时刻,全网会得到相同的信息。当然这个时刻可能仅仅存在于理论,永远不可达。
Gossip 过程是由种子节点发起,当一个种子节点有状态需要更新到网络中的其他节点时,它会随机的选择周围几个节点散播消息,收到消息的节点也会重复该过程,直至最终网络中所有的节点都收到了消息。这个过程可能需要一定的时间,由于不能保证某个时刻所有节点都收到消息,但是理论上最终所有节点都会收到消息,因此它是一个最终一致性协议。
Paxos
Paxos算法是莱斯利·兰伯特(英语:Leslie Lamport,LaTeX中的“La”)于1990年提出的一种基于消息传递且具有高度容错特性的一致性算法。
raft
因为 Paxos 难懂,难实现,所以斯坦福大学的教授在2014年发表了新的分布式协议 Raft。与 Paxos 相比,Raft 有着基本相同运行效率,但是更容易理解,也更容易被用在系统开发上。
IDL
IDL是Interface description language的缩写,指接口描述语言,是CORBA规范的一部分,是跨平台开发的基础。
Protobuf
Protocol Buffers 是一种与语言、平台无关,可扩展的序列化结构化数据的方法,常用于通信协议,数据存储等等。相较于 JSON、XML,它更小、更快、更简单,因此也更受开发人员的青眯
kernel
在 ELRepo 中有两个内核选项,一个是 kernel-lt(长期支持版本),一个是 kernel-ml(主线最新版本),采用长期支持版本(kernel-lt),更稳定一些
CIDR
CIDR(Classless Inter-Domain Routing,无类域间路由选择)它消除了传统的A类、B类和C类地址以及划分子网的概念,因而可以更加有效地分配IPv4的地址空间。它可以将好几个IP网络结合在一起,使用一种无类别的域际路由选择算法,使它们合并成一条路由从而较少路由表中的路由条目减轻Internet路由器的负担。
VLSM
VLSM(可变长子网掩码) 是为了有效的使用无类别域间路由(CIDR)和路由汇聚(route summary)来控制路由表的大小,它是网络管理员常用的IP寻址技术,VLSM就是其中的常用方式,可以对子网进行层次化编址,以便最有效的利用现有的地址空间。
IaaS PaaS SaaS
IaaS: Infrastructure-as-a-Service(基础设施即服务)是第一层。 PaaS: Platform-as-a-Service(平台即服务)第二层就是所谓的PaaS,某些时候也叫做中间件。 SaaS: Software-as-a-Service(软件即服务)是第三层。
位于最底层,基础架构即服务——IaaS IaaS通过虚拟化技术将服务器等计算平台同存储和网络资源打包,通过 API 接口的形式提供给用户。用户不用再租用机房,不用自己维护服务器和交换机,只需要购买 IaaS 服务就能够获得这些资源。
IaaS之上,平台即服务——PaaS PaaS 构建在 IaaS 之上,在基础架构之外还提供了业务软件的运行环境,个人网站常常用到的“虚拟主机”实际就属于 PaaS 的范畴,个人站长只需要将网站源代码上传到“虚拟主机”的地址,“虚拟主机”会自动运行这些代码生成对应的 Web 页面。除了形成软件本身运行的环境,PaaS 通常还具备相应的存储接口,这些资源可以直接通过 FTP 等方式调用,用户无需从头进行裸盘的初始化工作。
最上层,软件即服务——SaaS SaaS 是最成熟、知名度最高的云计算服务类型,在云计算真正变得火热之前,软件即服务本身就已经是一个非常流行的概念了。SaaS 的目标是将一切业务运行的后台环境放入云端,通过一个瘦客户端——通常是 Web 浏览器——向最终用户直接提供服务。最终用户按需向云端请求服务,而本地无需维护任何基础架构或软件运行环境。 SaaS 同 PaaS 的区别在于,使用 SaaS 的不是软件的开发人员,而是软件的最终用户。
P95 P99
过去 10 秒内最慢的 x% 的请求的平均延迟,其中 x 是数字与 100 之差。例如,p99 1.403 表示过去 10 秒内最慢的 1% 请求的平均延迟为 1.403 秒。 p95 表示过去 10 秒内最慢的 5% 请求的平均延迟。 https://docs.aws.amazon.com/zh_cn/elasticbeanstalk/latest/dg/health-enhanced-metrics.html
幂等性
编程中的“幂等性”是指任意多次执行所产生的影响,与一次执行的影响相同。一个拥有幂等性设计的接口,保证无论一次或多次来调用接口,都能够得到相同的结果。接口的幂等性设计在某些场景下是必需的,例如用户下单的场景。
OTP
一次性密码(One Time Password,简称OTP)