WebSocket解决方案的一些细节阐述
今天我们来看看WebSocket解决方案的一些细节问题:
实际上,集成WebSocket的方法都有相关的工程挑战,这可能会影响项目成本和交付期限。在最简单的层面上,构建 WebSocket 解决方案似乎是添加接收实时更新功能的前进方向。但是,功能蠕变通常意味着基本的实时体验需要对共享实时体验和协作功能提出额外的要求。
容错
要使系统具有容错能力,它必须针对实例故障甚至数据中心故障进行冗余。这意味着至少在同一区域中的多个可用区之间分配基础结构,并且可能跨多个区域分布基础结构。这一挑战涉及大量的工程和 DevOps 工作以及与基础设施相关的成本。
数据完整性和连接管理
事件驱动的体系结构依赖于事件消息的精确序列,其中没有丢失或排序错误。
如果用户的电源出现故障或网络上出现系统问题,则其连接可能会断开。当用户重新连接时,事件需要从他们断开连接的点开始可用。错过的消息需要传递,而不重复已处理的消息。整个体验需要完全无缝。
有一些真正复杂的工程问题需要解决,以保证排序和恰好一次语义所需的数据完整性。
自行动手的困境
一些组织试图提前发货,将这些难题留待以后使用。但是,如果产品不能满足其创造的需求,那么快速进入市场并获得早期成功可能会弄巧成拙。
另一种方法是尽早进行规模设计,并为未来增长提供可持续的架构。但这种方法可能导致进入市场的延迟,竞争对手可以抓住这一点。另一个常见问题是,原始设计在产品获得足够的市场反馈以了解其发展方向之前,就将重大约束嵌入到产品中。