
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
软件架构是我们在学习软件编程开发技术的时候需要掌握的编程能力之一,而今天我们就通过案例分析来了解一下,高可用性软件架构都哪些内容。
1、可用性度量和考核
业务可用性:
所谓业务可用性(availability)也即系统正常运行时间的百分比,架构组主要的KPI(KeyPerformanceIndicators,关键业绩指标)。对于我们提供的服务(web,api)来说,现在业界更倾向用N个9来量化可用性,常说的就是类似“4个9(也就是99.99%)”的可用性。
对管理者而言:可用性是产品的整体考核指标。每个工程师而言:使用故障分来考核:
服务级别可用性:
如果是一个分布式架构设计,系统由很多微服务组成,所有的服务可用性不可能都是统一的标准。
为了提高我们服务可用性,我们需要对服务进行分类管理并明确每个服务级别的可用性要求。
2、架构分层设计
架构分层设计如下:按照功能处理顺序划分应用,这是面向业务深度的划分。
每个公司的架构分层可能不一样,但是目的都是为了统一架构术语,方便团队内部沟通。
接入层:主要流量入口,经过简单
应用层:直接对外提供产品功能,例如网站、API接口等。应用层不包含复杂的业务逻辑,只做呈现和转换。
服务层:根据业务领域每个子域单独一个服务,分而治之。
数据层:数据库和NoSQL,文件存储等。
我们先列出目前我们系统有哪些环节,每个环节是否薄弱.客户端访问服务器端,经过很多环节,任何环节出问题,都不能访问:
接入层:
1、dns被劫持:域名是否使用https。
2、黑客攻击:是否有弱密,服务器权限,数据库权限
3、ddos攻击:是否有必要使用高防IP接入流量。
4、CC攻击:免费和收费版域名分开,网关是否有限流和防刷措施。
应用层:
1、应用服务器宕机。
2、应用服务bug。
3、第三方服务不可用。
服务层:
1、服务不可用或者出现bug
2、第三方服务不可用。
数据层:
1、数据库服务器磁盘损坏导致数据库不可用等
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!