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: ...
随机推荐
- RocketMq入坑指南
报错信息Caused by: org.apache.rocketmq.remoting.exception.RemotingConnectException: connect to <172.1 ...
- 【鸟哥的Linux私房菜】笔记1
Linux是什么 从操作系统与cpu架构关系到linux Richard Mathew Stallman GPL 关于GNU计划 Linux的发展 Linux的核心版本 Linux的特色 Linux ...
- tcp底层连接过程(c语言)
在用了多种上位机开发环境,包括mfc.Qt.C#之后,发现它们的API都是对底层协议的(可以说是C语言)的封装,所以了解了底层协议,任意换上位机开发环境都是没问题的. 1.服务器创建套接字socket ...
- Yii和ThinkPHP对比杂谈
关于ThinkPHP(以下简称TP)和Yii Framework(以下简称Yii)的背景.作者和速度方面就不涉及了.因为速度是一个很复杂的问题,牵扯的因素很多.我不得不承认ThinkPHP是 一个是国 ...
- DOCKER 简单操作
docker ps -a 列出所有镜像 docker start docder_name dcoker start docker_id 运行某个镜像 docker restart docker_nam ...
- centos7下安装tomcat7
1 安装说明安装环境:CentOS-7.0.1611安装方式:源码安装软件:apache-tomcat-7.0.75.tar.gz 下载地址:http://tomcat.apache.org/down ...
- 好的SQL写法
DECLARE @beginTime VARCHAR(20)= '2017-12-20 00:00:00';DECLARE @endTime VARCHAR(20)= '2017-12-26 00:0 ...
- Python之异常总结
一.异常错误 a.语法错误 错误一: if 错误二: def text: pass 错误三: print(sjds b.逻辑错误 #用户输入不完整(比如输入为空)或者输入非法(输入不是数字) num= ...
- C#二进制与字符串互转换,十六进制转换为字符串、float、int
/// <summary> /// 将 字符串 转成 二进制 “10011100000000011100011111111101” /// </summary> /// ...
- js写出斐波那契数列
斐波那契数列:1.1.2.3.5.8.13.21.34.…… 函数: 使用公式f[n]=f[n-1]+f[n-2],依次递归计算,递归结束条件是f[1]=1,f[2]=1. for循环: 从底层向上运 ...