用Go 写了个负载均衡器

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号航站楼:

查询基本统计数据

curl -u admin:admin http://127.0.0.1:6587/statscurl -u admin:admin http://127.0.0.1:6587/vscurl -u admin:admin http://127.0.0.1:6587/vs/web

添加/删除池成员

curl -XPOST -u admin:admin -d '{"address":"127.0.0.1:10003"}' http://127.0.0.1:6587/vs/web/poolcurl -u admin:admin http://127.0.0.1:6587/vs/webcurl -u admin:admin http://127.0.0.1:6587/statscurl -XDELETE -u admin:admin -d '{"address":"127.0.0.1:10003"}' http://127.0.0.1:6587/vs/web/pool

启用/禁用LB实例

curl -XPOST -u admin:admin -d '{"action":"disable"}' http://127.0.0.1:6587/vs/webcurl -u admin:admin http://127.0.0.1:6587/vs/webcurl -XPOST -u admin:admin -d '{"action":"enable"}' http://127.0.0.1:6587/vs/web

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180710A0W4BG00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券