纯配时效服务-双Redis集群设计

京东云开发者
• 阅读 68

作者:京东物流 王运成

一、概述

纯配时效服务作为物流下单环节中计算时效的重要组成部分,直接决定了下单的成功与否。其性能与稳定性至关重要,因为它们直接影响整个物流下单系统的运行效率及客户满意度。一个高效且稳定的纯配时效服务能够确保预计送达时间准确无误地展示给用户,从而提升客户体验和信任度。反之,若纯配时效服务出现故障或延迟,可能会导致订单处理延误,甚至影响客户的业务运营。因此,在设计和维护纯配时效服务时,必须确保其具备高可靠性和快速响应能力,以应对各种突发情况,确保物流链条的顺畅运行。

二、Redis集群模式

为了确保系统的高性能运行,我们摒弃了原先直接从数据库读取数据的模式。取而代之的是,我们将所有数据同步至Redis中,从而使得应用层能够直接从Redis中获取所需数据。这一改进不仅显著提升了数据读取速度,还有效减轻了数据库的负担,使整个系统更加稳定和高效。通过这种方式,我们能够更好地应对高并发访问,确保用户在使用过程中获得流畅的体验。此外,Redis的内存存储特性进一步提升了数据读取速度,增强了系统的响应能力。

纯配核心数据读取示意图

纯配时效服务-双Redis集群设计



三、双Redis集群设计

为了满足容灾需求,应用层采用了有孚和中云信的双机房模式。此种模式确保在一个机房发生故障时,另一个机房能够迅速接管业务,从而保障服务的连续性和稳定性。同样地,为了确保数据的一致性和高可用性,Redis亦需设计为双集群模式。通过在有孚和中云信两地部署Redis集群,可以有效分散风险,即使其中一个集群出现故障,另一个集群仍能正常运行,从而保证系统的整体性能和可靠性。此外,双集群模式还有助于减少正常情况下的跨机房问题,对提升性能亦有裨益。另外还需通过数据同步机制,确保两个集群之间的数据一致性,进一步增强系统的容灾能力和数据安全性。

双Redis集群设计示意图

纯配时效服务-双Redis集群设计

四、双集群设计应对场景

由整体架构设计来说,应用程序依据Redis的数据分离为读写两个部分:JSF接口应用负责数据读取,而数据同步应用则负责数据写入。读写操作分别由这两部分独立控制。

1.JSF接口应用读取场景设计

1)同机房数据访问控制

Redis数据读取层 -> 同机房选择 (有孚机房访问有孚机房Redis集群、中云信机房访问中云信Redis集群)

2)数据访问故障重试控制

Redis数据读取层 -> 同机房选择 -> 数据故障重试(当数据访问失败,自动进行重试,或换机房访问)

3)DUCC人为控制

Redis数据读取层 -> 同机房选择 -> 数据故障重试 -> DUCC控制(通过DUCC由开发人员强制控制集群选择,应对应急故障处理)

2.数据同步应用写入场景设计

1)多场景数据加载设计

全量数据 (确保数据加载完整性)

增量数据(确保数据加载及时性)

指定数据(应对异常数据丢失,快速同步)

2)数据双写控制

Redis数据写入层 -> redis双写控制(对带写入数据进行双redis集群数据同步)

3)数据写入异常处理控制

Redis数据写入层 -> redis双写控制 -> 异常重试监控(对写入失败数据进行重试、排除偶然网络故障导致的失败,如果Redis集群故障,监控报警通知研发人员介入处理)

4)DUCC人为控制

Redis数据写入层 -> -> redis双写控制 -> 异常重试监控 -> DUCC控制(通过DUCC由开发人员强制控制集群选择,应对应急故障处理)

五、具体场景举例

1.当中云信机房偶发短时网络故障

1)JSF接口应用 -> Redis数据读取层 -> 同机房选择 -> 数据故障重试 进行数据重试读取(同机房重试或跨机房重试)数据及时读取

2)数据同步应用 -> Redis数据写入层 -> redis双写控制 -> 异常重试监控 进行数据写入重试,数据正常写入 (Redis双集群 数据一致性不受影响)

2.当中云信机房长时网络或服务故障
1)JSF接口应用 -> Redis数据读取层 -> 同机房选择 -> 数据故障重试 进行数据重试读取(同机房重试或跨机房重试)-> DUCC控制层(强制指定为单读 有孚Redis集群)

2)数据同步应用 -> Redis数据写入层 -> redis双写控制 -> 异常重试监控 (反复重试失败报警通知 研发介入)-> DUCC控制层 (强制指定为单写 有孚Redis集群)

3)中云信Redis集群故障恢复

4)数据同步应用 -> DUCC控制(恢复双集群写入) -> 触发 全量数据 同步 -> 执行完成

5)JSF接口应用 -> DUCC控制(恢复双集群读取)

附录

数据同步简介

纯配时效基础数据的设计采用了软删除机制,这是一种更为灵活和安全的数据管理方式。具体来说,当数据被标记为删除时,实际上只是进行了逻辑上的删除,而不是直接从数据库中物理删除。这种设计的好处在于,如果在删除操作后发现误删或需要恢复数据,可以及时找回,避免了数据的永久丢失。逻辑删除后的数据将在15天后进行物理删除,也就是所谓的结转。这15天的缓冲期为数据恢复提供了充足的时间窗口,同时也确保了系统的数据清理工作能够有序进行。通过这种方式,系统能够在保证数据安全性和完整性的同时,有效地管理数据生命周期。

数据同步设计示意图

纯配时效服务-双Redis集群设计

点赞
收藏
评论区
推荐文章
百万并发场景中倒排索引与位图计算的实践
Promise时效控单系统作为时效域的控制系统,在用户下单前、下单后等多个节点均提供服务,是用户下单黄金链路上的重要节点;控单系统主要逻辑是针对用户请求从规则库中找出符合条件的最优规则,并将该规则的时效控制结果返回客户端。
promise时效架构升级方案的实施及落地 | 京东物流技术团队
一、项目背景为什么需要架构升级promise时效包含两个子系统:内核时效计算系统(系统核心是时效计算)和组件化时效系统(系统核心是复杂业务处理以及多种时效业务聚合,承接结算下单黄金流程流量),后者依赖前者,分别由两组技术团队支持;因为有些业务的渗透造成两个
E小媛同学 E小媛同学
10个月前
快递物流信息订阅与推送API:打造高效的快递物流信息服务
随着电子商务的蓬勃发展,消费者对于快递服务的期待越来越高,他们希望能够实时了解包裹的动态,从发货到送达的每一个环节。为了满足这一需求,快递物流信息订阅与推送API应运而生,它不仅提高了物流效率,还极大地提升了客户体验。本文将探讨如何通过这一技术构建一个高效的快递物流信息服务系统。
京东云开发者 京东云开发者
9个月前
DBCP一个配置,浪费了MySQL 50%的性能!
1.引言研究背景数据库性能的重要性数据库性能优化对于保证应用的响应速度和处理大量数据的能力至关重要。它可以显著减少查询时间,提高事务处理效率,降低硬件成本,并确保系统稳定性与可扩展性。优化后的数据库能够更好地服务于用户需求,增强客户满意度,对企业的长期发展
京东云开发者 京东云开发者
9个月前
百川仓配切量接口成长史
背景百川专项是指物流统一打造企业级能力平台,战略上聚焦纯配、仓配类业务主线,以提升前台业务整体交付吞吐率为核心目标,支撑物流开放领域解决方案和标准产品的快速交付实施。计划以“百川”专项项目为契机,加速推动BP团队将ECLP中各自业务的单据和履约职能整理下沉
京东云开发者 京东云开发者
3个月前
AutoBots在ToB订单履约场景的落地应用
一、工业ToB订单履约AI1.消除多级传递,需求一步解决在工业ToB领域,商品的妥投并非订单流程的终结,直至客户上传必要的关单凭证,订单才真正进入结算环节。这一后置环节对于供应商和客户而言常常充满不确定性。客户关注订单信息和交付时效、物流要打印验收清单等
京东云开发者 京东云开发者
2个月前
【稳定性】稳定性建设之变更管理
作者:京东物流冯志文背景在软件开发和运维领域,变更管理是一个至关重要的环节。无论是对现有系统的改进、功能的增加还是修复漏洞,变更都是不可避免的。这些变更可能涉及到软件代码的修改、配置的调整、服务器的扩容、三方jar包的变更等等。然而,变更的执行过程往往伴随
京东云开发者 京东云开发者
3星期前
库存平台稳定性建设实践
作者:京东物流尹昊喆前言本文总结库存平台稳定性建设中遇到的问题以及解决方案。感谢【金鹏】、【孙静】、【陈瑞】同学在本文撰写中提供的内容及帮助!库存平台面临的稳定性挑战库存平台为货品流通链路提供全面的库存管理服务,贯穿其整个订单生命周期,是电商领域不可或缺的
京东云开发者 京东云开发者
3星期前
MySQL存储引擎及索引简介
作者:京东物流樊芳渝一、引言在信息技术飞速发展的今天,数据库作为信息系统的核心组件,其性能和稳定性直接关系到整个系统的运行效率和用户体验。而MySQL,作为目前最流行的开源关系型数据库管理系统之一,凭借其强大的功能、灵活的扩展性和广泛的应用场景,早已成为众
京东供应链创新与实践:应用数据驱动的库存选品和调拨算法提升履约效率
作者:京东零售康宁轩摘要在电商行业中,供应链管理和履约效率对于确保客户满意度至关重要。京东在这一领域一贯表现出色,得益于完善的物流基础设施,超过90%的自营订单可在24小时内完成履约,这一快速交付承诺显著提升了客户满意度,并使京东在竞争中脱颖而出。今年10