Easyproxy,简单易用的tcp代理

xsank · · 3267 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

最近工作中遇到了`golang`的项目,稍稍对其产生了点兴趣,打算认真学习下,正巧在搭建`mysql`主备环境的时候发现如果用一个代理程序的话自己测试会方便很多(主要还是为了造轮子),于是这个基于golang的`tcp proxy`项目就产生了 ## 需求 1. 由于是为了学习golang,所以要在实现代理基础功能的前提下尽可能的用到golang的各种基础知识 2. 不可能真单纯的为了玩,学一个东西除了为充实大脑,更为了能有实际用途,所以有必要工程化 3. 程序不要太繁杂,毕竟这是我的第一个`golang`工程,来日方长 ## 设计 结构图如下: ``` +----------+ +------------+ | client |<----+ | | +----------+ +--->+-----+<-------->| server | | | | | +----------+ | | +------------+ | client |<-------->| | +----------+ | | | | +------------+ +----------+ | L | | | | client |<-------->| B |<-------->| server | +----------+ | S | | | | | +------------+ +----------+ | | | client |<-------->| | +----------+ | | +------------+ | | | | +----------+ +--->+-----+<-------->| server | | client |<----+ | | +----------+ +------------+ ``` 最常见的负载均衡模式,但有几个点需要支持: 1. 支持不同的调度策略,如:轮训,随机等 2. 要有心跳检查机制,及时将有问题的后端server剔除,但也要在server恢复的时候恢复过来 3. 有简单的监控,便于查看后端server的代理情况及客户端的连接情况 4. 有简单的配置文件,便于修改 5. ...后续再加... ## 实现 github:[EasyProxy](https://github.com/xsank/EasyProxy) ## 其他 如有问题,欢迎其他喜欢`golang`的小伙伴联系:`xsank#foxmmail.com`

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

3267 次点击  ∙  1 赞  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传