腾讯犀牛鸟开源人才培养计划Tars实战笔记目录


前言

在2021年夏,笔者参加了腾讯首届开源人才培养计划的Tars项目,负责Subset流量管理规则的Java语言JDK实现。其中写作几篇开源实战笔记,将其总结在以下文章中。

大标题可以跳转至对应博文。


第1篇 Win10下Docker部署TarsJava(SpringBoot)全过程及踩坑记录

  • 相关环境版本

    坑点一:VMware与Win10 Docker冲突

    坑点二:20.版本TarsJava(SpringBoot)依赖文件缺失
  • Docker安装

    坑点三:Docker的镜像默认安装在C盘
  • Tars部署

    坑点四:Tars框架MySQL密码错误
  • 代码处理

    坑点五:发布包与服务名不匹配

    坑点六:[alarm] down, server is inactive
  • 接口调试

第2篇 TarsJava SpingBoot启动与负载均衡源码初探

  • Tars客户端启动
  • Communicator通信器
  • 本客户端的负载均衡调用器LoadBalance

第3篇 Tars中期汇报测试文档(Java语言实现Subset路由规则)

  • 任务介绍
  • 测试模拟方案
  • 按比例路由规则 - 单次测试
  • 按比例路由规则 - 多次测试
  • 按参数路由规则测试
  • 按无路由规则测试

第4篇 Subset路由规则业务分析与源码探索

  • Subset不是负载均衡
  • 从头开始源码分析
  • Subset应该添加在哪
  • 总结

第5篇 基于TarsGo Subset路由规则的Java JDK实现方式(上)

  • 修改.tars协议文件
  • 【核心】增添Subset核心功能
  • 添加常量与获取染色key的方法
  • 【核心】修改获取服务IP规则
  • 实现透传染色Key功能(客户端)
  • 实现透传染色Key功能(服务端)
  • 给节点信息增添Subset字段
  • *新增工具类

第6篇 基于TarsGo Subset路由规则的Java JDK实现方式(下)

  • 修改.tars协议文件
  • 【核心】增添Subset核心功能
  • 添加常量与获取染色key的方法
  • 【核心】修改获取服务IP规则
  • 实现透传染色Key功能(客户端)
  • 实现透传染色Key功能(服务端)
  • 给节点信息增添Subset字段
  • *正则算法的实现
  • *添加测试代码

第7篇 TarsJava Subset最终代码的测试方案设计

  • SubsetConf配置项的结构
  • 测试方案设计
  • 按比例路由规则 - 单次测试
  • 按比例路由规则 - 多次测试
  • 按参数路由规则 - 精确匹配测试
  • 按参数路由规则 - 正则匹配测试
  • 无路由规则测试

第8篇 TarsJava Subset最终代码的执行流程与原理分析

  • SubsetConf配置项的结构
  • 过滤节点的方法入口
  • subsetEndpointFilter()方法解析
  • getSubset()方法解析
  • getSubsetConfig()方法解析
  • 按比例路由的findSubet()方法解析
  • 按参数路由的findSubet()方法解析
  • 总结:Subset业务执行流程结构图

最后

新人制作,如有错误,欢迎指出,感激不尽!
欢迎关注公众号,会分享一些更日常的东西!
如需转载,请标注出处!

Tars | 第0篇 腾讯犀牛鸟开源人才培养计划Tars实战笔记目录的更多相关文章

  1. ArcGIS API for JavaScript 4.2学习笔记[0] AJS4.2概述、新特性、未来产品线计划与AJS笔记目录

    放着好好的成熟的AJS 3.19不学,为什么要去碰乳臭未干的AJS 4.2? 4.2全线基础学习请点击[直达] 4.3及更高版本的补充学习请关注我的博客. ArcGIS API for JavaScr ...

  2. 2020腾讯犀牛鸟网络安全T-Star高校挑战赛writeup

    签到 浏览器禁用js,在www目录下有 key 命令执行基础 使用 | 可以执行其他命令,在 ../目录下有 key.php cat 一下读出来 你能爆破吗 一开始随便输了个账号的时候不是这个页面,抓 ...

  3. Tars | 第6篇 基于TarsGo Subset路由规则的Java JDK实现方式(下)

    目录 前言 1. 修改.tars协议文件 1.1 Java源码位置及逻辑分析 1.2 Java语言实现方式 1.3 通过协议文件自动生成代码 1.4 变更代码的路径 2. [核心]增添Subset核心 ...

  4. 使用多种客户端消费WCF RestFul服务(二)——.net4.0篇

    .net 4.0篇 在.net 4.0下面微软并没有提供类似Net.Http的Rest访问组件,而是在codeplex上面提供的WCF REST Starter Kit Preview 2 里面可以找 ...

  5. 【Unity3D技术文档翻译】第1.0篇 AssetBundles

    前言 "Unity圣典"是目前对官方文档翻译比较详细的,然而文档的最新更新日期是2013年,已经远远落后最新版本,参考意义有限.官方文档.脚本手册是学习Unity3D最直接有效的途 ...

  6. Python 全栈开发【第0篇】:目录

    Python 全栈开发[第0篇]:目录   第一阶段:Python 开发入门 Python 全栈开发[第一篇]:计算机原理&Linux系统入门 Python 全栈开发[第二篇]:Python基 ...

  7. 腾讯两大开源项目Tars、TSeer

    6月25日,在LC3(LinuxCon + ContainerCon + CloudOpen)中国2018大会上,腾讯宣布其两大开源项目——RPC开发框架Tars.轻量化名字服务方案TSeer,加入L ...

  8. RHEL7.0 Docker离线安装以及实战笔记

    1.概述 最近在琢磨一个事--在RHEL 7.0系统上离线安装使用Docker.然后配置JAVAEE环境,发布Web服务.在网上查了资料,大多数是在线安装的,其他的要么是环境不同,要么资料包找不到了. ...

  9. MySQL之父造访腾讯云 为腾讯云数据库开源点赞

    近日,技术大牛 MariaDB 公司创始人兼CTO Michael Widenius(又名Monty).MariaDB 基金会主席 Kaj 来到中国,针对MariaDB与腾讯云的技术合作进行回访.去年 ...

随机推荐

  1. docker容器存储

    写在前面 我们在上篇学习了容器网络,对容器网络驱动bridge工作原理做了较为详细的介绍,今天小作文一起看看容器中另一个关键域-存储. 容器的存储可以分为两大类: 一种是与镜像相关的即我们在<d ...

  2. 将MNIST手写数据集转换成图片保存到本地

    # 加载图片 data = tf.keras.datasets.mnist (x_train, y_train), (x_test, y_test) = data.load_data() plt.im ...

  3. 服务器put请求获取不到参数

    问题 put请求参数映射成实体类 而参数似乎接受不到,服务器识别为null 解决 在参数前边加上RequestBody @RequestBody主要用来接收前端传递给后端的json字符串中的数据的(请 ...

  4. DDD领域驱动理解

    在理解领域驱动的时候,网上很多大谈理论的文章,这种对于初学者不是太容易接受.根据我自己的学习经历,建议按照如下几个步骤学习: 粗略的看一遍领域驱动的理论,做到心中有形,知道领域驱动是什么,解决什么问题 ...

  5. 使用Postfix与Dovecot收发电子邮件(物理机虚拟机之间)

    邮件应用协议包括: 简单邮件传输协议(SMTP),用来发送或中转发出的电子邮件,占用tcp 25端口. 第三版邮局协议(POP3),用于将服务器上把邮件存储到本地主机,占用tcp 110端口. 第四版 ...

  6. 从零开始实现简单 RPC 框架 3:配置总线 URL

    URL 的定义 URL 对于大部分程序猿来说都是很熟悉的,其全称是 Uniform Resource Locator (统一资源定位器).它是互联网的统一资源定位标志,也就是指网络地址. 一个标准的 ...

  7. CPU 指令环 ring0,ring1,ring2,ring3

    Intel的CPU将特权级别分为4个级别:RING0,RING1,RING2,RING3. Windows只使用其中的两个级别RING0和RING3,RING0只给操作系统用,RING3谁都能用.如果 ...

  8. SQL 练习5

    查询平均成绩大于等于 60 分的同学的学生编号和学生姓名和平均成绩 SELECT Student.SId,Sname,t.[平均成绩] from Student , (SELECT sid , AVG ...

  9. NOIP 模拟 $16\; \rm God Knows$

    题解 \(by\;zj\varphi\) 对于这道题,不难想到可以用 \(dp\),就是求一个最小权极长上升子序列 设 \(dp_i\) 表示最后一个选 \(i\) 时,覆盖前 \(i\) 条边的最小 ...

  10. docker安装maven私服

    目录 一.nexus3安装 二.创建私服仓库 三.发布jar包到私服 四.引用maven私服jar包 五.参考 一.nexus3安装 1.安装镜像 docker pull sonatype/nexus ...