fabio 安装试用&&实际使用的几个问题

备注:
   因为fabio 依赖consul vault (不是强需),启动之前需要先安装consul,
   本次为了简单consul 使用的是单机,使用的是dev 模式
 
1. conusl 安装&&启动
wget  -O consul_1.0.1_linux_amd64.zip https://releases.hashicorp.com/consul/1.0.1/consul_1.0.1_linux_amd64.zip?_ga=2.266211915.599626352.1512025497-95808125.1504594004
unzip consul_1.0.1_linux_amd64.zip 
cp consul /usr/bin

nohup consul agent --dev &
 
 
2. fabio 安装&&启动
https://github.com/fabiolb/fabio/releases 地址下载对应的版本
nohup fabio &
 
 
 
3.  配置使用
备注:参考官方的demo (go)

a. get code 
go get github.com/fabiolb/fabio

cd $GOPATH/src/github.com/fabiolb/fabio/demo

b. build
go build
c. run 
./server -addr 127.0.0.1:5000 -name svc-a -prefix /foo
 
 
参考运行界面
 
4. 官方demo 的几个问题,以及实际需要注意的
实际系统中我们可能会存在比较多的系统故障,比如consul 集群故障,fabio 故障,服务故障,目前存在以下几个问题
a. 服务宕机
  这个比较简单,问题不大,重新起来进行注册就可以了
b. fabio宕机
  这个就有问题了,实际上我们应该多个节点,简单故障
c. consul 宕机
  fabio 不受较大影响(因为cache),新服务不能注册,以前的可以使用,但是此时consul 起来之后,需要进行服务注册的重试,不然consul旧的服务是没有的
  假如此时使用了lb 或者类似工具解决ha 以及负载均衡问题,旧会出现数据一致性的问题,实际上可能需要确保,数据的一致性
  
备注:上面的分析也是从部分极端情况下设想的,但是实在分布式系统中,一切皆有可能,因为可能会触连锁反应,所以还是最好规划,以及有对应的解决方案
 
5. 参考资料
https://github.com/fabiolb/fabio
 
原文地址:https://www.cnblogs.com/rongfengliang/p/8443303.html