高可用架构设计二

架构高可用遇到的问题

上线发生数据改动,格式和之间不兼容,回滚也不正常,如何处理?

数据库备份。

高可用架构为什么需要分层?

数据层 关系型数据库,NoSQL数据库,缓存。

逻辑层 根据项目相关。

接入层 对外暴露API层(用户身份,数据加密,攻防,提供最原始的数据,美化由前端展示)。

展示层 前端用户展示。

高可用架构分层设计原则是什么?

功能单一(数据,逻辑,接入,展示)、分层间低耦合(接口交互通过rpc框架例如dubbo|dubbox|Thrift|Avro、restfullapi,http )、功能聚焦单一。

分层过多缺点:请求交互路径长,请求响应延迟高,层次多运维成本高,定位问题设计层次多定位复杂。

层次过少:每个层次功能不单一,耦合性高。高可用无法保证。功能相互影响。

高可用架构如何分层?

数据存储和业务逻辑的分层,业务逻辑和接入层逻辑分层,接入层和数据展示层分离。

前段架构分层:mvc|mvcc分成。

后端架构分层

按照功能水平拆分:

四层:

接入层,逻辑层,数据层,数据存储

接入层,逻辑层,原子服务层,数据存储

五层:

接入层、序列化层(异步消息队列,指事务提交的序列化层前段把事务成功提交到队列就行算成功),逻辑层、数据层、数据存储

按照功能垂直拆分:

业务1,业务2,业务3……

高可用架构最佳实践?

业务数据量,请求量快速增长期

引入分层

接入层,逻辑层,数据存储

业务请求高并发,海量存储

每层进一步细化

分布式存储,NoSQL,RDBMS分库分表

业务多,请求多,关系复杂

 服务化

58的实践案例



 

 

 

猜你喜欢

转载自peng4602.iteye.com/blog/2368705