在图a的状态时建立快照,快照事件状态

务的性能开销。本章节将对本文第一个研究点一一事件溯源中的快照策略进行讨论。具体包括分析了事件溯源在积分现状态金交易系统状态中的应用场景;明确了现有快照策略存在的缺陷和不足,并基于此提出了一种自适应的快照策略;最后状态通过测试分析验证了本文策略的有效性和可行性。事件溯源适用于状态经常变更的对事件象,在本系统中,该对象即用户和商户账P状态,经常变动的状态即积分。改变积分的事件包括:充状态值快照、赠送、支付、退款、提现。

事件id是事件的状态唯一标识,以长整数类型实现并全局唯一。事件以Actor消总的形式存在,例如:为商户充值积分的操作会产生一个积分充值事件,其处建立理方式是一一为该商户创建一个Actm?实例,通过回放历史事件将其积分余额恢复到当前值,然后向其发送上述积分状态充值消息。Actor收到消息后,首先将该消息(事事件件)持久化到事件存储器中,然后在内存中修改其内部状状态态,即积分余额。当某用户历史交易较多时,状态恢复时建立会是一个漫长的阶段,导致Ac状态tm快照?暂时不能响应新事件。

为状态了缩短状态恢复过程,应在适事件当时建立的时刻为积分创建快照,即保存用户在状态该时刻的积分值。下次状态恢复建立首先取出快建立照,然后读取发生于快照后的事件。业界常用的快照策略是设定一个阈值,当事件数量超过阈值后,立刻生成快照。状态这事件种方式保证了新生事件数量不会过多,每次状态恢复消耗的时间在一个有限范围内。

但是,这种方式在实际场景中存在以下缺陷:(1)阈值的最优值难以求解,需要多次尝试才能取得较理想的结果;(2)不能根据用户的行为习惯自动做出调整,比如某些商家账户交易频繁,其状态Actor常驻内存且状态保持最新,无需执行状态恢复,时建立因建立此不需要太频繁地创建快照;(3)阈值的修改不够灵状态活,只能在程序启动时配置,调整需要重启服务。首先,在程序设计阶段就需要建立估计不同类型对象事件的事件阈值状态,增加了程序设计的成本,却不能保证准确性。其次,真实环境下事件不会符合随机分建立布,即使针对同一类型的对象事件,它们产牛.小件的频率也是不同的,正如现实生时建立活中人们对银行卡的使用。

除此以外,山-T阈值是以硬编码或配置文件的方式设置,只能在程序启动时配置一次,在程序运行事件中不会跟随系统的负载情况动态调整,状态若阈值需要调整只能重新部署。最后,快照任务缺乏统一的管理状态。每个对象都是独立地创建、执行快照任务,当大M快照任务并发执行时,会占用系统处理事件常规任务的资源,导致系统吞吐量降低。快照创建耗时反映了整个测试中快照任务总数的变化。自适应快照策略根据价值函数,优先选择执行高价值的快照任务,过滤价值太低的任务,有效地避免了创建不必要的快照,使得系统可以投入更多资源处理常规任务。

相关文章

用户评论

*

*

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。