MST

星途 面试题库

面试题:消息队列在缓存同步中的常见应用场景有哪些

请详细阐述消息队列在缓存同步场景下,一般会在哪些具体业务场景中发挥作用,比如电商场景下的哪些业务模块可能会用到消息队列来实现缓存同步,并说明其工作原理。
46.4万 热度难度
后端开发消息队列

知识考点

AI 面试

面试题答案

一键面试

1. 电商场景下消息队列用于缓存同步的业务场景及原理

商品信息变更场景

  • 业务模块:商品管理模块。当商品的价格、库存、描述等信息发生变更时。
  • 工作原理
    • 商品管理系统在数据库中更新商品信息后,发送一条包含商品变更详情的消息到消息队列,比如将商品ID、新价格、新库存等信息封装成消息。
    • 缓存更新服务监听该消息队列,一旦接收到消息,根据消息中的商品ID从缓存中定位对应的商品缓存数据,并使用新的价格、库存等信息更新缓存,确保缓存中的商品数据与数据库保持一致。这样可以避免因直接更新缓存失败而导致的缓存与数据库数据不一致问题,同时通过异步处理提高系统整体的响应性能。

订单状态变更场景

  • 业务模块:订单管理模块。当订单状态从“已下单”变为“已支付”“已发货”“已完成”等状态变化时。
  • 工作原理
    • 订单系统在数据库中更新订单状态后,向消息队列发送订单状态变更消息,消息内容包含订单ID、新状态等关键信息。
    • 缓存更新服务监听消息队列,收到消息后,根据订单ID找到订单相关的缓存数据(如订单详情页缓存等),并按照新的订单状态更新缓存内容。例如,如果订单状态变为“已发货”,缓存中的订单详情展示会更新为显示发货相关信息,保证用户查询订单状态时,从缓存中获取到的是最新且与数据库一致的数据。

促销活动更新场景

  • 业务模块:促销活动管理模块。当有新的促销活动上线、活动规则变更或活动结束时。
  • 工作原理
    • 促销活动管理系统在数据库记录活动变更后,将活动变更消息发送到消息队列,消息可能包含活动ID、新的活动规则、活动状态等信息。
    • 缓存更新服务监听队列,接收到消息后,根据活动ID查找涉及该促销活动的缓存数据,比如促销活动页面缓存、商品促销标签缓存等,并依据新的活动信息更新缓存,保证用户看到的促销活动信息与实际活动情况同步。

2. 其他常见缓存同步场景及原理

内容管理系统(CMS)内容更新场景

  • 业务模块:内容发布模块。当文章、页面等内容进行新增、修改或删除操作时。
  • 工作原理
    • CMS系统在数据库完成内容变更后,向消息队列发送内容变更消息,消息包含内容ID、变更类型(增、改、删)、新内容(若为修改)等信息。
    • 缓存更新服务监听消息队列,收到消息后,根据内容ID定位对应的缓存数据。若是新增内容,在缓存中添加新内容;若是修改内容,更新缓存中的旧内容;若是删除内容,从缓存中移除该内容相关的缓存数据,确保用户获取的内容信息都是最新的。

用户信息变更场景

  • 业务模块:用户管理模块。当用户的基本信息(如姓名、联系方式)、权限等发生变化时。
  • 工作原理
    • 用户管理系统在数据库更新用户信息后,向消息队列发送用户信息变更消息,消息携带用户ID、变更字段及新值等内容。
    • 缓存更新服务监听消息队列,接收到消息后,依据用户ID查找用户相关的缓存数据(如用户详情缓存、用户权限缓存等),并按照变更信息更新缓存,保证用户在系统各模块获取到的自身信息是最新且与数据库一致的。