大型网站技术架构 构建高可用的网站 高可用的服务

更新日期: 2019-03-09 阅读: 2.6k 标签: 架构

本章介绍如何去构建高可用的服务,关键词:服务分级,超时设置,异步调用,服务降级,幂等性设计

 

服务分级

将核心应用与非核心应用进行分离,核心应用和服务优先使用更好的机器,在服务部署上也进行必要的隔离,避免故障的连锁反应


超时设置(针对通信)

设置服务连接超时时间,一旦超时,应用程序根据服务调度策略,可选择重试(配置重试次数)或将请求转移到提供相同服务的其它服务器上

例如:目前有A,B两个服务,分配部署在IP1(A服务),IP2(B服务),IP3(B服务)上,A服务调用B服务,第一次,A服务调用IP2所在B服务,假设超时时间为2S,当连接时间超过2S或者连接失败后,可进行重新连接,或者连接IP3上所在的B服务(目前大多分布式通信框架都有此配置:dubbo)


异步调用(消息队列)

在通信过程中,有同步和异步两个概念,异步调用在高并发性能方面能很好的处理一些场景

同步:需等待调用结果的返回
异步:不需要等待调用结果的返回,配置回调机制或者不需要去处理等待结果


服务降级

(保证核心应用和功能的正常运行)在高并发的场景下,系统刚不住的情况常用方案

拒绝服务 拒绝低优先级应用的调用,减少服务调用并发数,确保核心应用正常使用,随机拒绝部分请求调用,释放资源,让另一部分请求得以成功

关闭服务 关闭部分不重要的服务,或者服务器内部关闭不重要的功能,解决系统开销,为重要服务和功能让出资源


幂等性设置

防止重复调用,造成数据的准确性失误

例如:涉及支付系统,在服务端,需要做幂等性设计,当订单系统向支付系统提交了支付请求后,为防止订单系统重复提交而导致支付多笔,造成资金的损失

 

以上是一些架构设计中的常用方案,但是需要结合实际业务场景进行设计,没有一套方案能解决所有问题


本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!

链接: https://fly63.com/article/detial/2285

相关推荐

前端架构师对于框架的技术选型

前端技术发展日新月异,互联网上出现的新型框架也比较多,如何让新招聘的人员能够直接上手接替项目,或者有相关人员请假,替补人员的接替工作,如何做到不同前端工程师的开发的差异性更小

基于 NodeJS 的 serverless 架构实践

通过将 BFF 构建于 serverless 之上,将人工智能实验室(天猫精灵)数十个中后台应用整合到了一个统一入口。用云函数的方式取代了传统基于 NodeJS 的 BFF 层,提供了在一个站点下不同应用以及不同环境的快速切换能力

C/S和B/S两种架构区别与优缺点分析

C/S 架构是一种典型的两层架构,其全程是Client/Server,即客户端服务器端架构,其客户端包含一个或多个在用户的电脑上运行的程序,而服务器端有两种,一种是数据库服务器端,客户端通过数据库连接访问服务器端的数据

业务架构师给你一些建议

搬运工: 付老师讲述了自己成为业务架构师的一些个人经历,并且也给出了学习建议,最后推荐了一些不错的书籍。希望对你成为业务架构师有帮助或者启发,也可以在完成业务开发建模等有所帮助。

怎么判定web前端架构师的能力高低?

软件架构(software architecture)是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计。传统软件架构描述的对象是直接构成系统的抽象组件,侧重于系统的抽象、拆分、组织方式等

高级架构设计师 推荐书籍

关于程序员类的技术书籍有很多,但是往往没有时间阅读,下面的这些书籍,是由John Sonmez(《软技能》作者)精选的架构经典书籍,可以帮助你提高技术技能,让你成为一名更好的程序员

微内核架构在大型前端系统中的应用

架构和框架是独立的,本文仅仅是提出一种架构思路,而且这个架构也在百度的某款用户量很大的复杂前端产品中得以应用。基于这一套弹性架构并结合Vue/React的现代化开发理念,可以很好的完成高复杂度的前端系统。

如何架构一个中后台项目的前端部分?

不管是前端抑或后端,从零开始做一个新项目避免不了技术选型这一块,其应该也是最先需要考虑的内容,之后的一切都会建立在这之上。这篇文章便主要来谈谈在架构一个中后台系统的前端部分上我的实践点。

Vue实战_从目录结构谈可扩展项目架构设计

很多人都会用项目脚手架,也会跑hello world,然后再写写简单的todolist。但是再往下深入就难了。比如很多教程和老师都会说,大家要多问一个为什么。其实我想说多问你妹啊。我都不知道问为什么怎么多问?

微服务架构 VS 单体架构

在软件行业,微服务架构是一种重要的发展趋势。这一趋势,不仅仅是对企业内的IT信息系统建设,甚至在企业向数字化转型方面,都有着深远的影响

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!