前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用Go 写了个负载均衡器

用Go 写了个负载均衡器

作者头像
砸漏
发布2020-10-16 15:58:39
8770
发布2020-10-16 15:58:39
举报
文章被收录于专栏:恩蓝脚本

Feature:

  • 支持多 LB 实例,动态创建、停止、开启实例
  • 动态配置,增删 server,升级后端服务无需重启(像 nginx -s reload 虽然无服务中断,但也重启了进程)
  • 被动健康检查
  • SSL 卸载
  • 更多的统计信息 http status/path/method/bytes
  • 支持一致性哈希
  • 支持 Nginx 中更为均衡平滑的 roundrobin

组态

配置指定控制器侦听127.0.0.1:6587,并使用默认的roundrobin方法定义包含两个服务器的虚拟服务器

脚步

  • 1号航站楼:?make run
  • 2号航站楼:?watch 'curl -H "Host:localhost" http://127.0.0.1:8081 /dev/null'
  • 3号航站楼:?python -m SimpleHTTPServer 10001 & python -m SimpleHTTPServer 10002 & python -m SimpleHTTPServer 10003
  • 4号航站楼:
查询基本统计数据
代码语言:javascript
复制
curl -u admin:admin http://127.0.0.1:6587/stats
curl -u admin:admin http://127.0.0.1:6587/vs
curl -u admin:admin http://127.0.0.1:6587/vs/web
添加/删除池成员
代码语言:javascript
复制
curl -XPOST -u admin:admin -d '{"address":"127.0.0.1:10003"}' http://127.0.0.1:6587/vs/web/pool
curl -u admin:admin http://127.0.0.1:6587/vs/web
curl -u admin:admin http://127.0.0.1:6587/stats

curl -XDELETE -u admin:admin -d '{"address":"127.0.0.1:10003"}' http://127.0.0.1:6587/vs/web/pool
启用/禁用LB实例
代码语言:javascript
复制
curl -XPOST -u admin:admin -d '{"action":"disable"}' http://127.0.0.1:6587/vs/web
curl -u admin:admin http://127.0.0.1:6587/vs/web
curl -XPOST -u admin:admin -d '{"action":"enable"}' http://127.0.0.1:6587/vs/web

Github 地址:?https://github.com/onestraw/golb

欢迎提 Issue、PR、star

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-07-09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 组态
  • 脚步
    • 查询基本统计数据
      • 添加/删除池成员
        • 启用/禁用LB实例
        相关产品与服务
        云服务器
        云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档