业务开发转基础开发,这三种 “高可用” 架构你会么?

栏目: 后端 · 发布时间: 5年前

内容简介:一种将后台开发细分的方式:前台开发(业务)、中台开发(中间件、应用基础服务、PAAS服务、IAAS服务)、后台开发(运维开发)。一般前台开发对应于业务开发,中台开发对应基础开发,后台开发对应运维。基础开发的目标是解决业务的公共痛点,所以一般数据量、并发量大于业务。就美团来说,一般的基础服务日调用量在十亿到千亿。因此,高并发、高可用是常规话题。多租户技术(Multi-tenancy Technology),或称多重租赁技术,是一种软件架构技术。它是在探讨与实现如何在多用户公用相同的系统或组件时,仍可确保各用户

一、业务开发与基础开发的区别

- 划分方式

一种将后台开发细分的方式:前台开发(业务)、中台开发(中间件、应用基础服务、PAAS服务、IAAS服务)、后台开发(运维开发)。一般前台开发对应于业务开发,中台开发对应基础开发,后台开发对应运维。

- 规模

基础开发的目标是解决业务的公共痛点,所以一般数据量、并发量大于业务。就美团来说,一般的基础服务日调用量在十亿到千亿。因此,高并发、高可用是常规话题。

二、三种高可用架构

- 多租户集群架构

定义:

多租户技术(Multi-tenancy Technology),或称多重租赁技术,是一种软件架构技术。它是在探讨与实现如何在多用户公用相同的系统或组件时,仍可确保各用户间的数据隔离性。

目标:

按照业务情况分为不同租户,单个租户出现问题,不会影响其他租户。

关键功能模块:

  • 租户管理

  • 权限管理

  • 资源管理

应用举例:

    《美团分布式服务通信框架及服务治理系统OCTO》 里使用appkey作为租户、权限和资源划分的依据来实现多租户集群管理。各个公司自己的Kafka集群也是根据接入业务实现了多租户集群管理。

- 应用熔断架构

目标:

针对混合使用集群,单个应用的问题可能拖垮整个集群,单个服务异常情况下,提供熔断机制,不会由于单个应用影响整个集群的问题。

常用熔断条件:

  • 线程数过高

熔断原因:由于容器化技术的广泛流行,CPU超售普遍存在。一个业务的异常线程会影响其他业务。

  • 大量慢查询

熔断原因:在集中式ES集群、 Redis 集群等场景,由于存在连接数资源共享,一个业务的慢查询会阻塞其他业务。

  • 调用量异常

熔断原因:在同步调用时,每个调用都不释放线程,等待结果返回。一个业务的调用量异常可能会拖垮整个集群。

- 立体监控架构

黑天鹅现象:

非常难以预测的罕见现象,通常会引起连锁负面反应甚至颠覆。

目标:

为了从海量监控、报警风暴数据中找到产生影响的「黑天鹅」,立体监控应任而生。

特点:

  • 多维数据模型

  • 在多维度上灵活查询

  • 多种可视化图表及仪表盘支持

三、总结

亲身经历是教育的最好形式。

相关阅读:

程序常用的设计技巧

到底多大才算高并发?

美团分布式服务通信框架及服务治理系统OCTO

学会用数据说话-分布式锁究竟可以多少并发?

大话高可用


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

JavaScript Patterns

JavaScript Patterns

Stoyan Stefanov / O'Reilly Media, Inc. / 2010-09-21 / USD 29.99

What's the best approach for developing an application with JavaScript? This book helps you answer that question with numerous JavaScript coding patterns and best practices. If you're an experienced d......一起来看看 《JavaScript Patterns》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换