api-gateway实践(14)前端签名密钥和后端签名密钥

本文介绍了一种前后端签名密钥的管理系统,包括密钥的缓存管理、绑定、解绑和重置等操作流程。前端签名密钥可以绑定到开发者多个服务实例,而后端签名密钥则能绑定到同一租户的多个版本上。

 


1、前端签名密钥

1.1、缓存管理
初始:engine初始的时候,从redis拉取全部前端绑定关系到engine缓存。
新增/绑定:绑定签名密钥和服务实例,同时缓存该关系到redis,同时缓存到engine缓存。
解绑:删除和服务实例的绑定关系,去掉redis中的相应缓存内容,同时从engine缓存去掉相应缓存内容。
重置:重新生成secret,重新缓存该关系到redis,同时缓存到engine缓存。

1.2、绑定到服务实例
一个签名密钥可以绑定到该开发者的多个服务实例上去?
网关根据 devClientKey + versionId 换取 DevClientSecret + instId + DevClientId + OwnerId + OwnerName,
对于同一个versionId,系统不允许申请两个服务实例,所以一个签名密钥可以对应多个服务实例,不会混淆。

2、后端签名密钥

2.1、缓存管理
新增:后端签名密钥新建保存后,会缓存到redis,发一个消息,同步到engine缓存。
初始:engine初始的时候,从redis拉取全部后端绑定关系到engine缓存。
绑定:version维护(新建、编辑)时,建立绑定关系(到数据库)。其实,svcClientKey是version的一个属性。
version发布时,绑定关系随着version缓存到redis。
解绑:version维护要先下线,version下线后修改绑定的后端密钥,绑定关系可随下次上线重新缓存。
重置:后端签名密钥重置,仅仅修改后端签名密钥的缓存,发布一个消息,同步到engine缓存。

总结:绑定和解绑是对version数据的操作,version只记录svcClientKey,没有缓存到engine缓存。

2.2、绑定到服务实例

后端签名密钥可以绑定到同一个租户的多个version上。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值