api-gateway实践(05)新网关工作 - 缓存定义
一、缓存分类
1、服务注册信息
1.1、【GroupCode_VersionCode】对应【Version定义】的缓存

缓存类型:hash
缓存key:API:GrpVer:groupCode_VersionCode
缓存val: version定义
使用方式:String versionId = jedis.hget(RedisCachePrefix.getApiGrpVerKey(groupCode, versionCode), "id");
更新场景:version上线, version下线修改后重新上线,version下线(王静)
引擎缓存:无缓存,无监听
1.2、API 定义:API:ApiDef_
缓存名称:
缓存类型:
缓存格式:api定义列表
初始时机:version上线
更新时机:version下线才能更新
销毁时机:version下线
引擎缓存:有,订阅 [apigateway.apis:online,offline] 事件
1.3、后端签名密钥:API:BckKey_
缓存名称:
缓存类型:
缓存格式:< SvcClientKey,"SvcClientSecret:SvcClientId:OwnerId:OwnerName" >
初始时机:后端签名密钥创建
更新时机:后端签名密钥重置
销毁时机:无
引擎缓存:无
2、服务使用信息
2.1、前端签名密钥:API:FrtKey_
缓存名称:
缓存类型:
缓存格式:< DevClientKey_VersionId,"DevClientSecret:InstId:DevClientId:OwnerId:OwnerName" > ,绑定、解绑刷新
初始时机:前端签名密钥绑定
更新时机:前端签名密钥重置
销毁时机:服务使用实例回收,回收时删除服务使用实例,(周鲁,遍历解除绑定,干掉绑定缓存)
引擎缓存:无
2.2、服务使用策略:API:InstPol_
缓存名称:
缓存类型:
缓存格式:<InstId_ApiId_Policy, Map<策略Key,策略Val> >

初始时机:服务使用申请审核、服务使用升级申请审核时,缓存服务使用策略
更新时机:升级申请审批的时候,更新服务使用实例,同步刷新缓存数据
销毁时机:服务使用实例回收
引擎缓存:无
3、网关运行期缓存(引擎自维护)
3.1、请求随机数(nonce):API:ChkNon_
缓存名称:
缓存类型:
缓存格式:<api_nonceid, "" >
初始时机:该请求第一次访问
更新时机:无
销毁时机:目前每分钟自动销毁,有效期可配置(启庆)
引擎缓存:无
3.2、API访问频次:API:ChkFrq_

初始时机:该API第一次访问
更新时机:该API每次访问
销毁时机:无
引擎缓存:无
3.3、配额检查:API:ChkQut_

初始时机:该API第一次访问
更新时机:该API每次访问
销毁时机:无
引擎缓存:无
二、缓存刷新
1、版本管理
1.1、版本上线
配置中心:缓存 version定义、api定义
网关引擎:订阅更新 本地的version定义和api定义缓存(骞骞验证一下)
1.2、版本下线
配置中心:干掉version定义、api定义缓存
网关引擎:订阅更新,干掉本地的version定义和api定义缓存(骞骞验证一下)
2、后端密钥管理
2.1、后端密钥创建
配置中心:缓存后端密钥
网关引擎:无缓存,不需要动作
2.2、后端密钥绑定
配置中心: version需要先下线再上线,所以绑定关系会随版本重新上线刷新
网关引擎:无缓存,不需要动作
2.3、后端密钥解绑
配置中心:version需要先下线再上线,所以绑定关系会随版本重新上线销毁
网关引擎:无缓存,不需要动作
3、审批申请
3.1、审批使用申请
配置中心:产生服务使用实例,刷新策略缓存
网关引擎:无缓存,不需要动作
3.2、审批使用升级申请
配置中心:更新服务使用实例,刷新策略缓存
网关引擎:无缓存,不需要动作
3.3、回收服务使用实例
配置中心:去掉前端密钥缓存、服务使用实例缓存(包括svcUserId)
网关引擎:无缓存
4、前端密钥管理
4.1、前端密钥创建
配置中心:无缓存动作
网关引擎:无缓存
4.2、前端密钥绑定
配置中心:增加前端密钥缓存
网关引擎:无缓存
4.3、前端密钥解绑
配置中心:去掉前端密钥缓存
网关引擎:无缓存
5、一键刷新
配置中心:一键刷新,刷新所有的缓存,发布【apigateway.refreshAll】事件
网关引擎:刷新网关本地缓存
api-gateway实践(05)新网关工作 - 缓存定义的更多相关文章
- .net core 微服务之Api网关(Api Gateway)
原文:.net core 微服务之Api网关(Api Gateway) 微服务网关目录 1. 微服务引子 2.使用Nginx作为api网关 3.自创api网关(重复轮子) 3.1.构建初始化 3.2. ...
- 分享一个国内首个企业级开源的GO语言网关--GoKu API Gateway
一. 简介 GoKu API Gateway,中文名:悟空API网关,是国内首个开源go语言API网关,帮助企业进行API服务治理与API性能安全维护,为企业数字化赋能. GoKu API Gatew ...
- 微服务实战(二):使用API Gateway
微服务实战(一):微服务架构的优势与不足 微服务实战(二):使用API Gateway 微服务实战(三):深入微服务架构的进程间通信 微服务实战(四):服务发现的可行方案以及实践案例 微服务实践(五) ...
- [转载] 构建微服务:使用API Gateway
原文: http://mp.weixin.qq.com/s?__biz=MzA5OTAyNzQ2OA==&mid=206889381&idx=1&sn=478ccb35294c ...
- 微服务实战-使用API Gateway
当你决定将应用作为一组微服务时,需要决定应用客户端如何与微服务交互.在单体式程序中,通常只有一组冗余的或者负载均衡的服务提供点.在微服务架构中,每一个微服务暴露一组细粒度的服务提供点.在本篇文章中,我 ...
- 使用API Gateway
http://dockone.io/article/482 [编者的话]本系列的第一篇介绍了微服务架构模式.它讨论了采用微服务的优点和缺点,除了一些复杂的微服务,这种模式还是复杂应用的理想选择. Do ...
- 微服务实战(二):使用API Gateway - DockOne.io
原文:微服务实战(二):使用API Gateway - DockOne.io [编者的话]本系列的第一篇介绍了微服务架构模式.它讨论了采用微服务的优点和缺点,除了一些复杂的微服务,这种模式还是复杂应用 ...
- 谈谈微服务中的 API 网关(API Gateway)
前言 又是很久没写博客了,最近一段时间换了新工作,比较忙,所以没有抽出来太多的时间写给关注我的粉丝写一些干货了,就有人问我怎么最近没有更新博客了,在这里给大家抱歉. 那么,在本篇文章中,我们就一起来探 ...
- 微服务中的 API 网关(API Gateway)
API 网关(API Gateway)提供高性能.高可用的 API 托管服务,帮助用户对外开放其部署在 ECS.容器服务等云产品上的应用,提供完整的 API 发布.管理.维护生命周期管理.用户只需进行 ...
随机推荐
- Cassandra配置多节点集群以及使用雅虎YCSB压测Cassandra 3.11
这几天在搭Cassandra集群以及对Cassandra的性能测试,步骤还挺多,记录一下. 关于Caaandra在服务器上配置多节点集群,可以参考一下文章: http://blog.csdn.net/ ...
- 去除IE10自带的清除按钮
最近在工作中碰到了一个问题,原本在IE8,IE9下正常的input表单,在IE10下会出现清除按钮,即表单右侧会出现一个可以清除该表单内容的小叉.由于之前一直没有兼容过IE10,所以我专门搜了下原因. ...
- C#多线程编程(7)--锁
一提到线程同步,就会提到锁,作为线程同步的手段之一,锁总是饱受质疑.一方面锁的使用很简单,只要在代码不想被重入的地方(多个线程同时执行的地方)加上锁,就可以保证无论何时,该段代码最多有一个线程在执行: ...
- Maven 手动添加selenium JAR 包到本地仓库
安装Maven后我们会在用户目录下发现.m2 文件夹.默认情况下,该文件夹下放置了Maven本地仓库.m2/repository. 在intellij中创建maven项目时,添加 selenium 依 ...
- font awesome矢量图标框架
一.font awesome简介 目前图标总数共有519个; 不依赖Javascript 矢量图形,无限缩放 免费,可用于商业 CSS控制样式,自定义图标颜色,大小,阴影,一切可能实现的效果 支持re ...
- ASP.NET部分代码示例
using System; using System.Collections.Generic; using Model; using System.Data; using System.Data.Sq ...
- [C#]基于命名管道的一对多进程间通讯
在工作中碰到了一个进程间通讯的问题,大概是这样的: 项目本身是.net Core做的,但是有部分功能Core中不方便实现,有的是依赖Framework,有的是因为权限和安全问题. 那基于这个问题,问了 ...
- 微信公众号开发,weUi组件,问题总结
1.实现上拉分页,Google兼容问题,weui框架提供的模板是这样的($(document.body).infinite()),在body定一个div通过这个div,实现上拉 $('#wrapper ...
- 第八届蓝桥杯B组java第四题
标题:取数位 求1个整数的第k位数字有很多种方法.以下的方法就是一种.对于题目中的测试数据,应该打印5.请仔细分析源码,并补充划线部分所缺少的代码.注意:只提交缺失的代码,不要填写任何已有内容或说明性 ...
- MYSQL数据库学习七 视图的操作
7.1 视图 视图使程序员只关心感兴趣的某些特定数据和他们所负责的特定任务.提高了数据库中数据的安全性. 视图的特点如下: 视图的列可以来自不同的表,是表的抽象和在逻辑意义上建立的新关系. 视图是由基 ...
