`

Consul调研

阅读更多

 

 

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.144192.168.32.192上分别安装tomcatrcp-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

 

4client方式启动本机的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 注意事项

1linux采用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

浏览器访问示例:

http://192.168.32.144:8500/

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,监听本机的最可靠,如果监听远端服务器地址,应该监听哪一个呢,万一监听的服务器宕机了呢

 

 

分享到:
评论

相关推荐

    欧洲双柱举升机行业市场份额调研报告.docx

    欧洲双柱举升机行业市场份额调研报告揭示了该市场的详细情况,主要针对企业领导者、投资者和创业者。双柱举升机作为一种重要的汽车维修设备,广泛应用于轿车和其他小型车的保养和修理,因其结构紧凑、操作简便和外观...

    服务发现系统调研报告.pptx

    例如,Netflix Eureka和Consul是两个流行的服务发现系统,它们都提供了一种方式来管理服务的生命周期,包括注册、注销、健康检查等功能。同时,API网关作为服务发现的一部分,起到了聚合和路由请求的作用,减轻了...

    催米技术部研发团队技术分享:微服务及服务发现学习资料.zip

    服务发现系统调研报告; zookeeper,etcd,consul对比; 微服务史上最细致入微的深入讲解; 为什么要用服务发现; Raft 为什么是更易理解的分布式一致性算法; 组件包:consul;eureka;zookeeper; 热力对比;

    C#开发基于Yarp实现的API网关源码+项目说明+sln解决方案.zip

    由于我们项目一直在使用Ocelot作为网关 而且已经升级到 .Net 7 基于现状 我们计划重新设计开发一个网关,经过调研发现微软官方已经提供了一个反向代理的组件**YARP** Yarp 是微软团队开发的一个反向代理**组件**, ...

    微服务网关解决方案调研和使用总结

    通过使用如Consul这样的服务注册发现机制,可以实现动态路由,根据服务实例的状态自动调整请求转发。同时,限流策略的动态更新、数据缓存(例如用于鉴权或限流策略)以及日志记录和监控(如Prometheus + Grafana)是...

    分布式桥梁ZooKeeper开发体验

    在选定ZooKeeper之前,我们对其他的分布式框架也进行了调研和对比,分别有etcd和consul。对于etcd而言,在原生接口和提供服务方式方面,etcd更适合作为集群配置服务器,用来存储集群中的大量数据,方便的REST接口也...

    ace your consulting interviews

    它的独特之处在于,不仅为求职者节省了进行工作研究的时间,还通过调研大量的公开信息和对行业内公司员工的深入访谈,收集了第一手的资料。 书中详细介绍了WetFeet的研究方法,这是一种为了求职者更加轻松地找到...

    IT信息化建设中自动化设计方案.docx

    本文通过对广州供电局的实际运维场景进行详细调研和分析,结合当前主流的IT技术(如Consul、Netty、Node.js、Tornado、Nginx、Docker等)和DevOps理念,提出了一套完整的自动化运维方案。 #### 二、自动化运维体系...

Global site tag (gtag.js) - Google Analytics