可用性

怎么看服务器的性能

狂风中的少年 提交于 2020-01-19 02:19:39
一、硬盘类型  服务器中的固态硬盘硬盘驱动器提供更高的磁盘读/写速度,也称为输入/输出(I/O)性能。具有读取和写入磁盘的服务器速度更快,但定价明显高于同等存储容量的硬盘。   二、硬盘存储空间  服务器的硬盘存储是本地数据库大小和文件的本地存储的限制因素。配置RAID磁盘阵列可有效增加数据可靠性,添加读取/写入(I/O)功能,RAID需要两个以上单独的存储卷。存储还可以采取网络存储的形式,如(网络连接存储)或SAN(存储区域网络)。   三、内存RAM(随机存取存储器)  服务器内存的大小会影响服务器处理指令的速度。处理更复杂和更多种指令时,需求更高的内存。例如,动态的电子商务网站、数据库服务器等,需求对数据库运行各种查询和检索,更大的内存将使您取得更高的性能优势   四、CPU(内存处理器)  独立服务器的CPU执行者如服务网页、运行数据库查询或处理计算机命令等指令。CPU和内核的数量会影响可执行多少个并发指令。CPU架构和功能也影响执行指令的速度,特别是在围绕这些功能设计程序的网站或应用。   五、宽带  带宽数据传输限制,指的是可以并发到您的服务器的数据量。服务器带宽价格较高,一般供给国际带宽。像并发视频流、游戏和大数据处理等工作任务都需要高带宽。   六、可用性  服务器的高可用性(HA)可能指网络和电源可用性,这反映在托管服务提供商的维护正常运行时间的实践记载以及其

分布式CAP定理,为什么不能同时满足三个特性?

前提是你 提交于 2020-01-19 00:08:18
在弄清楚这个问题之前,我们先了解一下什么是分布式的CAP定理。 根据百度百科的定义,CAP定理又称CAP原则,指的是在一个分布式系统中,Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),最多只能同时三个特性中的两个,三者不可兼得。 一、CAP的定义 Consistency (一致性): “all nodes see the same data at the same time”,即更新操作成功并返回客户端后,所有节点在同一时间的数据完全一致,这就是分布式的一致性。一致性的问题在并发系统中不可避免,对于客户端来说,一致性指的是并发访问时更新过的数据如何获取的问题。从服务端来看,则是更新如何复制分布到整个系统,以保证数据最终一致。 Availability (可用性): 可用性指“Reads and writes always succeed”,即服务一直可用,而且是正常响应时间。好的可用性主要是指系统能够很好的为用户服务,不出现用户操作失败或者访问超时等用户体验不好的情况。 Partition Tolerance (分区容错性): 即分布式系统在遇到某节点或网络分区故障的时候,仍然能够对外提供满足一致性或可用性的服务。 分区容错性要求能够使应用虽然是一个分布式系统,而看上去却好像是在一个可以运转正常的整体

SQL Server Alwayson概念总结

僤鯓⒐⒋嵵緔 提交于 2020-01-17 04:31:49
SQL Server Alwayson概念总结 (农夫山泉项目) 一、alwayson概念 “可用性组” 针对一组离散的用户数据库(称为“可用性数据库” ,它们共同实现故障转移)支持故障转移环境。 一个可用性组支持一组主数据库以及一至八组对应的辅助数据库(包括一个主副本和两个同步提交辅助副本)。 辅助数据库不是备份,应继续定期备份您的数据库及其事务日志。 每组可用性数据库都由一个“可用性副本” 承载。 有两种类型的可用性副本:一个“主副本” 和一到四个“辅助副本”。 它承载主数据库和一至八个“辅助副本” ,其中每个副本承载一组辅助数据库,并用作可用性组的潜在故障转移目标。 可用性组在可用性副本级别进行故障转移。 可用性副本仅在数据库级别提供冗余 - 针对一个可用性组中的该组数据库。 故障转移不是由诸如因数据文件丢失或事务日志损坏而使数据库成为可疑数据库等数据库问题导致的。 主副本使主数据库可用于客户端的读写连接。 此外,它在称为“数据同步” 的过程中使用,在数据库级别进行同步。 主副本将每个主数据库的事务日志记录发送到每个辅助数据库。 每个次要副本缓存事务日志记录(“硬化”日志),然后将它们应用到相应的辅助数据库。 主数据库与每个连接的辅助数据库独立进行数据同步。 因此,一个辅助数据库可以挂起或失败而不会影响其他辅助数据库,一个主数据库可以挂起或失败而不会影响其他主数据库。 或者

配置迁移至Apollo服务

可紊 提交于 2020-01-16 12:14:49
一、背景 目前Java项目的配置信息是放置在SpringBoot的YML格式的文件中配置管理,但在运维时,假如项目的某个配置参数需要改动,并且希望立即生效,则当前的配置无法满足;假如这个配置参数可以修改,也希望是指定账户允许修改,只允许某些人修改;并且可以根据环境来读取配置信息。是的,没错,这些基本的操作都是apollo配置框架的特性。而且它的特性不止这一点,更多特性请看链接 10.4.4.1、Apollo框架 。apollo在国内也是受广大程序员们公认的开源服务框架排名第一的配置框架。 配置中心作为基础服务,可用性要求非常高,下面的表格描述了不同场景下Apollo的可用性: 场景 影响 降级 原因 某台config service下线 无影响 Config service无状态,客户端重连其它config service 所有config service下线 客户端无法读取最新配置,Portal无影响 客户端重启时,可以读取本地缓存配置文件 某台admin service下线 无影响 Admin service无状态,Portal重连其它admin service 所有admin service下线 客户端无影响,portal无法更新配置 某台portal下线 无影响 Portal域名通过slb绑定多台服务器,重试后指向可用的服务器 全部portal下线 客户端无影响

ZooKeeper解决的问题

孤街醉人 提交于 2020-01-16 08:56:39
1、解决分布式单点问题 https://www.jianshu.com/p/08b76bd7a634 2、实现分布式环境数据的一致性、访问ZooKeeper树结构时,不同节点返回的数据是一致,不会引起脏读、重复读。 3、用以实现高吞吐、低延迟、一致性、可用性的应用。 来源: https://www.cnblogs.com/jx9527/p/12199493.html

电商平台架构

感情迁移 提交于 2020-01-15 03:39:56
设计理念 1 时间换空间 1.1 多级缓存,静态化 客户端页面缓存(http header中包含Expires/Cache of Control,last modified(304,server不返回body,客户端可以继续用cache,减少流量),ETag), 反向代理缓存,应用端的缓存(memcache),内存数据库,Buffer、cache机制(数据库,中间件等)。 1.2 索引 哈希、B树、倒排、bitmap 哈希索引:适合综合数组的寻址和链表的插入特性,可以实现数据的快速存取。 B树索引:适合于查询为主导的场景,避免多次的IO,提高查询的效率。 倒排索引:实现单词到文档映射关系的最佳实现方式和最有效的索引结构,广泛用在搜索领域。 Bitmap:是一种非常简洁快速的数据结构,他能同时使存储空间和速度最优化(而不必空间换时间),适合于海量数据的的计算场景。 2. 并行与分布式计算 2.1 任务切分、分而治之(MR) 在大规模的数据中,数据存在一定的局部性的特征,利用局部性的原理将海量数据计算的问题分而治之。 MR模型是无共享的架构,数据集分布至各个节点。处理时,每个节点就近读取本地存储的数据处理(map),将处理后的数据进行合并(combine)、排序(shuffle and sort)后再分发(至reduce节点),避免了大量数据的传输,提高了处理效率。 2.2 多进程

分布式系统CAP为什么不能同时满足?

血红的双手。 提交于 2020-01-11 09:26:10
分布式系统当中有一个著名的 CAP 理论,它也是分布式系统理论的基础。 CAP理论最早发表于2000年,由加州伯克利的教授首先在ACM PODC会议上提出猜想,两年之后,被麻省理工学院的教授Seth Gilbert和Nancy Lynch从理论上证明。从此之后,它成了分布式系统领域的公认定理。 今天这篇文章就和大家聊聊这个大名鼎鼎的CAP理论。 CAP理论描述起来其实很简单,它说的是 一个分布式系统最多只能满足C(一致性)、A(可用性)和P(分区性)这三者当中的两个 。我们先来看一下这三项分别代表了什么。 Consistency 一致性 分布式系统当中的一致性指的是 所有节点的数据一致 ,或者说是 所有副本的数据一致 。用英文描述是: All the nodes see the same data at the same time 。它和数据库事务中的一致性是两码事,在我们之前的文章里,曾经详细描述过分布式系统中的各种一致性模型,感兴趣的同学可以点击这里。 我们可以将一致性一分为二,分别从 客户端和服务端 进行探究。对于客户端而言,并不关心后端的实现,也不关心后端的节点运行情况。唯一只关心 多次并发访问下都能获得准确的符合预期的结果 。比如用户多次点击付款,也只会付款一次,余额无论什么时候查询都是当下最新的值。 而服务端关心的是会引发数据变更的请求过来,

关于分布式系统中雷同集群技术及原理,你知道多少?

我们两清 提交于 2020-01-07 23:16:28
写在前面 在当今信息爆炸的时代,单台计算机已经无法负载日益增长的业务发展,虽然也有性能强大的超级计算机,但是这种高端机不仅费用高昂,也不灵活,一般的企业是负担不起的,而且也损失不起,那么将一群廉价的普通计算机组合起来,让它们协同工作就像一台超级计算机一样地对外提供服务,就成了顺其自然的设想,但是这又增加了软件的复杂度,要求开发的软件需要具备横向扩展能力,比如:Kafka、Elasticsearch、Zookeeper等就属于这一类软件,它们天生都是"分布式的",即可以通过添加机器节点来共同地分摊数据存储和负载压力。 为什么需要集群? 分布在不同区域的计算机,彼此之间通过网络建立通信,相互协作作为一个整体对外提供服务,这就是集群,如果我们开发的系统具备这样的能力,那么理论上就具备无限横向扩容的能力,系统的吞吐量就会随着机器数增加而增长,那么未来当系统出现高负载的时候,就可以很好地应对这种情况。 为什么CAP不能同时满足? 通过上面分析,我们知道实现集群,其实就是采用多台计算机来共同承担和负载系统压力,那么就涉及到多台计算机需要参与一起处理数据,为了保证可用性,一般都会在每台计算机上备份一份数据,这样只要有一个节点保持同步状态,那么数据就不会丢失,比如kafka分区多副本、Elasticsearch的副本分片,由于同一数据块及其副本位于不用的机器,随着时间的推移,再加上不可靠的网络通信

分布式事务

孤街醉人 提交于 2020-01-07 20:12:05
前置知识 事务: 事务提供一种机制将一个活动涉及的所有操作纳入到一个不可分割的执行单元,组成事务的所有操作只有在所有操作均能正常执行的情况下方能提交,只要其中任意一个执行失败,将导致整个事务的回滚。简单来说就是提供一种”要么什么都不做,要不全都做“的机制。 本地事务: 当事务是由资源管理器本地管理时被称为本地事务。本地事务的有点是支持严格的 ACID 特性,高效,可靠,状态可以只在资源管理器中维护,而且应用编程模型简单。但是本地事务不具备分布式事务的处理能力,隔离的最小单位受限于资源管理器。MySql 的 InnoDB 通过日志(Redo 和 Undo)和锁来保证事务。 全局事务: 当事务由全局事务管理器进行全局管理时成为全局事务,事务管理器负责管理全局事务状态和参与的资源,协同资源的一直提交回滚。 刚性事务和柔性事务 刚性事务:遵循 ACID 原则,强一致性,典型的例子就是数据库事务。 柔性事务:尊循 BASE 理论,最终一致性,允许在一定时间内,不同节点的数据不一致,但要求最终一致性。 分布式知识 CAP 分布式系统在设计时只能在一致性,可用性和分区容错性中满足两种,无法兼顾三种。 C: 在分布式环境中,一致性是指数据在多个副本之间是否能够保持一致的特性。在一致性的要求下,当一个系统在数据一致的状态下执行更新操作后,应该保证系统的数据仍然处于一致的状态。 A:

什么是分布式系统,如何学习分布式系统

佐手、 提交于 2020-01-05 22:05:21
欢迎关注专栏: Java架构技术进阶 。里面有大量batj面试题集锦,还有各种技术分享,如有好文章也欢迎投稿哦。 什么是分布式系统 分布式系统是由一组通过网络进行通信、为了完成共同的任务而协调工作的计算机节点组成的系统。分布式系统的出现是为了用廉价的、普通的机器完成单个计算机无法完成的计算、存储任务。其目的是 利用更多的机器,处理更多的数据 。 首先需要明确的是,只有当单个节点的处理能力无法满足日益增长的计算、存储任务的时候,且硬件的提升(加内存、加磁盘、使用更好的CPU)高昂到得不偿失的时候,应用程序也不能进一步优化的时候,我们才需要考虑分布式系统。因为,分布式系统要解决的问题本身就是和单机系统一样的,而由于分布式系统多节点、通过网络通信的拓扑结构,会引入很多单机系统没有的问题,为了解决这些问题又会引入更多的机制、协议,带来更多的问题。。。 在很多文章中,主要讲分布式系统分为分布式计算(computation)与分布式存储(storage)。计算与存储是相辅相成的,计算需要数据,要么来自实时数据(流数据),要么来自存储的数据;而计算的结果也是需要存储的。在操作系统中,对计算与存储有非常详尽的讨论,分布式系统只不过将这些理论推广到多个节点罢了。 那么分布式系统怎么将任务分发到这些计算机节点呢,很简单的思想,分而治之,即分片( partition) 。对于计算