自学内容网 自学内容网

【前端数据层高可用架构】

前端数据层高可用架构

前后端架构模式如下图
在这里插入图片描述
在这个架构下,客端数据可用率计算方式:
在这里插入图片描述

因此整体数据可用性分析表如下:
工况BFF 工作正常BFF 工作异常客端网络正常数据可用数据不可用客端网络异常数据不可用数据不可用

只有在客端和 BFF 都正常的情况下数据才能可用,而这种情况占比不是很高,因此整体的用户体验就不是很好。

本次建设目标

本文的设计方案就是要解决这个问题,确保在目标链路上达成如下可用性:
在这里插入图片描述

前端架构设计方案

整体策略:DataDriven + OfflineFirst。

MVI 架构模式

当代最流行的客端程序架构方式,在 MVVM 基础至上演进而来,解决了 MVVM 数据追踪困难的问题,同时在 MVVM 的基础至上大大提升了架构的可测试性和可维护性。
在这里插入图片描述
在这个思想和架构之下,UI 作为用户交互门户,它的形式化表达如下:
在这里插入图片描述

什么是 DataDriven

数据在当代业务中的地位是十分重要的,客端程序作为接触用户的门户和唯一入口,数据在后台扮演决定性作用。
从某种程度上讲,客端程序可以用如下公式来表达:
在这里插入图片描述
app 的本质就是将企业的运营数据展示给用户,并且接受用户的交互来实时更新数据。
在这个抽象前提之下,数据启动(DataDriven)的架构设计思路就应运而生了。
DataDriven 的设计核心就是 app 总是展示能够获取到的最新数据,当数据有变更的时候,及时刷新数据展示给用户。

什么是 OfflineFirst?

移动设备网络的可用性并不一定总是能得到保证。设备往往免不了会遇到网络连接不稳定或速度缓慢的问题。用户也可能会遇到以下情况:
1.互联网带宽有限;
2.连接短暂中断,例如在电梯或隧道中;
3.偶尔才能访问数据。例如,使用的平板电脑仅支持 Wi-Fi 连接。
不管原因如何,应用通常可以在上述情况下正常运行。
为了确保应用可在离线状态下正常运行,它应该具备以下能力:
1.在没有可靠网络连接的情况下仍可使用;
2.立即向用户提供本地数据,而不是等待第一次网络调用完成或失败;
3.提取数据的方式考虑到电池和数据状态。例如,仅在理想情况下(例如充电或有 Wi-Fi 连接时)请求提取数据。
满足上述标准的应用通常称为离线优先(OfflineFirst)应用。

方案整体设计

OfflineFist 策略确保任何时候用户都能看到数据,而不是一个错误提示或者无数据界面。
Data Driven 策略确保界面总是展示最新的数据,当后台有数据更新的时候,会及时通过该机制通知上层业务进行界面或者逻辑更新。
OfflineFirst + DataDriven 的客户端架构整体示意图如下:
在这里插入图片描述
整体方案分为 4 部分
1.data flow:可监听的、可更新的、持续的、响应式的数据流,上层业务通过这个流来获取、感知底层数据变化
2.repository:负责策略的调度,和最终数据的提供,是数据层的门户入口
3.local data source:本地数据源,负责缓存数据到本地,并且提供数据给 repository,以供外部访问
4.net data source:网络数据源,负责拉取网络远端数据,并且提供数据给 repository,以便 repository 将数据更新到 local data source 并且更新到业务层

值得注意的是:
1.data 层会存在多个 repository,每一个 repository 负责一部分高度内聚的数据,多个 repository 将数据管理分散开

2.每一个 repository 背后至少有一个 data source,可以是 local 也可以是 net

3.repository 和 data source 都可以嵌套使用,比如 repository 内部可以包含其他 repository,data source 内部可以包含其他的 data source,但是 data source 内部不能包含任何 repository

下面分别详细说明几个部分的设计。


原文地址:https://blog.csdn.net/adayabetter/article/details/140496949

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!