1、搭建集群环境
192.168.32.144 n1 server1
192.168.32.192 n2 server2
192.168.21.120本机 n3 server3
实验步骤:
1、以-bootstrap方式启动192.168.32.144环境:
./consul agent -server -bootstrap -data-dir /opt/consul/data -config-dir=./conf -node=n1 -bind=192.168.32.144
2、启动192.168.32.192环境,并加入集群:
./consul agent -server -data-dir /opt/consul/data -config-dir=./conf -node=n2 -bind=192.168.32.192
./consul join 192.168.32.144
3、启动192.168.21.120环境,并加入集群:
consul agent -server -data-dir e:\consul\data -node=n3 -bind=192.168.21.120
consul join 192.168.32.144
4、在每个节点上执行查询命令,查看cluster状态及哪个节点是leader:
./consul members
./consul info
5、验证自动选举:
通过 consul leave 停掉第一个节点,观察第二个和第三节点的选举与状态变化。
6、再将第一个节点加入集群,注意此时不能有 -bootstrap 选项:
./consul agent -server -data-dir /opt/consul/data -node=n1 -bind=192.168.32.144
./consul join 192.168.32.192
2、配置服务
192.168.32.144 n1 server1
192.168.32.192 n2 server2
192.168.21.120本机 c1 client1
实验步骤:
1、在192.168.32.144及192.168.32.192上分别安装tomcat及rcp-webclient(略)
2、分别在opt/consul目录下创建conf目录,并在conf目录中创建service.json文件,如下所示:
{
"service": {
"name": "web1",
"tags": ["master"],
"address": "127.0.0.1",
"port": 8080,
"checks": [
{
"http": "http://localhost:8080/rcp-webclient/ping.txt",
"interval": "10s"
}
]
}
}
启动时分别加上-config-dir选项,如:
./consul agent -server -bootstrap -data-dir /opt/consul/data -config-dir=./conf -node=n1 -bind=192.168.32.144
./consul agent -server -data-dir /opt/consul/data -config-dir=./conf -node=n2 -bind=192.168.32.192
3、查看节点及服务:
curl -s http://localhost:8500/v1/catalog/nodes
curl -s http://localhost:8500/v1/catalog/services
4、client方式启动本机的consul,并加入集群:
consul agent -data-dir e:\consul\data -node=c1 -bind=192.168.21.120
consul join 192.168.32.144
通过本机浏览器访问:
http://localhost:8500/v1/catalog/nodes
http://localhost:8500/v1/catalog/services
http://localhost:8500/v1/catalog/service/web1
5、健康检查
查看service是否正常可用
http://localhost:8500/v1/health/state/any
本机的tomcat正常运行和停掉后,查询会得出不同的结果。
3、其他
3.2 注意事项
1、linux采用0.6.3 64位的版本,经试验验证suse 9 32位的环境无法正常启动;
2、验证集群环境的选举,三台服务器才能生效,两台服务器无法成功;
3、退出时要采用 consul leave 命令,避免产生极端异常;
4、集群环境重新启动时,需要将各个节点的data目录清空,否则可能无法成功搭建集群环境。
3.1 测试web ui
下载UI程序,放置在/opt/consul/consul_0.6.3_web_ui目录下,增加-ui-dir选项启动consul,如下所示:
./consul agent -server -bootstrap -data-dir /opt/consul/data -config-dir=./conf -node=n1 -bind=192.168.32.144 -ui-dir=/opt/consul/consul_0.6.3_web_ui
浏览器访问示例:
3.3 验证8500端口只能本机访问,不能远程访问
Consul启动后,在其他的服务器上通过浏览器发现无法访问,如192.168.21.120上无法访问192.168.32.144上的服务,如下示例:
http://192.168.32.144:8500/v1/catalog/services
通过netstat -ano|grep 8500查看,发现8500端口监听的地址为本地地址(127.0.0.1),这是导致其他机器无法访问的原因。
3.4 如何开通consul的远程web访问
操作步骤如下所示:
conf目录下增加一个config.json,如下所示:
{
"addresses": {
"http": "192.168.32.144"
}
}
通过下述命令重新启动:
./consul agent -server -bootstrap -data-dir /opt/consul/data -config-dir=./conf -node=n1 -bind=192.168.32.144
通过netstat -ano|grep 8500查看,发现8500端口监听的地址为192.168.32.144,允许其他机器访问
分析原因,本机启动一个agent client,监听本机的最可靠,如果监听远端服务器地址,应该监听哪一个呢,万一监听的服务器宕机了呢
相关推荐
欧洲双柱举升机行业市场份额调研报告揭示了该市场的详细情况,主要针对企业领导者、投资者和创业者。双柱举升机作为一种重要的汽车维修设备,广泛应用于轿车和其他小型车的保养和修理,因其结构紧凑、操作简便和外观...
例如,Netflix Eureka和Consul是两个流行的服务发现系统,它们都提供了一种方式来管理服务的生命周期,包括注册、注销、健康检查等功能。同时,API网关作为服务发现的一部分,起到了聚合和路由请求的作用,减轻了...
服务发现系统调研报告; zookeeper,etcd,consul对比; 微服务史上最细致入微的深入讲解; 为什么要用服务发现; Raft 为什么是更易理解的分布式一致性算法; 组件包:consul;eureka;zookeeper; 热力对比;
由于我们项目一直在使用Ocelot作为网关 而且已经升级到 .Net 7 基于现状 我们计划重新设计开发一个网关,经过调研发现微软官方已经提供了一个反向代理的组件**YARP** Yarp 是微软团队开发的一个反向代理**组件**, ...
通过使用如Consul这样的服务注册发现机制,可以实现动态路由,根据服务实例的状态自动调整请求转发。同时,限流策略的动态更新、数据缓存(例如用于鉴权或限流策略)以及日志记录和监控(如Prometheus + Grafana)是...
在选定ZooKeeper之前,我们对其他的分布式框架也进行了调研和对比,分别有etcd和consul。对于etcd而言,在原生接口和提供服务方式方面,etcd更适合作为集群配置服务器,用来存储集群中的大量数据,方便的REST接口也...
它的独特之处在于,不仅为求职者节省了进行工作研究的时间,还通过调研大量的公开信息和对行业内公司员工的深入访谈,收集了第一手的资料。 书中详细介绍了WetFeet的研究方法,这是一种为了求职者更加轻松地找到...
本文通过对广州供电局的实际运维场景进行详细调研和分析,结合当前主流的IT技术(如Consul、Netty、Node.js、Tornado、Nginx、Docker等)和DevOps理念,提出了一套完整的自动化运维方案。 #### 二、自动化运维体系...