Menu Close

7.5.5.3. 使用 backend-redis 和 system-redis 恢复 3scale 选项

通过恢复 3scale,您将恢复 backend-redissystem-redis。这些组件具有以下功能:

*backend-redis:在 3scale 中支持应用身份验证和速率限制的数据库。它还可用于统计存储和临时作业存储。*system-redis:为 3scale 的后台作业提供临时存储,也用作 system-app pod Ruby 流程的消息总线。

backend-redis 组件

backend-redis 组件有两个数据库,即 数据和 队列。在默认的 3scale 部署中,数据和 队列 部署在 Redis 数据库中,但在不同的逻辑数据库索引 /0/1 中。恢复 数据 数据库不会有任何问题,但恢复 队列 数据库可能会导致重复的作业。

关于作业重复,在 3scale 中,后端 worker 以毫秒为单位处理后台作业。如果 backend-redis 在最后一次数据库快照后 30 秒失败,并且您尝试恢复它,则在 30 秒内发生的后台作业会执行两次,因为后端没有系统来避免重复。

在这种情况下,您必须恢复备份,因为 /0 数据库 索引包含没有在其它任何位置保存的数据。恢复 /0 数据库索引意味着您必须还原 /1 数据库索引,因为一个在没有数据库索引的情况下将无法存储。当您选择在不同的服务器中分隔数据库,而不是在不同的索引中分隔一个数据库时,队列的大小大约为零,因此最好不要恢复备份并丢失几个后台作业。在 3scale 托管设置中会出现这种情况,因此您需要为两者应用不同的备份和恢复策略。

'system-redis'component

大多数 3scale 系统后台作业是幂等的,也就是说,无论您运行它们多少次,相同的请求都会返回相同的结果。

以下是系统中由后台作业处理的事件示例:

  • 通知作业,例如计划试用到期、即将到期的信用卡、激活提醒、计划更改、发票状态更改、PDF 报告.
  • 例如开票和收费.
  • 删除复杂对象。
  • 后端同步作业.
  • 索引作业,例如使用 sphinx。
  • 清理工作,例如发票 ID.
  • Janitorial 任务,如清除审计、用户会话、到期令牌、日志条目、暂停不活动帐户等。
  • 流量更新.
  • 代理配置更改监控和代理部署.
  • 后台注册作业,
  • Zync 作业,如单点登录(SSO)同步、路由创建。

如果您要恢复上述后台作业列表,3scale 的系统会维护每个恢复的作业的状态。在恢复完成后检查系统的完整性非常重要。