docker容器的服务发现:consul
官网: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的更多相关文章
- 服务发现 consul cluster 的搭建【转】
consul cluster setup 介绍和指南: consul用于服务发现.当底层服务发生变化时,能及时更新正确的mysql服务IP. 并提供给业务查询.但需要自行编写脚本,监测数据库状态和切断 ...
- 服务发现 - consul 的介绍、部署和使用
什么是服务发现 相关源码: spring cloud demo 微服务的框架体系中,服务发现是不能不提的一个模块.我相信了解或者熟悉微服务的童鞋应该都知道它的重要性.这里我只是简单的提一下,毕竟这不是 ...
- 服务发现 - consul 的介绍、部署和使用(转)
什么是服务发现 相关源码: spring cloud demo 微服务的框架体系中,服务发现是不能不提的一个模块.我相信了解或者熟悉微服务的童鞋应该都知道它的重要性.这里我只是简单的提一下,毕竟这不是 ...
- (转) Docker - Docker1.12服务发现,负载均衡和Routing Mesh
看到一篇介绍 Docker swarm以及如何编排的好文章,挪放到这里,自己学习的同时也分享出来. 原文链接: http://wwwbuild.net/dockerone/414200.html -- ...
- [CoreOS 转载] CoreOS实践指南(七):Docker容器管理服务
转载:http://www.csdn.net/article/2015-02-11/2823925 摘要:当Docker还名不见经传的时候,CoreOS创始人Alex就预见了这个项目的价值,并将其做为 ...
- 服务发现 consul cluster 的搭建
consul cluster setup 介绍和指南: consul用于服务发现.当底层服务发生变化时,能及时更新正确的mysql服务IP. 并提供给业务查询.但需要自行编写脚本,监测数据库状态和切断 ...
- docker 容器内服务自启动
centos6/7 有区别先说6 centos6: 方式一:rc.local + 容器内的启动脚本 1.chkconfig docker on #docker开机自启动2.[root@master y ...
- Docker 容器暂停服务 - 七
docker pause :暂停容器中所有的进程docker unpause :恢复容器中所有的进程 docker pause [OPTIONS] CONTAINER [CONTAINER...] d ...
- Docker容器内服务自启
创建容器时需要配置--privileged和容器启动后执行的命令为/sbin/init/. docker run -d -it --name example -p 3308:3306 -p 2080: ...
随机推荐
- ACM训练小结-2018年6月15日
今天题目情况如下:A题:给出若干条边的边长,问这些边按顺序能否组成一个凸多边形,并求出这个多边形的最小包含圆.答题情况:无思路.正解(某种):第一问很简单.对第二问,如果R大于可行的最小R,那么按照放 ...
- .NET CORE 动态调用泛型方法
using System; using System.Reflection; namespace DynamicCall { class Program { static void Main(stri ...
- 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,为了 ...
- 【P2514】工厂选址(贪心)
看到题了不首先应该看看数据范围确定一下算法么,这个题的数据范围大约可以支持到O(nmlogm),所以肯定不是搜索什么的,DP貌似至少也要n^2m,所以可以想一些其他的.对于题目的输入,我们发现这些输入 ...
- window 安装 thrift
1.下载thrift:http://thrift.apache.org/ 2.然后将该执行文件,保存到磁盘的文件夹下(你自己喜欢的,随便一个个目录下) 我的是(目录名少了个t,无妨): 3.把该执行文 ...
- R语言笔记004——R批量读取txt文件
R批量读取txt文件 本文数据,代码都是参考的是大音如霜公众号,只是自己跟着做了一遍. path<-'C:\\Users\\Administrator\\Desktop\\docs' docs& ...
- webview 详解
[原文] 1. 打开网页时不调用系统浏览器, 而是在本WebView中显示: mWebView.setWebViewClient(new WebViewClient(){ @Override publ ...
- eclipse安装hibernate插件(在线Marketplace中安装)
网上很多都是给个网址,然后在eclipse的help中new install soft中安装.每次安装还要去查找最新的地址去安装.为什么不用eclipse的marketplace直接搜索安装呢? 打开 ...
- RGB(16进制)_转_TColor
ZC:内存中 COLORREF就是一个DWORD(从定义"COLORREF = DWORD;"就可以看出来),但是 具体的byte R/G/B 的位置是怎么方式的? ZC:Wind ...
- js的constructor
js创建一个构造函数,会默认在原型链上添加一个constructor的属性,它保存了构造函数内的代码. 一般情况下我们不需要去改动它,但是有些时候我们会不经意的改写它. 比如下面这个例子: var F ...