可靠性99.999%互联网微服务的架构设计

保姆级教程:在Ubuntu 20.04上搞定pybind11,解决‘找不到头文件’的坑 本文提供了一份详细的Ubuntu 20.04下pybind11配置指南,重点解决常见的'找不到头文件'问题。从环境准备、安装策略到三种专业解决方案(修改CMakeLists.txt、环境变量方案、绝对路径包含),帮助开发者高效搭建C++与Python的桥梁。 阅读详情

 

这个微服务是我负责的某大型app一个重要的微服务,并发量峰值是5000/秒,微服务的信息需要调用外部业务服务器获取信息,且要调用四个外部业务器的接口四次才能返回完整的信息。

 

第一个版本:


由于业务服务器不是我们负责的,对方的研发人员基于一些原因,不愿意提供一个完整信息的接口给我们,因此需要通过四次远程调用接口才能获取到完整信息,可靠性和性能大大打折。

 

为了提供可靠性和性能,增加了一层缓存器,缓存时间为30秒,先从30秒缓存服务器查询,如果没有命中缓存,再去外部业务服务器查询。缓存服务器是公司自研的,实现了在不同机房之间的缓存数据同步。

第二个版本:

 

 

由于缓存的数据生效时长是30秒,当缓存数据失效,查询外部业务服务器也失败或者超时的情况下,这个微服务就挂掉了,研发人员也得背锅了。因此再加多一层永久缓存服务器。每次从外部业务部器查询到数据后,同时把数据保存到30秒缓存服务器和永久缓存服务器,两个缓存服务器的生效时长不一样,一个是30秒,一个是永久。

 

当失败超过50次时,就会使用永久缓存服务器代替30秒缓存服务器,永久缓存服务器的数据是一直不过期,如果长时间使用,会导致查询到的数据不是最新的。因此在后台程序定时去清空失败计数器,当失败计数器为0时,又使用回30秒缓存服务器。


 

上面已经保证了后端的程序高可用性,根据监控数据可靠性达到99.9994%,但是还存在一层容易出问题的地方,就是在手机app与业务服务器之间,可能由于网络原因导致失败或者超时。

该服务是查询界面的模板ID,业务上有几种模板,其中有一种是默认模板。

当app调用业务器超时或者失败的情况,客户端将当做默认模板处理,保证用户可以使用页面的精简功能点。

ArcGIS中的Python入门知识点整理 关于Arcpy大家应该都比较熟悉,Python用的好,数据处理快又好!在ArcGIS中ArcPy是一个以成功的arcgisscripting模块为基础并继承了arcgisscripting功能进而构建而成的站点包。目的是为以实用高效的方式通过Python执行地理数据分析、数据转换、数据管理和地图自动化创建基础。ArcPy提供了丰富纯正的Python体验,具有代码自动完成功能。今天我们就看看关于Arcpy相关处理的使用,通过一些简单代码与大家一起认识Arcpy。 阅读详情

相关推荐

2024高校网络安全管理运维赛题目--复现+题目+wp

官方writeup集思广益比较好的备份。

书山有路勤为径,学海无涯苦作舟 1324

运维常说的 5个9、4个9、3个9 的可靠性,到底是什么???

在系统的高可靠性(也称为可用性,英文描述为HA,High Available)里有个衡量其可靠性的标准——X个9,这个X是代表数字3~5。X个9表示在系统1年时间的使用过程中,系统可以正常使用时间与总时间(1年)之比,我们通过下面的计算来感受下X个9在不同级别的可靠性差异。   3个9:(1-99.9%)*365*24=8.76小时,表示该系统在连续运行1年时间里最多可能的业务中断...

weixin_34050005的博客 3532

1014. 福尔摩斯的约会 (20)-PAT乙级真题

1014. 福尔摩斯的约会 (20) 大侦探福尔摩斯接到一张奇怪的字条:“我们约会吧!3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm”。大侦探很快就明白了,字条上奇怪的乱码实际上就是约会的时间“星期四 14:04”,因为前面两字符串中第1对相同的大写英文字母(大小写有区分)是第4个字母’D’,代表星期四;第2对相同的字符是’

柳婼 の blog 2646

什么是“5个9”(99.999%)的可靠性?

在软件系统的高可靠性(也称为可用性,英文描述为HA,High Available)里有个衡量其可靠性的标准——X个9,这个X是代表数字3~5。X个9表示在软件系统1年时间的使用过程中,系统可以正常使用时间与总时间(1年)之比,我们通过下面的计算来感受下X个9在不同级别的可靠性差异。 3个9:(1-99.9%)*365*24=8.76小时,表示该软件系统在连续运行1年时间里最多可能的业务中断时...

weixin_34123613的博客 822

从零开始:用YOLOv8-Pose实现实时人体姿态检测(附完整代码)

本文提供了一份从零开始的完整实战指南,详细介绍了如何使用YOLOv8-Pose构建实时人体姿态检测系统。内容涵盖环境搭建、数据准备、模型训练与调优,以及高性能部署和进阶应用开发,并附有可直接运行的代码示例,帮助开发者快速掌握Pose Estimation技术并将其应用于实际项目。

h6i7j8的博客 622

Android AVB 分析(十六)5 个例子彻底理解 FEC(Reed-Solomon) 的工作原理

关于 FEC 是如何工作的,一直是我 Android OTA 讨论群中的未解话题,大家基本上都不清楚 Android 上面的 FEC 是如何工作的,为什么在 OTA 升级的最后阶段,FEC 的编码计算会消耗大量的 IO 资源,并持续很长时间。接下来的几篇,我会从一个程序员的角度,演示基于里德所罗门编码的 FEC 到底是如何工作的。

洛奇看世界 669

可用性高达99.999%!支付系统高可用架构设计实战

参考文章:可用性高达99.999%!支付系统高可用架构设计实战 - 腾讯云开发者社区-腾讯云对于互联网应用和企业大型应用而言,多数都尽可能地要求做到7*24小时不间断运行,而要做到完全不间断运行可以说“难于上青天”。为此,对应用可用性程度的衡量标准一般有3个9到5个9。可用性指标计算方式不可用时间(分钟)99.9%0.1%36524*60525.699.99%0.01%36524*6052.5699.999%0.001%36524*605.256对于一个功能和数据量不断增加的应用,要保持比较高的可用性并非易

justlpf的专栏 1495

Mamba-UNet:用于医学图像分割的类似UNet的纯视觉Mamba网络

所提出的Mamba-UNet的架构如图2所示,其灵感来源于UNet [24] 和 Swin-UNet [3]。首先将大小为 H × W × 1 的2D灰度图像分割成类似于ViT和VMamba的块 [5,16],然后转换为维度为 H/4 × W/4 × 16 的1D序列。一个初始的线性嵌入层将特征维度调整为任意大小C。这些块令牌随后通过多个VSS块和块合并层进行处理,以创建分层特征。块合并层负责下采样和维度增加,而VSS块则专注于学习特征表示。

AI浩 7551

HA衡量标准

描述 通俗叫法 可用性级别 年度停机时间 基本可用性 2个9 99% 87.6小时 较高可用性 3个9 99.9% 8.8小时 具有故障自动恢复能力的可用性 4个9 99.99% 53分钟 极高可用性 5个9 99.999% 5分钟  ...

bpb_cx的博客 655

Java中使用工厂模式和策略模式优雅消除if-else语句(UML类图+案例分析)

在最近的后端开发中,多多少少会发现有很多if-else语句,如果条件过多则会造成整体代码看起来非常臃肿。本篇博客汇总了我对工厂模式和策略模式的理解,以及我是如何把它们巧妙运用在实际项目当中的一些技巧进行了分享,如有问题,欢迎评论区讨论!

黄团团的个人博客 2614

u-boot-2014.10移植第22天----添加nand flash命令支持(四)

解决问题:nand0: MTD Erase failure: -5 drivers/mtd/nand/nand_bbt.c文件中初始化bbt/* * Allocate memory (2bit per block) and clear the memory bad block * table. */ this->bbt = kzalloc(len, GFP_

fulinux的博客 3632

java 9 99 999_运维常说的 5个9、4个9、3个9 的可靠性

X个9表示在系统1年时间的使用过程中,系统可以正常使用时间与总时间(1年)之比,我们通过下面的计算来感受下X个9在不同级别的可靠性差异。3个9:(1-99.9%)*365*24=8.76小时,表示该系统在连续运行1年时间里最多可能的业务中断时间是8.76小时。4个9:(1-99.99%)*365*24=0.876小时=52.6分钟,表示该系统在连续运行1年时间里最多可能的业务中断时间是52.6分钟...

weixin_30060575的博客 2112

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

从99.9%到99.999%:永不掉线的CRM架构全解密

摘要: CRM系统宕机对企业造成的损失巨大,2024年全球某SaaS CRM厂商4小时宕机导致12万家企业瘫痪,直接损失超2.3亿美元。CRM高可用面临业务连续性、数据零丢失、复杂一致性等独特挑战,需从流量层、应用层、数据层构建分层防护体系。核心指标包括SLA(99.995%)、RTO(<30秒)、RPO(0)等。关键设计包括:全球DNS调度、无状态化微服务、多可用区部署、分布式数据库(如TiDB)及自动化故障恢复。通过全链路冗余与容灾,实现从99.9%到99.999%的高可用跃升。

从零开始,掌握网络安全。提供全面的网络安全教程、攻防演练技巧和行业动态。 407

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

终极指南:如何构建元宇宙SRE架构——从gh_mirrors/awe/awesome-sre资源库掌握虚拟世界可靠性实践

元宇宙作为下一代互联网形态,其分布式架构的可靠性挑战远超传统系统。本文将通过**gh_mirrors/awe/awesome-sre**项目提供的资源,系统讲解元宇宙SRE(Site Reliability Engineering)的核心实践,帮助新手工程师快速掌握虚拟世界的稳定性保障方法。该项目是一个精心策划的SRE资源集合,包含从文化建设到工具链选择的完整知识体系,特别适合元宇宙场景下的高可用

gitblog_00582的博客 1102

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

什么是微服务?

前言:起初没有意识到自己选了这么一个对自己来说有一些“宏大”的问题,因为里面涉及到好多知识..所以砍了一些内容.. 一、信息技术发展趋势 信息技术发展的三个阶段 信息技术从出现到逐渐成为主流,主要经历了软件、开源、云三个阶段的发展。从软件到开源,再到云,这也是信息技术的发展趋势。 1. 软件改变世界 纵观人类社会漫长的发展历史,农耕时代、工业时代与信息时代可谓是明显的三个分水岭,...

GarfieldEr007的专栏 825

【云原生技术】谈谈你对微服务的理解

分布式服务架构是一种粗粒度、松耦合的服务架构,服务之间通过简单、精确定义的接口进行通信,不涉及底层编程接口和通信模型。微服务的基本思想:在于围绕业务领域来创建应用服务,微服务的重点是业务系统要彻底组件化和服务化,这些服务之间相互协调与配合,它们可以独立的进行开发、部署和运维。...

天天新知 1952

农行微服务预约有什么用_什么是微服务?

前言:起初没有意识到自己选了这么一个对自己来说有一些“宏大”的问题,因为里面涉及到好多知识..所以砍了一些内容..一、信息技术发展趋势信息技术发展的三个阶段信息技术从出现到逐渐成为主流,主要经历了软件、开源、云三个阶段的发展。从软件到开源,再到云,这也是信息技术的发展趋势。1. 软件改变世界纵观人类社会漫长的发展历史,农耕时代、工业时代与信息时代可谓是明显的三个分水岭,每个时代都会出现很多新兴的领...

weixin_36249804的博客 906

网络可靠性的定义与核心要素

网络可靠性(Network Reliability)是指网络系统在特定时间范围内持续提供稳定、无中断、符合预期性能的服务能力。其核心目标是确保数据能够准确、完整、及时地传输,即使在部分故障或异常情况下仍能维持基本功能。

A2321161581的博客 1198

什么是微服务

什么是微服务一、信息技术发展趋势信息技术发展的三个阶段1. 软件改变世界2. 开源改变软件3. 云吞噬开源互联网架构的核心问题1. 海量用户2. 产品迅速迭代3. 7x24 小时不间断服务4. 流量突增5. 业务组合复杂二、什么是微服务架构的演变1. 单体架构2. 分布式架构3. 微服务架构4. Serverless 架构微服务定义 一、信息技术发展趋势 信息技术发展的三个阶段 信息技术从出现到逐渐成为主流,主要经历了软件、开源、云三个阶段的发展。从软件到开源,再到云,这也是信息技术的发展趋势。 1. 软件

Seven的博客 332

微服务初识

前排提醒,这是一篇转载文章仅用于学习使用。原文地址:https://www.wmyskxz.com/2019/06/07/shi-me-shi-wei-fu-wu/ 一、信息技术发展趋势 信息技术发展的三个阶段 信息技术从出现到逐渐成为主流,主要经历了软件、开源、云三个阶段的发展。从软件到开源,再到云,这也是信息技术的发展趋势。 1. 软件改变世界 纵观人类社会漫长的发展历史,农耕时代、工...

橘嘉禾 48

什么是微服务_什么是微服务?

前言:起初没有意识到自己选了这么一个对自己来说有一些“宏大”的问题,因为里面涉及到好多知识..所以砍了一些内容..一、信息技术发展趋势信息技术发展的三个阶段信息技术从出现到逐渐成为主流,主要经历了软件、开源、云三个阶段的发展。从软件到开源,再到云,这也是信息技术的发展趋势。1. 软件改变世界纵观人类社会漫长的发展历史,农耕时代、工业时代与信息时代可谓是明显的三个分水岭,每个时代都会出现很多新兴的领...

weixin_39602637的博客 147

restapi是什么意思_什么是微服务?

开门见山,“宏大”的问题简单说。01信息技术发展趋势信息技术发展的三个阶段信息技术从出现到逐渐成为主流,主要经历了软件、开源、云三个阶段的发展。从软件到开源,再到云,这也是信息技术的发展趋势。1. 软件改变世界纵观人类社会漫长的发展历史,农耕时代、工业时代与信息时代可谓是明显的三个分水岭,每个时代都会出现很多新兴的领域,作为信息时代最重要的载体,互联网越来越成为当今社会关注的焦点,互联网...

weixin_29735807的博客 463

SRE 心里话:要求 100% 服务可用性就是老板的无知

不可能有 100% 的服务可用性,也没有必要做到 100% 的服务可用性。如何度量风险,如何制定 SLO,如何提升稳定性,如何权衡成本和产出

n9ecommunity的博客 218

微服务架构设计 - 封底估算

本文介绍了系统设计中关键的封底估算方法,通过三大基础数据(2的幂、操作耗时、可用性SLA)和四步方法论(明确假设、估算QPS、存储与带宽、资源验证),帮助架构师快速评估系统规模。以设计推特X系统为例,从1.5亿日活用户出发,推算出70万读取QPS、55PB存储需求和560Gbps峰值带宽,得出必须采用多级缓存、分布式存储和CDN的架构决策。这种估算能力能帮助工程师在设计初期就把握系统关键指标,避免后续重大架构偏差。

Hernon的博客 926
上一篇: 微信、陌陌等著名IM软件设计架构详解
下一篇: 煮酒论测试用例评审
ChainCode
ChainCode 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄11年 115粉丝 51原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值