Consul 域名服务
=============================
Web请求的全过程(包含DNS)
=============================
完整过程参考 https://blog.csdn.net/yonggeit/article/details/72857630
DNS 服务器并不承担 TCP 连接的数据通道, 只是在建立TCP连接之前起作用, 告知目标机器的IP是多少.
=============================
consul 域名服务
=============================
标准的 DNS 默认端口为 53, 而 consul 默认的 DNS 端口为 8600.
查询 DNS 服务时候, 需要指定服务名称, consul支持多种服务名称写法, 常用的是 consul 标准写法和 RFC2782 写法.
1. 标准的 consul 服务写法(最常用):
[tag.]<your_service>.service[.your_datacenter].consul
共包含 5 个部分:
*. 最后的 consul 为命名空间, 可以修改, 缺省为 consul.
*. 在注册服务的时候, 一个 service 可以包含多个服务 node, 我们可以为每个 node 打上多个的 tag,
比如: 我们有一个 prod_mysql 服务, 第一个 "Node" 为 "mysql-1" , 其"tags" 为 ["master","v1"]; 第二个 "Node" 为 "mysql-2" , 其"tags" 为 ["slave","v1"]
示例:
# 安装 consul 集群后, 就会有一个 consul.service.consul 服务, 我们可以查询其 DNS 信息
docker run --rm azukiapp/dig:latest dig @192.168.1.11 -p consul.service.consul SRV
2. RFC2782 的写法是: _<service>._<protocol>.service[.datacenter][.domain] , 知道有这么一种方法就行, 不做过多研究.
=============================
域名查询工具 dig
=============================
Linux 和 Windows 都带有 nslookup 域名查询工具工具, Linux 已经推荐使用 dig 来代替 nslookup, dig 的全称为 Domain Information Groper, windows 官方系统并未提供 dig 工具. 我们可以使用 Bind 软件包 (DNS 服务器) 中的 dig 工具. 下载地址: https://www.isc.org/downloads/bind/, 注意在安装的向导中, Options 只要选中 "Tool only" 即可, 因为我们不需要使用 Bind 做 DNS 服务器.
下面是 dig 命令行几种典型写法:
dig Hostname
dig DomainNameHere
dig @DNS-server-name Hostname
dig @DNS-server-name IPAddress
dig @DNS-server-name Hostname|IPAddress type
dig @DNS-server-name -p53 Hostname|IPAddress type
dig @DNS-server-name -p8600 Hostname|IPAddress type
其中:
1. @DNS-server-name 为域名服务器, 比如可以指定 8.8.8.8 或 ns1.cyberciti.biz, 需要域名服务器前加上@符号
2. Hostname|IPAddress 是要查询的资源名称, 比如 www.baidu.com
3. type 参数: 要查询的类型, 缺省的代表 A record, 其他合法的类型有 ANY, A, AAAA, CNAME, MX, NS ,PTR, SRV, SIG
4. -p 参数, 标准 DNS 默认端口为 53, 如果是非 53 端口, 需要指定端口号
例子:
dig @127.0.0.1 -p8600 redis.service.dc1.consul SRV
consul 默认情况下, consul client 使用本机的 127.0.0.1:8600 对外提供 DNS 查询服务.
=============================
Boot2Docker 下使用 dig
=============================
Boot2Docker 安装后的 VM 不带 dig 工具, 可以使用 azukiapp/dig:latest 镜像.
docker run --rm azukiapp/dig:latest dig @192.168.1.11 -p 8600 consul.service.consul SRV
=============================
consul DNS 服务注册
=============================
consul 默认情况下, 我们可以通过本机的 consul client 8600 端口查询 DNS 信息, 通过本机 consul client 8500 http 端口注册服务.
注册一个名为 mysql 的 service, 该服务共有两个地址, 两个地址的注册命令如下:
# 注册一个名为 mysql 的 service, 该服务共有两个地址, 两个地址的注册命令如下:
curl -X PUT -d '{"Datacenter": "dc1", "Node": "mysql-1","Address": "mysql-1.node.consul","Service": {"Service": "mysql", "tags": ["master","v1"],"Port": 3306}}' http://192.168.1.11:8500/v1/catalog/register
curl -X PUT -d '{"Datacenter": "dc1", "Node": "mysql-2","Address": "mysql-2.node.consul","Service": {"Service": "mysql", "tags": ["slave","v1"],"Port": 3306}}' http://192.168.1.11:8500/v1/catalog/register # 查询这个 mysql service 的 DNS
docker run --rm azukiapp/dig:latest dig @192.168.1.11 -p mysql.service.consul SRV # 查询 tag 为 v1,且服务名为 mysql.service.consul 的信息
docker run --rm azukiapp/dig:latest dig @192.168.1.11 -p v1.mysql.service.consul SRV # 查询 tag 为 master,且服务名为 mysql.service.consul 的信息
docker run --rm azukiapp/dig:latest dig @192.168.1.11 -p master.mysql.service.consul SRV
Consul 域名服务的更多相关文章
- .net core学习笔记,组件篇:服务的注册与发现(Consul)初篇
1.什么是服务注册中心? 在学习服务注册与发现时,我们要先搞明白到底什么是服务注册与发现. 在这里我举一个生活中非常普遍的例子——网购来简单说明,网购在我们日常生活中已经是非常普遍了,其实网购中的(商 ...
- Consul 服务注册与服务发现
上一篇:Mac OS.Ubuntu 安装及使用 Consul 1. 服务注册 对 Consul 进行服务注册之前,需要先部署一个服务站点,我们可以使用 ASP.NET Core 创建 Web 应用程序 ...
- Mac OS、Ubuntu 安装及使用 Consul
Consul 概念(摘录): Consul 是 HashiCorp 公司推出的开源工具,用于实现分布式系统的服务发现与配置.与其他分布式服务注册与发现的方案,比如 Airbnb 的 SmartStac ...
- 使用C# 和Consul进行分布式系统协调
随着大数据时代的到来,分布式是解决大数据问题的一个主要手段,随着越来越多的分布式的服务,如何在分布式的系统中对这些服务做协调变成了一个很棘手的问题.今天我们就来看看如何使用C# ,利用开源对分布式服务 ...
- 分布式服务注册和发现consul 简要介绍
Consul是HashiCorp公司推出的开源工具,用于实现分布式系统的服务发现与配置.与其他分布式服务注册与发现的方案,Consul的方案更"一站式",内置了服务注册与发现框 架 ...
- 第二章 consul的安装和启动
安装环境: mac:64bit(查看mac位数:打开终端-->"uname -a") consul_0.6.4_darwin_amd64.zip和consul_0.6.4_w ...
- 应用.Net+Consul维护RabbitMq的高可用性
懒人学习的过程就是工作中老大让干啥让做啥就研究研究啥,国庆放假回来的周末老大通过钉钉给我布置了个任务, RabbitMQ高可用解决方案,我想说钉钉太坑了: 这是国庆过后9号周日晚上下班给的任务,我周一 ...
- Consul的一个更新:服务端节点故障后重连
研究了一段时间Consul,想写个攻略来着,但太赖了而且表达能力非正常人...今天发现HashiCorp果然接纳大众意见改了点东西.. 场景是: 假如Consul集群内有三个Server Node 时 ...
- 搭建consul 集群
1. 准备工作 a) 启动三台虚拟机 s1:10.1.7.141 s2:10.1.7.139 s3:10.1.7.138 b) 每台机器上在 /home新建文件夹 mkdir ...
随机推荐
- Hdoj 2050.折线分割平面 题解
Problem Description 我们看到过很多直线分割平面的题目,今天的这个题目稍微有些变化,我们要求的是n条折线分割平面的最大数目.比如,一条折线可以将平面分成两部分,两条折线最多可以将平面 ...
- [ZJOI2019]游记之我的第一次省选--自闭记
2019/3/23 day -1 今天是体育中考....(祝我好运) 实心球再次投出测量范围,虽然成绩是10.5,但是目测有15米. 立定跳远2.70,好近,我爸叫我跳2.8的QwQ. 1000米最后 ...
- Python数据结构之栈的实现
一图胜千言,看图! 代码code: #coding:utf-8 #常见数据结构之栈的实现 class Stack(): #创建Stack类 def __init__(st,size): st.stac ...
- 51Nod--1076 2条不相交的路径(强连通分量)
电波 #include<bits/stdc++.h> using namespace std; #define LL long long #define maxn 30000 vector ...
- ArcGIS for qml -添加自由文本
源码:https://github.com/sueRimn/ArcGIS-for-qml-demos 实现地图上鼠标点击后添加自由文本功能 作者: 狐狸家的鱼 Github: 八至 版权声明:如需转载 ...
- bzoj2252 矩阵距离
很好奇这种 普及- 的题为什么会是权限题...... 我一开始想用枚举 + 搜索,看书后发现自己脑抽了.直接BFS即可. #include <cstdio> #include <qu ...
- LOJ#2722 情报中心
解:有个暴力是枚举两条链然后O(n)判定,可以得到15分. 还可以优化一下,枚举一条链,然后第二条链直接求两端点树上带权距离.可以做到O(m(n + m)),但是我用的树剖,跟上面那一档没啥区别Orz ...
- HEOI2013 Segment
传说中的“李超树”. 大意:给你若干线段,试求横坐标x上的最上方一条线段的编号.无则输出零. 解:用线段树维护. 插入的时候保存自己这个区间上可能成为最大值的线段,被抛弃的则看情况下放. 查询时从最底 ...
- [luogu5077][Tweetuzki 爱等差数列]
题目链接 思路 数学题 首先列出等差数列求和的式子. \[S = \frac{(n + m)(n - m + 1)}{2}(n为末项,m为首项)\] \[S * 2= (n + m)(n - m + ...
- ASP.NET MVC什么时候使用异步Action
在没有使用异步Action之前,在Action内,比如有如下的写法: public ActionResult Index() CustomerHelper cHelper = new Customer ...