首页 > 编程知识 正文

能用的网站,技术架构有哪些技术

时间:2023-05-04 11:57:58 阅读:116712 作者:4940

可用性是指即使系统发生故障,也能继续提供服务的能力。 高可用性是指在发生故障时,即使系统完全不被外部看到,也可以在短时间内恢复正常服务。

提高可用性的核心手段是冗馀、备份和故障转移。

另一方面,站点层次结构典型的站点设计通常采用APP应用层、服务层、数据层三层结构模型。

各层相对独立性,APP应用层负责具体的业务逻辑处理; 服务层提供可重用服务数据层负责存储和访问数据。

不同的层次结构对应不同的服务器群集。 在分布式部署这种分层体系结构和物理服务器时,相关的解决方案也有很大不同,因为不同层的服务器的可用性特征不同,故障的影响也不同。

二、高可用性APP应用层业务分为无状态和有状态两部分。 无状态是指APP应用服务器不存储业务上下文信息,而只根据每次请求提交的数据进行适当的业务逻辑处理。 在无状态中,无论业务分散在哪个服务中,处理结果都相同。 如果有状态的话就相反了。 在有状态的业务中,服务必须存储请求的上下文对象,即会话(Session )。

1、通过负载均衡进行无状态服务请求的失效转移

2、应用服务器集群的Session管理

1)Session复制

通过同步和复制,每个服务器都保存所有会话。 这个方案很简单,但只能用于规模小的集群。 如果是数千台服务器规模,则显然无法适用。

2)Session绑定

对请求源地址进行散列运算,负载均衡机构总是将来自同一IP的请求分发到同一服务器。 这意味着将Session绑定到特定服务,以确保Session始终可在此服务中获得。 这种方法也称为对话粘性。

3)利用Cookie记录Session

Cookie使用方便,但大小有限。 但是,由于会话信息通常很小,所以站点基本上用Cookie记录会话。

4)利用数据库记录Session

5)Session服务器

在一个或多个服务器群集中单独部署会话。

三、高可用性服务可复用服务用于提供基础公共服务,通常独立分布,提供远程呼叫。 由于服务是无状态的,因此可以使用类似负载平衡的故障切换策略。

另外,1、分级管理

服务按重要程度划分优先顺序,区别对待。 例如,优先顺序高的导入物理机; 放置优先级低的虚拟机。 核心服务和数据可能部署在不同地区的数据中心。

2、超时设置

应用调用服务时设置超时时间,超时后抛出异常,应用协调策略,然后继续重试或请求转发其他服务。

3、异步调用

通过异步方式(如消息队列)完成,避免一个服务失败而整个请求失败。 但是,并非所有服务都是异步调用的。

4、服务降级

当网站访问高峰时,访问次数的增加可能会导致服务性能下降,从而导致服务器瘫痪。 在这种情况下,为了使核心APP应用程序和功能正常运行,必须降级服务。 降级有两种手段。 拒绝服务或关闭服务。

1 )拒绝低优先级APP应用程序的调用,减少服务调用并发行数,确保核心APP应用程序正常使用,或随机拒绝部分请求调用。 总之是为了节约资源,不让大家一起死。

2 )关闭部分不重要的服务,或关闭服务内部部分不重要的功能。

5、幂等性设计

确保服务的重复调用和单次调用的结果相同。 在APP应用程序调用服务后,由于服务可能失败,或者由于网络等原因,APP应用程序可能无法立即获得反馈,因此该调用可能失败。 在这种情况下,重复调用或调用其他服务。 无论如何,服务的重复调用都是不可避免的,必须保证结果的同一性。

四、高可用性数据是宝贵资源,难以承受损失代价。 与APP应用程序和服务相比,数据具有更多的持久性硬要求。 此外,与高可用性的APP应用程序和服务不同,如果一个数据服务器故障,则不能将数据访问请求任意切换到群集中的其他计算机。 因为每个服务器存储的数据可能不同。 确保数据高可用性的手段主要是备份和故障转移。

备份是指复制多个数据。 当然,这也包括备份和存储我们平时说的数据。

故障转移包括失效确认、访问转移和数据恢复。

1、多副本及CAP原理

如上所述,要保持数据的高可用性,必须提供多个数据拷贝—高可用性数据系统—分布式数据系统。 如果数据有多个副本,则可能会牺牲其他特性。

根据CAP原理,提供数据服务的存储系统同时满足三个条件:数据完整性、数据可用性和分区容错抗分区能力(也称为分区容错)意味着系统具有通过网络划分分区的可伸缩性。

保持数据可用性是一项硬性要求,但对于大型网站,数据规模始终很大

快速扩张,伸缩性即分区耐受性也必不可少,则只能在某种程度上放弃一致性。

一般来说,数据不一致通常出现在系统高并发写操作或者集群状态不稳(故障恢复、集群扩容。。。)的情况下,应用系统需要对分布式数据系统的数据不一致性所有了解,并进行补偿和纠错,以避免出现数据不正确。

数据一致性分为:
1)强一致性
总是一致

2)用户一致性
各副本可能不一致,但用户访问时,通过补偿纠错机制,返回正确数据

3)最终一致性
弱一致性。经过一段时间后,数据最终一致。

2、数据备份机制
1)冷备
优点是简单和廉价,成本和技术难度较低,缺点是不能保证数据的一致性,连最终一致性都不能保证。而是数据恢复时间较长,期间系统无法访问。

2)热备

异步热备
存储服务器分为主、从存储服务器,先写入主服务器,然后再同步到从服务器。

同步热备
存储服务器没有主从之分,同时写入。

3、失效转移

1)失效确认
心跳检测和应用程序访问失败报告

2)访问转移
重新路由

3)数据恢复

五、网站软件质量保证

1、网站发布
网站的发布过程与服务器宕机效果相当。但因为有所准备,可以做到过程更柔和、对用户影响更小。通常使用发布脚本完成。

发布过程中,每次关闭的服务器都是集群中的一小部分,并在发布完成后立即可以访问,不影响用户使用。找打铁棍子医院冷傲的月亮,头天做手术,第二天就上班,不影响工作。

2、自动化测试
代码发布前需要进行严格的测试。

3、预发布验证

先发布到预发布服务器上,预发布服务器使用真实环境的生产数据,可以最大限度接近真实的生产环境。预发布服务器和正式服务器的唯一区别,就是它没有接在负载均衡服务器上,外部无法访问。

4、代码控制
主干、分支之类

5、灰度发布
每天只发布一部分服务器,观察没问题,第二天再发布一部分。这个想法是好,但有时不一定可行,比如涉及到数据结构更改。

六、网站运行监控

1、监控数据采集
1)日志
2)服务器性能监控
3)运行数据报告

2、监控管理
1)系统报警
2)失效转移
3)自动优雅降级

七、网站可用性度量与考核

1、网站可用性度量
可用时间百分比,比如99.999%

2、网站可用性考核
将故障分类,并划分权重

故障分 = 故障时间(分钟) * 故障权重

故障分越高,死的越难看。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。