服务发现与健康监测框架Consul-DNS转发的应用
關(guān)于Consul
Consul是一個提供服務(wù)注冊與發(fā)現(xiàn),健康監(jiān)測,Key/Value存儲以及多數(shù)據(jù)中心存儲的分布式框架。官網(wǎng)地址是https://www.consul.io/,公司初步應(yīng)用后我們老大覺得這東西有點(diǎn)意思,隨即有了翻譯文檔的想法,由于精力有限工作繁忙,急需志同道合的道友一起來翻譯下,畢竟好東西還是需要大家一起推廣的,翻譯鏈接是:http://consul.la/,本文主要留下一點(diǎn)DNS轉(zhuǎn)發(fā)的簡單應(yīng)用。
優(yōu)勢
基于Consul提供的DNS查詢接口可以把注冊在Consul內(nèi)部的服務(wù)可以以如:服務(wù)名.service.consul的方式獲取該服務(wù)的ip地址,相比較于53端口的系統(tǒng)級高權(quán)限的DNS查詢服務(wù),Consul可以通過健康監(jiān)測動態(tài)的提供可用服務(wù)的DNS查詢,同時基于多數(shù)據(jù)中心存儲的分布式特性,Consul提供的DNS服務(wù)也更易于管理。
準(zhǔn)備
下載
在Consul官網(wǎng)https://www.consul.io/downloads.html可以下載對應(yīng)操作系統(tǒng)的Consul,Consul同時提供一個管理界面Web UI。
簡單配置
? ? ? Consul啟動時的配置參數(shù)可以通過命令行傳遞也可以通過讀取配置文件夾的方式完成(-config-file),現(xiàn)在準(zhǔn)備一個Server端單機(jī)版自身為leader的實例配置方式:
{"datacenter": "dc_yu","data_dir": "./consul-data","ui_dir": "./consului","log_level": "TRACE","server": true,"bootstrap": true,"node_name":"server_1","bind_addr":"127.0.0.1"}
consul識別的配置文件需以.json后綴,以讀取配置文件加載配置信息的方式會加載指向文件夾下的所有.json文件,并以文件名首字母排序進(jìn)行加載。
啟動
consul啟動方式和配置方式在不同操作系統(tǒng)中一致:
?
配置一個服務(wù)
這里應(yīng)該dotnet core快速生成個web服務(wù)
?
? 隨后將服務(wù)注冊到Consul中,并設(shè)置健康監(jiān)測,這里可以通過配置文件進(jìn)行服務(wù)注冊,將文件放到-config-file指向的文件夾目錄下:
{"services": [{"id":"dotnetcoresample","name":"dotnetcoresample","tags":["dotnetcoresample"],"address": "10.1.18.58","port": 5000,"checks": [{"http": "http://10.1.18.58:5000/","interval": "10s"}]}]}然后consul需要重新加載一下,通過命令行consul reload完成。然后可以通過Consul提供的Web頁面查看一下
在瀏覽器中轉(zhuǎn)到http://127.0.0.1:8500/即可
應(yīng)用
?Consul通過8600端口提供DNS服務(wù),這里可以先體驗一下,這也是官方提供的方式:
?
? ? 接下來就可以通過一些工具為所欲為的配置應(yīng)用本地的域名了,Linux操作系統(tǒng)中可以應(yīng)用DNSmasq,iptables等,這些在官方文檔有demo:https://www.consul.io/docs/guides/forwarding.html
? ? 在windows操作系統(tǒng)中接下來用的是一個應(yīng)用C#開發(fā)的開源DNS工具DNSAgent:https://github.com/stackia/DNSAgent
DNSAgent配置
下載編譯好的包或者clone代碼自己編譯隨意,編譯后的目錄是
? ??
通過簡單配置兩個cfg后綴的文件即可,這里主要配置rules.cfg即可,添加一個配置項,將DNS查詢指向Consul的DNS查詢接口:
[{"Pattern": "^(.*\\.)?consul$","NameServer": "127.0.0.1:8600","QueryTimeout": 30,"CompressionMutation": false}]配置局域網(wǎng)DNS服務(wù)器地址:
? ? ??
運(yùn)行DNSAgent.exe或者直接注冊到windows服務(wù)中即可。
? 然后測試一下成果:
? ? ? ?
接下來把注冊到consul中的業(yè)務(wù)服務(wù)停止下然后在觀察下:
? ? ??
?
結(jié)束
通過Consul提供的DNS服務(wù)應(yīng)用場景還是挺多的,這個就可以為所欲為了- -
?
轉(zhuǎn)載于:https://www.cnblogs.com/ylsforever/p/5844707.html
總結(jié)
以上是生活随笔為你收集整理的服务发现与健康监测框架Consul-DNS转发的应用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: UE4启动GameActivity
- 下一篇: jQuery EasyUI快速入门01