大家好,欢迎来到IT知识分享网。
一、什么是fabio
fabio 是一个快速、现代、零配置的负载平衡 HTTP(S) 和 TCP 路由器,用于部署由consul管理的应用程序。所以fabio是为了consul而生的负载均衡器,fabio通过读取consul的注册中心,然后进行负载均衡。
二、安装fabio
1.从源代码、二进制文件、 Docker或Homebrew安装。
go get github.com/fabiolb/fabio (>= go1.15) brew install fabio (OSX/macOS stable) brew install --devel fabio (OSX/macOS devel) docker pull fabiolb/fabio (Docker) https://github.com/fabiolb/fabio/releases (pre-built binaries)
2.在consul中注册您的服务。
确保每个实例都使用唯一的 ServiceID和不带空格的服务名称进行注册。
3.如此处所述,在 consul 中注册健康检查。
默认情况下,fabio 只监视通过了健康检查的服务,除非被registry.consul.service.status覆盖。
4.为它服务的每个前缀注册一个urlprefix-
标签(还支持手动加入Fabio注册表),例如:host/path
1 # HTTP/S examples 2 urlprefix-/css # path route 3 urlprefix-i.com/static # host specific path route 4 urlprefix-mysite.com/ # host specific catch all route 5 urlprefix-/foo/bar strip=/foo # path stripping (forward '/bar' to upstream) 6 urlprefix-/foo/bar proto=https # HTTPS upstream 7 urlprefix-/foo/bar proto=https tlsskipverify=true # HTTPS upstream and self-signed cert 8 9 # TCP examples 10 urlprefix-:3306 proto=tcp # route external port 3306
5.在没有配置文件的情况下启动 fabio(假设正在运行的 consul 代理localhost:8500
) 观察日志输出 fabio 如何选择到您的服务的路由。尝试启动/停止您的服务以查看路由表如何立即更改。
6.将所有 HTTP 流量发送到端口上的 fabio 9999
。
三、安装完毕后使用9998端口会出现以下界面
四、如何写入到net6中
从上面fabio的安装使用说明中,我们可以知道fabio只需要设置consul里面的tags中增加“urlprefix-”即可
//注册信息 var registration = new AgentServiceRegistration() { ID = $"{localIP}:{localPort}", //服务ID,唯一 Name = serviceName, //服务名(如果服务搭集群,它们的服务名应该是一样的,但是ID不一样) Address = $"{localIP}", //服务地址 Port = localPort, //服务端口 Tags = new[] { $"urlprefix-/{serviceName} strip=/{serviceName}" }, //服务标签,一般可以用来设置权重等本地服务特有信息,fabio规则适用 Checks = new[] { httpCheck }, //心跳检测设置 };
写入代码后Fabio会自动读取consul的注册中心,以下是安装成功的
我们来通过浏览器来预览请求,看看效果如何,以下就是我们操作成功的例子。
总结:
其实我们在读取consul注册中心也可以实现负载均衡,但是复杂的负载均衡算法真的适合放入业务代码中吗?所以我们必须去衡量得失,而在微服务中Fabio并不是必须的,我们需要根据相关选型技术工具来解决相应的问题,没必要盲目的追求工具带来的好处,而忘记了系统的复杂度
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/28274.html