首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

tproxy做TCP转发,代理Mysql还挺好用的

最近一直在忙,完全没时间去学习其他的东西,每天不是在写bug,就是在改bug。本来就是忙了,以前的老系统都出来一个不知道什么原因的Bug

由于该功能的相关开发早就走了。关于这个问题,业务那边也是反复分析过,未能找到原因。最后没办法找到我这里来,让帮忙看看,我对其中的逻辑并不了解,那么就代码跑起来,跟一下吧。这时候,发现,UAT数据库在本地无法连接了。只能通过跳板机,去找网络求求情,被无情拒绝,因为不合规,总之,有很多历史原因和规定在其中。这时候,就想着,能不能把端口找其他的测试服务器代理一下呢?

在以前,代理TCP,一般也是用Nginx,在nginx.conf加入如下配置:

然后nginx -s reload即可代理。

我就去测试环境找了一下Nginx,但是,我们这边很多nginx都没装Stream模块,没办法转发。如果想到用Nginx,那么就要去重新加载Stream模块,编译安装时带 –with-stream –with-stream_ssl_module 参数,然后重新编译,修改nginx.conf中的配置,也是有点麻烦。最后找到了大佬开源的tproxy项目,直接下载二进制,执行一行代码即可代理成功

然后,嗖嗖嗖,一番debug后得以解决。

问题是解决,接下来,我们再来看看tproxy是个啥?有哪些使用场景?怎么用?

介绍

tproxy是万俊峰大佬基于Golang开发且开源的一个定位用于用于代理和分析TCP连接的cli工具。

开源地址:https://github.com/kevwan/tproxy.git

使用场景:

分析 gRPC 连接何时连接、何时重连

分析 MySQL 连接池,当前多少连接,连接的生命周期是什么策略

也可以用来观察和分析任何 TCP 连接

用法示例分析 gRPC 连接

侦听在 localhost 和 8088 端口

重定向请求到localhost:8081

识别数据包格式为 gRPC

数据包延迟100毫秒

分析 MySQL 连接

查看网络状况(重传率和RTT)

查看连接池(总连接数、最大并发连接数、最长生命周期等)

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OJayuCsbLvLnlLqu_AwlbHOA0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券
http://www.vxiaotou.com