高可用架构设计二
架构高可用遇到的问题
上线发生数据改动,格式和之间不兼容,回滚也不正常,如何处理?
数据库备份。
高可用架构为什么需要分层?
数据层 关系型数据库,NoSQL数据库,缓存。
逻辑层 根据项目相关。
接入层 对外暴露API层(用户身份,数据加密,攻防,提供最原始的数据,美化由前端展示)。
展示层 前端用户展示。
高可用架构分层设计原则是什么?
功能单一(数据,逻辑,接入,展示)、分层间低耦合(接口交互通过rpc框架例如dubbo|dubbox|Thrift|Avro、restfullapi,http )、功能聚焦单一。
分层过多缺点:请求交互路径长,请求响应延迟高,层次多运维成本高,定位问题设计层次多定位复杂。
层次过少:每个层次功能不单一,耦合性高。高可用无法保证。功能相互影响。
高可用架构如何分层?
数据存储和业务逻辑的分层,业务逻辑和接入层逻辑分层,接入层和数据展示层分离。
前段架构分层:mvc|mvcc分成。
后端架构分层
按照功能水平拆分:
四层:
接入层,逻辑层,数据层,数据存储
接入层,逻辑层,原子服务层,数据存储
五层:
接入层、序列化层(异步消息队列,指事务提交的序列化层前段把事务成功提交到队列就行算成功),逻辑层、数据层、数据存储
按照功能垂直拆分:
业务1,业务2,业务3……
高可用架构最佳实践?
业务数据量,请求量快速增长期
引入分层
接入层,逻辑层,数据存储
业务请求高并发,海量存储
每层进一步细化
分布式存储,NoSQL,RDBMS分库分表
业务多,请求多,关系复杂
服务化
58的实践案例