官网:https://www.consul.io
  官网文档:https://www.consul.io/docs
简介
  consul是一个服务发现的组件,在docker世界中他比较流行,主要是consul不仅具有服务发现功能,还实现了DNS功能(centos默认的是dnsmaqs),监控检查以及事件处理等功能。
  consul的节点有两种角色:bootstrap,leader以及follower;bootstrap是在重启之后都向该节点报道,理论上来bootstrap和选组无关,但是总是要有一个点,在大家启动之后都去报道,作为选主候选人;leader就是选举出来的对外提供服务的设备,follower则是备选人。如client端向follower发送请求,请求将会被重定向到leader节点。

参数说明
  解压缩之后就是一个文件consul;
  -bootstrap:自启动,一个consul集群只能有一个点是bootstrap,这代表集群启动的时候,都向那个节点进行join,大多数情况下,这个bootstrap都是leader(待验证)。不指定(没有此参数)则为非bootstrap点
  -bootstrap-expect:代表这个bootstrap下属有几个代理(agent)。这个参数可以不指定
  agent:所有的节点都是以agent方式运行;agent有两种模式,一种是server,一种是client;其实client场景应用比较少,因为client角色一般都是有应用通过调用http来模拟;所以大多数场景使用agent是作为server。
  bootstrap节点(10.1.108.108):
 ./consul agent -server -bootstrap -advertise=10.1.108.108 -data-dir=/tmp/consul -ui -client=10.1.108.108 
  非bootstrap节点(10.1.108.64)
 ./consul agent -server -advertise=10.1.108.64 -data-dir=/tmp/consul -join 10.1.108.108 -ui -client=10.1.108.108 
  注意后面添加了-ui以及client,ui代表的是启动(enable)可视化网站;client则是指定网站(ui)可访问的网卡范围,默认的是127.0.0.1即只有本地能够访问(lo网卡;如果指定了非loop地址,则可以被别的机器通过指定IP访问(即某个网卡所在的网络访问),端口号是8500(可以通过consul agent启动后,HTTP访问信息可以通过client addr信息看到。如果是指定了0.0.0.0,则代表可以被来自于任何网卡的请求访问

其他功能
  健康检查,这个和marathon的原理是一样的,可以指定一个地址(TCP,HTTP等)定期去访问,有返回则说明健康;
  DNS功能,具备域名解析功能,默认占用53端口(dnsmasq将被弃用);
  自动上报功能(Telemetry);各个节点将会向指定的节点上报一些统计数据;
  监控(Watch),监控指定元素(可能是key,可能是服务,可能是安全检查),一旦元素发生变化,将会导致处理(handle);handler有两种,一种脚本(executable),一种是http;有几种类别,可以监控节点,Node,服务

docker容器的服务发现:consul的更多相关文章

  1. 服务发现 consul cluster 的搭建【转】

    consul cluster setup 介绍和指南: consul用于服务发现.当底层服务发生变化时,能及时更新正确的mysql服务IP. 并提供给业务查询.但需要自行编写脚本,监测数据库状态和切断 ...

  2. 服务发现 - consul 的介绍、部署和使用

    什么是服务发现 相关源码: spring cloud demo 微服务的框架体系中,服务发现是不能不提的一个模块.我相信了解或者熟悉微服务的童鞋应该都知道它的重要性.这里我只是简单的提一下,毕竟这不是 ...

  3. 服务发现 - consul 的介绍、部署和使用(转)

    什么是服务发现 相关源码: spring cloud demo 微服务的框架体系中,服务发现是不能不提的一个模块.我相信了解或者熟悉微服务的童鞋应该都知道它的重要性.这里我只是简单的提一下,毕竟这不是 ...

  4. (转) Docker - Docker1.12服务发现,负载均衡和Routing Mesh

    看到一篇介绍 Docker swarm以及如何编排的好文章,挪放到这里,自己学习的同时也分享出来. 原文链接: http://wwwbuild.net/dockerone/414200.html -- ...

  5. [CoreOS 转载] CoreOS实践指南(七):Docker容器管理服务

    转载:http://www.csdn.net/article/2015-02-11/2823925 摘要:当Docker还名不见经传的时候,CoreOS创始人Alex就预见了这个项目的价值,并将其做为 ...

  6. 服务发现 consul cluster 的搭建

    consul cluster setup 介绍和指南: consul用于服务发现.当底层服务发生变化时,能及时更新正确的mysql服务IP. 并提供给业务查询.但需要自行编写脚本,监测数据库状态和切断 ...

  7. docker 容器内服务自启动

    centos6/7 有区别先说6 centos6: 方式一:rc.local + 容器内的启动脚本 1.chkconfig docker on #docker开机自启动2.[root@master y ...

  8. Docker 容器暂停服务 - 七

    docker pause :暂停容器中所有的进程docker unpause :恢复容器中所有的进程 docker pause [OPTIONS] CONTAINER [CONTAINER...] d ...

  9. Docker容器内服务自启

    创建容器时需要配置--privileged和容器启动后执行的命令为/sbin/init/. docker run -d -it --name example -p 3308:3306 -p 2080: ...

随机推荐

  1. ACM训练小结-2018年6月15日

    今天题目情况如下:A题:给出若干条边的边长,问这些边按顺序能否组成一个凸多边形,并求出这个多边形的最小包含圆.答题情况:无思路.正解(某种):第一问很简单.对第二问,如果R大于可行的最小R,那么按照放 ...

  2. .NET CORE 动态调用泛型方法

    using System; using System.Reflection; namespace DynamicCall { class Program { static void Main(stri ...

  3. html文件转换成pdf和word

    1.html文件转成pdf 采用jar包有itext-asian.jar.itextpdf-5.5.5.jar.itext-pdfa-5.5.5.jar.itext-xtra-5.5.5.jar,为了 ...

  4. 【P2514】工厂选址(贪心)

    看到题了不首先应该看看数据范围确定一下算法么,这个题的数据范围大约可以支持到O(nmlogm),所以肯定不是搜索什么的,DP貌似至少也要n^2m,所以可以想一些其他的.对于题目的输入,我们发现这些输入 ...

  5. window 安装 thrift

    1.下载thrift:http://thrift.apache.org/ 2.然后将该执行文件,保存到磁盘的文件夹下(你自己喜欢的,随便一个个目录下) 我的是(目录名少了个t,无妨): 3.把该执行文 ...

  6. R语言笔记004——R批量读取txt文件

    R批量读取txt文件 本文数据,代码都是参考的是大音如霜公众号,只是自己跟着做了一遍. path<-'C:\\Users\\Administrator\\Desktop\\docs' docs& ...

  7. webview 详解

    [原文] 1. 打开网页时不调用系统浏览器, 而是在本WebView中显示: mWebView.setWebViewClient(new WebViewClient(){ @Override publ ...

  8. eclipse安装hibernate插件(在线Marketplace中安装)

    网上很多都是给个网址,然后在eclipse的help中new install soft中安装.每次安装还要去查找最新的地址去安装.为什么不用eclipse的marketplace直接搜索安装呢? 打开 ...

  9. RGB(16进制)_转_TColor

    ZC:内存中 COLORREF就是一个DWORD(从定义"COLORREF = DWORD;"就可以看出来),但是 具体的byte R/G/B 的位置是怎么方式的? ZC:Wind ...

  10. js的constructor

    js创建一个构造函数,会默认在原型链上添加一个constructor的属性,它保存了构造函数内的代码. 一般情况下我们不需要去改动它,但是有些时候我们会不经意的改写它. 比如下面这个例子: var F ...