Fabio

时间:2022-01-28 19:53:33

Fabio 安装和简单使用

Fabio(Go 语言):https://github.com/eBay/fabio

Fabio 是一个快速、现代、zero-conf 负载均衡 HTTP(S) 路由器,用于部署 Consul 管理的微服务。

Fabio 由 eBay Classifieds Group 开发,用于处理 marktplaats.nl 和 kijiji.it 的流量。Marktplaats 所有的流量都经过 Fabio ,每秒有 250000 个请求,分发于数个 Fabio 实例,并且没有出现任何延迟。

简单流程图(摘自 http://dockone.io/article/1567):

======    服务注册     =========       =========
A服务 <------> consul集群 ----> 健康的 A/不健康的 A 集群
====== 健康检查 ========= =========
^
| 加入/移出路由表
|
========
fabio 集群
========
|
| A服务 如果找到则成功路由否则返回错误
V
http 请求

Mac OS 安装命令(如果没有安装 Consul,会自动安装):

$ brew install fabio
Updating Homebrew...
==> Auto-updated Homebrew!
Updated 1 tap (homebrew/core).
==> New Formulae
crystal-icr gcc@4.7 gnome-autoar libchaos llvm@3.8 pdftoipe tomcat@8.0
dbt gcc@5 isl@0.12 libswiftnav mps-youtube recipes ucg
gcc@4.6 gcc@6 lasso llvm@3.7 ndenv servus
==> Updated Formulae
afflib dnscrypt-proxy handbrake mpv sassc
ant doxygen hebcal mysql sbcl
antigen duply highlight mysql-connector-c++ sqldiff
antlr flex hugo mysql-sandbox sqlite
apache-spark fluent-bit imagemagick nagios sqlite-analyzer
arangodb fobis ipv6calc nagios-plugins stunnel
astyle fontforge jasper ncdc syncthing
ats2-postiats fpp jenkins ncftp tarantool
aws-sdk-cpp freetype lean-cli neo4j taylor
awscli ganglia leptonica nvm tile38
bup gcc libass ooniprobe vim
cdiff gcc@4.9 libgit2 opentsdb volatility
cfr-decompiler geos libgit2-glib osm2pgsql vowpal-wabbit
checkstyle git-annex libpng osquery weechat
cloog git-lfs libxml2 pngpaste wine
compcert gitg lmdb poco winetricks
couchdb gitless m-cli pure-ftpd wireguard-tools
cppcheck gmic macosvpn qt5 x265
czmq gnome-builder menhir questdb yaz
dbhash gnutls mg rclone youtube-dl
dmd groonga mitmproxy re2
==> Deleted Formulae
cloog@0.18 qt tutum Error: Could not link:
/usr/local/share/man/man1/brew.1 Please delete these paths and run `brew update`.
==> Installing dependencies for fabio: consul
==> Installing fabio dependency: consul
==> Downloading https://homebrew.bintray.com/bottles/consul-0.7.2.sierra.bottle.tar.gz
######################################################################## 100.0%
==> Pouring consul-0.7.2.sierra.bottle.tar.gz
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
Could not symlink bin/consul
Target /usr/local/bin/consul
already exists. You may want to remove it:
rm '/usr/local/bin/consul' To force the link and overwrite all conflicting files:
brew link --overwrite consul To list all files that would be deleted:
brew link --overwrite --dry-run consul Possible conflicting files are:
/usr/local/bin/consul
==> Caveats
If consul was built with --with-web-ui, you can activate the UI by running
consul with `-ui-dir /usr/local/Cellar/consul/0.7.2/share/consul/web-ui`. zsh completion has been installed to:
/usr/local/share/zsh/site-functions To have launchd start consul now and restart at login:
brew services start consul
Or, if you don't want/need a background service you can just run:
consul agent -dev -advertise 127.0.0.1
==> Summary