首页

来自智得网
跳转至: 导航、​ 搜索

精选文章

CAP查看全文
CAP理论.png
CAP理论是2000年由Eric Brewer教授提出的。即一个分布式系统不可能同时满足一致性,可用性,分区容忍性这三个需求,而最多只能同时满足2个。2002年MIT的Seth Gilbert和Nancy lynch证明了CAP的正确性。

CAP中的C是consistency(一致性)的缩写,首先解释一下一致性,一致性概念在计算机领域至少有下列含义: 数据库事务(ACID)的一致性是指数据变更的过程中需要满足正确的状态约束,这些约束分是数据库层面的约束,比如外键关系,但有一部分约束是指业务层实现的约束,例如转账的过程中用户的账户金额不能小于0。 不同于AID是数据库层面需要提供的能力,C需要用户自己实现。 CAP中的一致性,指的是一个读操作从能读取到之前写操作的结果,在分布式场景下更多的指数据副本之间的一致性。这里的一致性从事件约束可以分为强一致性和最终一致性,强一致性是指用户每次都可以读取到最新的数据,最终一致性是指可以在确定的时间内查询到最新的数据。从实现的方式上可以分为顺序一致性和线性一致性。 可用性是指系统的可用性,每一次请求都能在一定的时间内响应。 分区容忍性主要解决的是脑裂问题,即网络出现分区的情况下的状态。 因为分布式理论天然需要支持分区容忍性,所以CAP的概念真正的本质是在网络分区的情况下,只能在一致性和可用性中选择一个特性。 分区容忍性 分布式环境下的集群节点必然是有不同区域的物理分布的,分布可能是大的城域网分区,也可能是不同机房的分区,甚至小到机房的不同机架。

分区即集群的节点因为联通问题分成了两部分,此时面临的问题是两个分区同时提供服务,即脑裂问题,脑裂问题会导致后续的数据无法合并,因此分区容忍性就是解决脑裂问题…
ES查看全文
ES-logo.jpg
ES是基于Lucene搭建的一个分布式存储。lucene是apache旗下著名的开源搜索框架,但是lucene存在以下问题:

lucene是单机版本的搜索引擎,无法用于大规模搜索系统的实现。 lucene的文件写入索引之后不能立即生效,需要等待lucene生成segment才能被检索,过程中如果服务器宕机,会出现数据丢失的问题。 lucene的updateDocuments方法只支持文档全量更新,不支持字段级别的更新。 lucene只提供简单的API用于创建索引以及检索,不是一个完整的搜索引擎。 ES通过分布式架构解决了上述问题,成为了最为流行的搜索引擎之一。 名词解释 实时性 当一个文档写入Lucene不能被立即查询,Elasticsearch提供了refresh的操作,该操作定时地调用(默认1秒)lucene的reopen(新版本为openIfChanged)在内存中为新写入的数据生成一个新的segment,写入segment的文档均可以被检索到。 refresh操作的时间间隔由refresh_interval参数控制,默认为1s, 当然还可以在写入请求中带上refresh表示写入后立即refresh,另外还可以调用refresh API显式refresh。

由于refresh的间隔较短,因此会产生大量的小segment,为此ES会运行一个任务检测当前磁盘中的segment,对符合条件的segment进行合并操作,减少lucene中的segment个数,提高查询速度,降低负载。不仅如此,merge过程也是文档删除和更新操作后,旧的doc真正被删除的时候。用户还可以手动调用_forcemerge API来主动触发merge…
虚拟机查看全文
虚拟化使用软件在计算机硬件上创建抽象层,能够将单个计算机的硬件元素(包括处理器、内存、存储器等)分成多个虚拟计算机,通常称为虚拟机 (VM)。 每个 VM 都运行自己的操作系统 (OS) ,其行为类似于独立的计算机,即使它仅在实际底层计算机硬件的一部分上运行。

因此,虚拟化能够更有效地利用物理计算机硬件,使组织的硬件投资获得更大的回报。 目前,虚拟化已成为企业 IT 架构中的标准实践。 它也是推动云计算经济的技术。 虚拟化使云提供商能够为用户提供现有的物理计算机硬件;它使云用户能够仅在需要时购买所需的计算资源,并随着工作负载的增长而经济有效地扩展这些资源。 虚拟机是物理计算机的虚拟表示形式或仿真环境。 虚拟机通常被称为访客机,而它们运行所在的物理计算机被称为主机。 虚拟机可以分为桌面虚拟机和非桌面虚拟机。 桌面虚拟机可以按照虚拟机的操作系统分为Linux虚拟机,windows虚拟机等。 虚拟化使人能够在一台物理计算机上创建多个虚拟机,每个虚拟机具有各自的操作系统 (OS) 和应用。虚拟机无法与物理计算机直接交互。 而是需要借助一个叫做虚拟机管理器的轻量级软件层,在它与底层物理硬件之间进行协调。虚拟机管理器将物理计算资源(例如处理器、内存和存储)分配给每个虚拟机。 它使虚拟机之间相互分离,从而互不干扰。 虽然这项技术可以用很多名称来表示,包括虚拟服务器、虚拟服务器实例 (VSI) 和虚拟专用服务器 (VPS),但本文仅将其称为虚拟机。 虚拟机的原理就是通过软件模拟独立的操作系统,所以虚拟机需要实现所有操作需要的功能,例如对CPU,内存,硬盘等资源的管理,对进程的管理,以及各种系统调用的能力。

虚拟机的关键技术有CPU虚拟化,内存虚拟化…

热门分类

算法题库

精选内容