目录 前言 1. 修改.tars协议文件 1.1 Go语言修改部分 1.2 修改地方的逻辑 1.3 通过协议文件自动生成代码 2. [核心]增添Subset核心功能 2.1 Go语言修改部分 2.2 新增地方的逻辑 3. 添加常量与获取染色key的方法 3.1 Go语言修改部分 3.2 修改地方的逻辑 4. [核心]修改获取服务IP规则 4.1 Go语言修改部分 4.2 修改地方的逻辑 5. 实现透传染色Key功能(客户端) 5.1 Go语言修改部分 5.2 修改地方的逻辑 6. 实现透传染色K…
目录 前言 1. 修改.tars协议文件 1.1 Java源码位置及逻辑分析 1.2 Java语言实现方式 1.3 通过协议文件自动生成代码 1.4 变更代码的路径 2. [核心]增添Subset核心功能 2.1 Java源码位置及逻辑分析 2.2 Java语言实现方式 2.3 变更代码的路径 3. 添加常量与获取染色key的方法 3.1 Java源码位置及逻辑分析 3.2 Java语言实现方式 3.3 变更代码的路径 4.[核心]修改获取服务IP规则 4.1 Java源码位置及逻辑分析 4.2…
目录 前言 1. Subset不是负载均衡 1.1 任务需求 1.2 负载均衡源码结构图 1.3 负载均衡四种调用器 1.4 新增两种负载均衡调用器 1.5 Subset应该是"过滤"节点而不是"选择"节点 2. 从头开始源码分析 2.1 getObjectProxyFactory()源码分析 2.2 updateServantEndpoints()更新服务端节点源码分析 2.3 getServerNodes()获取服务端节点源码分析 2.4 endpoints的格…
目录 前言 1. 任务介绍 2. 测试模拟方案 2.0 *前置工作 2.1 添加路由规则 2.2 添加存活节点 2.3 [输出]遍历输出当前存活节点 2.4 [核心]对存活节点按subset规则过滤 2.5 后续格式化处理 2.6 [输出]输出过滤结果 3. 按比例路由规则 - 单次测试 4. 按比例路由规则 - 多次测试 5. 按参数路由规则测试 6. 按无路由规则测试 最后 前言 本篇为Tars项目上半程编程实践的测试结果,经过上半程的源码学习.编程探索,现已初步实现Subset流量路由的三…
目录 前言 1. SubsetConf配置项的结构 1.1 SubsetConf 1.2 RatioConfig 1.3 KeyConfig 1.4 KeyRoute 1.5 SubsetConf的结构示意图 2. 测试方案设计 2.1 构建前置条件 2.2 调用测试方法 2.3 输出测试结果 3. 按比例路由规则 - 单次测试 4. 按比例路由规则 - 多次测试 5. 按参数路由规则 - 精确匹配测试 6. 按参数路由规则 - 正则匹配测试 7. 无路由规则测试 最后 前言 中期汇报会后,对T…
目录 前言 1. SubsetConf配置项的结构 1.1 SubsetConf 1.2 RatioConfig 1.3 KeyConfig 1.4 KeyRoute 1.5 SubsetConf的结构示意图 2. 过滤节点的方法入口 3. subsetEndpointFilter()方法解析 3.1 方法功能 3.2 方法源码 3.3 方法解析 4. getSubset()方法解析 4.1 方法功能 4.2 方法源码 4.3 方法解析 5. getSubsetConfig()方法解析 5.1…
腾讯犀牛鸟开源人才培养计划Tars实战笔记目录 前言 在2021年夏,笔者参加了腾讯首届开源人才培养计划的Tars项目,负责Subset流量管理规则的Java语言JDK实现.其中写作几篇开源实战笔记,将其总结在以下文章中. 大标题可以跳转至对应博文. 第1篇 Win10下Docker部署TarsJava(SpringBoot)全过程及踩坑记录 相关环境版本 坑点一:VMware与Win10 Docker冲突 坑点二:20.版本TarsJava(SpringBoot)依赖文件缺失 Docker安装…
上一篇中老周给伙伴们介绍了自定义视图搜索路径的方法,本篇咱们扯一下有关 URL 路径规则的名称问题.在扯今天的话题之前,先补充点东东.在上一篇中设置视图搜索路径时用到三个有序参数:{2}{1}{0},分别是 Area.Controller.Action.其中说到几个特殊的视图,如_Layout.cshtml._ViewStart.cshtml等._Layout.cshtml 页默认放在 /Views/Shared 目录下,但,_ViewStart.cshtml 和 _ViewImports.cs…
前言 react-router升级到4之后,跟前面版本比有了很大的差别. 例如包的拆分,动态路由等详细的差别就不说了,各位大神的总结也很到位,详细可以点击看看,All About React Router 4这篇文章. 此外还有个差别是路由规则的变化. 一直有着上个版本的习惯,所以稍微复杂的路由,配起来的时候简直痛不欲生. 痛定思痛,要好好了解下其依赖的匹配规则,即path-to-regexp. 本文期望读者是对react-router有过使用的同学,不然本文省略了太多东西,可能看起来可能有点太…
1.前后台获取Action.Controller.ID名方法 前台页面:ViewContext.RouteData.Values["Action"].ToString(); ViewContext.RouteData.Values["Controller"].ToString(); ViewContext.RouteData.Values["ID"].ToString(); 后台页面:RouteData.GetRequiredString(&qu…