Consul最常用的命令和接口api

Consul 简化了分布式环境中的服务注册和发现流程,可通过 HTTP 或者 DNS 接口发现服务,此处简单罗列了一下最常用的命令和接口api。

1. consul以client和server形式启动

server:

nohup /consul/consul agent -ui -config-dir=/consul/config 1>/consul/consul.log 2>&1 &

在/consul/config文件中可指定bind_addr为192.168.0.100, server属性为true

client:

nohup /consul/consul agent -ui -config-dir=/consul/config -join=192.168.0.100 > /consul/consul.log 2>&1 &

2. 列出服务:

curl http://localhost:8500/v1/agent/members

3. 添加服务

curl --request PUT --data @test.json http://localhost:8500/v1/agent/service/register

test.json文件内容:

    {
    "ID": "nginx1",
    "Name": "nginx",
    "Tags": [
    "primary",
    "v1"
    ],
    "Address": "127.0.0.1",
    "Port": 80,
    "EnableTagOverride": false,
    "Check": {
    "DeregisterCriticalServiceAfter": “12h",
    "HTTP": "http://localhost:5000/health",
    "Interval": "1s"
    }
    }

HTTP + Interval 是其中一种健康检查方式,这一检查默认每30秒向特定url发送一个http get请求,返回码是2XX则表示检查通过,返回429则警告请求数太多,其他则表示失败。

4. 删除服务:

curl --request PUT http://localhost:8500/v1/agent/service/deregister/nginx1

5. 访问发现服务:dns查询

dig安装

yum install bind-utils

dns发现服务:

dig @127.0.0.1 -p 8600 servicename.service.consul

DNS查询系统通过健康检查信息防止路由到不健康的节点,当查询完成时,任何在检查中失败的节点都会在结果中被忽略,为了简单的负载均衡,每次返回的节点集也是随机的

6. checks健康检查

curl http://localhost:8500/v1/agent/checks

设置此check的状态为passing:

curl http://localhost:8500/v1/agent/check/pass/nginx1

7. 配置查看

curl http://localhost:8500/v1/kv/commons/test/config?raw

原文发布于微信公众号 - java达人(drjava)

原文发表时间:2017-06-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏狂码一生

CentOS-7下搭建配置SVN服务器

1、安装svn:     >yum -y install subversion     //svn默认安装目录:/bin/svnserve 2、查看svn版本...

449150
来自专栏云计算教程系列

如何在Ubuntu 14.04上将Symfony应用程序部署到生产环境中

Symfony是一个用PHP编写的开源Web框架,适用于构建任何规模的项目。它提供了一个基于可重用组件的精心设计的结构,您可以在其上构建自己的PHP应用程序。

32720
来自专栏云计算教程系列

如何在Debian 8上使用Postgres,Nginx和Gunicorn设置Django

Django是一个功能强大的Web框架,可以帮助您完成Python应用程序或网站。Django包含一个简化的开发服务器,用于在本地测试您的代码,但是对于任何与生...

12240
来自专栏北京马哥教育

CentOS系统启动流程你懂否

一、Linux内核的组成 相关概念: Linux系统的组成部分:内核+根文件系统 内核:进程管理、内存管理、网络协议栈、文件系统、驱动程序。 ...

38640
来自专栏北京马哥教育

CentOS系统启动流程你懂否

一、Linux内核的组成 相关概念: Linux系统的组成部分:内核+根文件系统 内核:进程管理、内存管理、网络协议栈、文件系统、驱动程序。 ...

38150
来自专栏世界第一语言是java

ELK+logback+kafka+nginx 搭建分布式日志分析平台

ELK(Elasticsearch , Logstash, Kibana)是一套开源的日志收集、存储和分析软件组合。而且不只是java能用,其他的开发语言也可以...

41720
来自专栏xingoo, 一个梦想做发明家的程序员

Log4j官方文档翻译(一、基本介绍)

简介 log4j是使用java语言编写的可靠的、快速的、灵活的日志框架,它是基于Apache的license。 log4j支持c,c++,c#,perl,...

21350
来自专栏Youngxj

Kali linux中安装虚拟机VMware10

21440
来自专栏云计算教程系列

如何使用Apache驱动Django

Django是一个功能强大的Web框架,可以帮助您快速启动Python应用程序或网站。Django包含一个简化的开发服务器,用于在本地测试您的代码。但是其也需要...

32550
来自专栏北京马哥教育

用日志记录Linux用户执行的每一条命令(history)

工作中,需要把用户执行的每一个命令都记录下来,并发送到日志服务器的需求,为此我做了一个简单的解决方案。这个方案会在每个用户退出登录时把用户所执行的每一个命令都...

37050

扫码关注云+社区

领取腾讯云代金券