zoukankan      html  css  js  c++  java
  • 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上。

  • 相关阅读:
    performance lazy-initialization
    Blazor项目文件分析
    Ubuntu 16.04重启Nautilus
    Ubuntu下查看APT安装的软件安装路径和版本
    Ubuntu 16.04搭建原始Git服务器
    Java原始封装常用HttpRequest
    CentOS 5/6安装后的必备设置(转)
    CentOS通过日志反查入侵(转)
    CentOS下防御或减轻DDoS攻击方法(转)
    通过LoadBalancerClient获取所有服务列表的IP
  • 原文地址:https://www.cnblogs.com/lexiaofei/p/7832803.html
Copyright © 2011-2022 走看看