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 ...
随机推荐
- Ubuntu下编写终端界面交互式C++小程序的一些Trick(小技巧,gnome-terminal)
类getch()功能的实现 I 只要在Windows下用过C/C++就会很熟悉conio.h库中的一个函数getch(),它可以绕过终端输入缓冲区直接从键盘读取一个字符,并且不在界面上显示. 但如果想 ...
- 「JLOI2015」骗我呢 解题报告?
「JLOI2015」骗我呢 这什么神仙题 \[\color{purple}{Link}\] 可以学到的东西 对越过直线的东西翻折进行容斥 之类的..吧? Code: #include <cstd ...
- centos7下kafka集群安装部署
应用摘要: Apache kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写.Kafka是一种高吞吐量的 分布式发布订阅消息系统,是消息中间件的一种,用于构建实时 ...
- centos7搭建ELK Cluster集群日志分析平台(四):Fliebeat-简单测试
续之前安装好的ELK集群 各主机:es-1 ~ es-3 :192.168.1.21/22/23 logstash: 192.168.1.24 kibana: 192.168.1.25 测试机:cli ...
- SpringBoot整合阿里Druid数据源及Spring-Data-Jpa
SpringBoot整合阿里Druid数据源及Spring-Data-Jpa https://mp.weixin.qq.com/s?__biz=MzU0MDEwMjgwNA==&mid=224 ...
- 英语动画字母积木 Alphablocks 4季91集 自然拼读phonics 带字幕
BBC Cbeebies的Alphablocks声情并茂,是让孩子接触phonics自然拼读并产生拼读意识的一系列非常不错的动画片.跳跳蛙字母工厂Leap Frog_Letter Factory是美国 ...
- JBoss/Wildfly 配置SQLserver服务器
JBoss/Wildfly 配置SQLserver服务器 http://blog.csdn.net/haitaolang/article/details/60467118 wildfly standa ...
- ArcGIS for qml -添加自由文本
源码:https://github.com/sueRimn/ArcGIS-for-qml-demos 实现地图上鼠标点击后添加自由文本功能 作者: 狐狸家的鱼 Github: 八至 版权声明:如需转载 ...
- 【CH6901】骑士放置
题目大意:给定一个 N*M 的棋盘,有一些格子禁止放棋子.问棋盘上最多能放多少个不能互相攻击的骑士(国际象棋的"骑士",类似于中国象棋的"马",按照" ...
- 浏览器直接显示html代码,不解析代码
在某些时候,我们可能因为某些特殊的原因,不想让浏览器解析html代码. 1,把代码放到js中,如下 <script type='text/html' style='display:block'& ...