agile-proxy v1.0.0 发布!

推荐一款代理程序。开箱即用,二开也十分合适。几乎梭哈了我最近所有的空闲时间,才完成它的第一期开发。项目从最初的构想,逻辑结构的设计,目录结构的规划,开发的编码规范,测试的用例。整个流程下来自认为还是十分用心的。也是自己的一种尝试,接下来就给大家介绍一下具体的使用方法吧!agile-proxy一款灵活,轻量,易于扩展的代理工具。下载https://github.com/fanyiguang/agil

- 阅读全文 -

一个io.copy引发的线上事故案例

背景我们公司里面有一款工具是配合公司主产品使用的。我主要负责这款工具的维护和开发工作,这个工具里面还包含了一个代理程序,这个代理程序也是我这边开发的(主要功能是支持多种代理)。前段时间有家公司向我们反应代理用一段时间后就会断网,需要重启整个工具才能使用。开始我还不在意认为只是偶发的问题,毕竟其他用户都没有反馈这个问题。但是过了一段时间这家公司又来反馈了,还是之前的问题。和用户联系拿到用户的运行环境

- 阅读全文 -

useful-tools - 一个简单轻量的工具箱

今天分享一个自己开发的代理检测,端口检测,dns检测的可视化工具,欢迎大家下载使用。使用中有什么问题或者bug可以在lssues中提出来哈,我会尽快响应。后期还会增加更多的功能到工具中敬请期待。Useful-tools v1.0.0useful-tools 是方便平常开发,测试和运维的小工具集合。下载Useful-tools v1.0.0功能介绍代理检测普通模式支持SOCKS5,SSL,SSH,H

- 阅读全文 -

一个默默付出的GO语言关键字

说起go语言关键字大家第一时间想到的应该是goroutine和channel吧,这两个可以说是go的大杀器了。但在go语言中还有一个家伙也是不可忽视的存在,你知道是谁吗?那便是 SELECT 没有错就是它,它也是CSP模型中一种理念的具体实现。虽然它没有两前者那般的名气但是实力确是不容小觑的,今天我们就来谈谈select的一些巧妙用法吧。第一func main() { go func()

- 阅读全文 -

time.NewTicker()和time.Tick()的区别和用法

相信有很多小伙伴和本人一样刚开始学习GO语言时在使用定时器的时候都会一些疑惑:time.NewTicker() 和 time.Tick()的功能是一样的他们有什么区别呢?什么时候该用time.NewTicker()?什么时候该用time.Tick()?今天就带着大家来一探究竟。使用方式time.NewTicker()ticker := time.NewTicker(time.Second) for

- 阅读全文 -