备注:
   因为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
 
 
 
 
 

fabio 安装试用&&实际使用的几个问题的更多相关文章

  1. 项目管理工具 Redmine 安装试用手记

    原文:项目管理工具 Redmine 安装试用手记 项目管理工具 Redmine 安装试用手记 分类: Redmine2009-06-01 10:12 996人阅读 评论(1) 收藏 举报 项目管理工具 ...

  2. Tencent Server Web 安装试用

    Tencent Server Web 安装试用 私有环境搭建,使用docker-compose 进行memcache 安装 参考github 代码 https://github.com/rongfen ...

  3. toxiproxy 安装试用

    备注:    实际上是一个代理工具,但是又不是简单的进行代理(tcp,可以配置策略,toxics 实现延迟,模拟故障,    对于这个大家可能了解的就是netflix 公司的chaos monkey, ...

  4. Fabio 安装和简单使用

    Fabio(Go 语言):https://github.com/eBay/fabio Fabio 是一个快速.现代.zero-conf 负载均衡 HTTP(S) 路由器,用于部署 Consul 管理的 ...

  5. windows openssh server 安装试用

    使用Windows的可能会知道win10 的已经包好了openssh 服务,但是对于其他机器win 7 windows 2008 ,就需要其他的方法了 还好powershell 团队开发了支持wind ...

  6. pgbench 安装试用

    pgbench 是一个方便的pg 性能测试工具,以下是简单的测试试用 安装 安装pg yum install https://download.postgresql.org/pub/repos/yum ...

  7. flynn 开源paas 平台安装试用

    flynn 是一个不错的开源paas 平台,基于git 以及容器技术,开发模型与 heroku 基本一样,同时构建方式就是基于heroku 的buildpacks 安装 官方文档提示说明是ubuntu ...

  8. nsq 安装试用

    因为是mac 系统安装试用brew install nsq 安装 brew install nsq 组件说明 nsqd 守护进程进行消息的接受,缓存以及传递消息给客户端,需要配置nsqlookupd地 ...

  9. apache phoenix 安装试用

    备注:   本次安装是在hbase docker 镜像的基础上配置的,主要是为了方便学习,而hbase搭建有觉得   有点费事,用镜像简单.   1. hbase 镜像 docker pull har ...

随机推荐

  1. Java集合详解3:Iterator,fail-fast机制与比较器

    Java集合详解3:Iterator,fail-fast机制与比较器 今天我们来探索一下LIterator,fail-fast机制与比较器的源码. 具体代码在我的GitHub中可以找到 https:/ ...

  2. 二十九 Python分布式爬虫打造搜索引擎Scrapy精讲—selenium模块是一个python操作浏览器软件的一个模块,可以实现js动态网页请求

    selenium模块 selenium模块为第三方模块需要安装,selenium模块是一个操作各种浏览器对应软件的api接口模块 selenium模块是一个操作各种浏览器对应软件的api接口模块,所以 ...

  3. nyoj299——如何优雅的写矩阵快速幂

    Matrix Power Series 时间限制:1000 ms  |  内存限制:65535 KB 难度:4   描述 Given a n × n matrix A and a positive i ...

  4. canvas之图形的变化(平移,缩放,旋转)

    1.保存与恢复canvas状态 ctx.save();暂时将当前的状态保存到堆中 ctx.restore();该方法用于将上一个保存的状态从堆中再次取出,恢复该状态的所有设置. <!DOCTYP ...

  5. clientWidth、offsetWidth等介绍

    网页可见区域宽:document.body.clientWidth网页可见区域高:document.body.clientHeight网页可见区域宽:document.body.offsetWidth ...

  6. nodejs pm2配置使用

    nodejs pm2配置使用教程参考链接:http://www.111cn.net/sys/linux/100927.htm 安装步骤: yum -y install npmnpm install - ...

  7. 【Python】改变对象的字符串显示

    问题 改变对象实例的打印或显示输出,让它们更具可读性. 解决方案 要改变一个实例的字符串表示,可重新定义它的 __str__() 和 __repr__() 方法.例如: class Pair: def ...

  8. js jq 主动触发事件

    js的自定义事件与触发 //主动触发事件:触发鼠标被按下事件 var btn2 =document.getElementById("btn2"); var btn = docume ...

  9. PHP获取随机数的函数rand()和mt_rand()

    rand()函数用户获取随机数,具体用法如下: rand()可以设置0个参数或者两个参数,如rand($min,$max),$min表示从XX开始取值,$max表示最大只能为XX 例如: <?p ...

  10. python decorator 装饰器

    python装饰器是个对嵌套函数的语法糖 作用是在函数调用方法不变的情况下,将函数包装成另一个函数来使用 ---- import time def sum1(): sum = 1 + 2 print ...