Consul 快速入門 - Kong最佳實(shí)踐

Consul是什么

Consul是一個服務(wù)網(wǎng)格(微服務(wù)間的 TCP/IP吱七,負(fù)責(zé)服務(wù)之間的網(wǎng)絡(luò)調(diào)用、限流羡洛、熔斷和監(jiān)控)解決方案挂脑,它是一個一個分布式的,高度可用的系統(tǒng)欲侮,而且開發(fā)使用都很簡便崭闲。它提供了一個功能齊全的控制平面,主要特點(diǎn)是:服務(wù)發(fā)現(xiàn)威蕉、健康檢查刁俭、鍵值存儲、安全服務(wù)通信韧涨、多數(shù)據(jù)中心牍戚。

安裝Consul

這里提供兩臺Centos:local12,local13
安裝方式:

[root@local13 ~]# wget https://releases.hashicorp.com/consul/1.2.2/consul_1.2.2_linux_amd64.zip
[root@local13 ~]# unzip consul_1.2.2_linux_amd64.zip 
[root@local13 ~]# ./consul 
Usage: consul [--version] [--help] <command> [<args>]
# local12同上

運(yùn)行Agent

安裝Consul后必須運(yùn)行Agent氓奈,可以選擇服務(wù)器或客戶端模式翘魄。每個數(shù)據(jù)中心至少有一個服務(wù)器(推薦3~5個服務(wù)器集群)。

簡單起見舀奶,先啟動一個Agent的開發(fā)模式:

# Agent的開發(fā)模式
[root@local13 ~]# ./consul agent -dev
==> Starting Consul agent...
==> Consul agent running!

# 查看集群成員
[root@local13 ~]# ./consul members
Node     Address         Status  Type    Build  Protocol  DC   Segment
local13  127.0.0.1:8301  alive   server  1.2.2  2         dc1  <all>

# 使用 HTTP API 查看
[root@local13 ~]# curl localhost:8500/v1/catalog/nodes
[
    {
        "ID": "796b14fe-1332-4aa0-d96f-8f287a4ccc7e",
        "Node": "local13",
        "Address": "127.0.0.1",
        "Datacenter": "dc1",
        "TaggedAddresses": {
            "lan": "127.0.0.1",
            "wan": "127.0.0.1"
        },
        "Meta": {
            "consul-network-segment": ""
        },
        "CreateIndex": 9,
        "ModifyIndex": 10
    }
]
# 還可以使用 DNS 接口來查詢節(jié)點(diǎn)(默認(rèn)端口:8600)
[root@local13 ~]# yum install bind-utils
[root@local13 ~]# dig @127.0.0.1 -p 8600 local13.node.consul
...
;; QUESTION SECTION:
;local13.node.consul.       IN  A
;; ANSWER SECTION:
local13.node.consul.    0   IN  A   127.0.0.1
...

注冊服務(wù)

1暑竟、定義一個服務(wù)

[root@local13 ~]# mkdir /etc/consul.d
[root@local13 ~]# echo '{"service": {"name": "web", "tags": ["rails"], "port": 80}}'  | sudo tee /etc/consul.d/web.json
[root@local13 ~]# ./consul agent -dev -config-dir=/etc/consul.d

2、查詢一個服務(wù)

# 使用 DNS API
[root@local13 ~]# dig @127.0.0.1 -p 8600 web.service.consul
...
;; QUESTION SECTION:
;web.service.consul.        IN  A
;; ANSWER SECTION:
web.service.consul. 0   IN  A   127.0.0.1

# 使用 DNS API 查找 SRV 記錄
[root@local13 ~]# dig @127.0.0.1 -p 8600 web.service.consul SRV
...
;; QUESTION SECTION:
;web.service.consul.        IN  SRV
;; ANSWER SECTION:
web.service.consul. 0   IN  SRV 1 1 80 local13.node.dc1.consul.
;; ADDITIONAL SECTION:
local13.node.dc1.consul. 0  IN  A   127.0.0.1
...

# 使用 HTTP API 查詢
[root@local13 ~]# curl http://localhost:8500/v1/catalog/service/web
# 健康檢查
[root@local13 ~]# curl 'http://localhost:8500/v1/health/service/web?passing'

Consul集群

1育勺、創(chuàng)建node1但荤,consul server

[root@local12 ~]# ./consul agent -server -bootstrap-expect=1  \
-data-dir=/tmp/consul \
-node=agent-one -bind=192.168.56.112 \
-enable-script-checks=true -config-dir=/etc/consul.d \
-client 0.0.0.0 -ui
# -node:節(jié)點(diǎn)的名稱 
# -bind:綁定的一個地址,用于節(jié)點(diǎn)之間通信的地址涧至,可以是內(nèi)外網(wǎng)腹躁,必須是可以訪問到的地址 
# -server:這個就是表示這個節(jié)點(diǎn)是個SERVER 
# -bootstrap-expect:這個就是表示期望提供的SERVER節(jié)點(diǎn)數(shù)目,數(shù)目一達(dá)到南蓬,它就會被激活纺非,然后就是LEADER了
# -dc:指明數(shù)據(jù)中心的名字
# -client 0.0.0.0 -ui:啟動UI(為了方便后續(xù)的UI訪問)

2、創(chuàng)建node2,consul client

[root@local13 ~]# ./consul agent -data-dir=/tmp/consul \
-node=agent-two   \
-bind=192.168.56.113 -enable-script-checks=true \
-config-dir=/etc/consul.d \
-ui

3赘方、加入集群

[root@local13 ~]# ./consul join 192.168.56.112
Successfully joined cluster by contacting 1 nodes.
[root@local13 ~]# ./consul members
Node       Address            Status  Type    Build  Protocol  DC   Segment
agent-one  192.168.1.13:8301  alive   server  1.2.2  2         dc1  <all>
agent-two  192.168.1.12:8301  alive   client  1.2.2  2         dc1  <default>

4烧颖、查詢節(jié)點(diǎn)

[root@local13 ~]# dig @127.0.0.1 -p 8600 agent-two.node.consul
...
;; QUESTION SECTION:
;agent-two.node.consul.     IN  A
;; ANSWER SECTION:
agent-two.node.consul.  0   IN  A   192.168.1.12

KV數(shù)據(jù)

類似Redis,一般也就用來做服務(wù)配置窄陡。
簡單了解下命令就好:

consul kv put redis/config/minconns 1
consul kv put redis/config/minconns 2 # 更新
consul kv get redis/config/minconns
consul kv delete redis/config/minconns
consul kv delete -recurse redis # 批量刪除

WEB UI

訪問下:http://192.168.56.112:8500/ui

WEB UI

欄目解析:就是上面操作生成的一些東西

1炕淮、services:放置服務(wù)
2、nodes:放置consul節(jié)點(diǎn)
3跳夭、key/value:放置一些配置信息
4涂圆、dc1:配置數(shù)據(jù)中心

穿梭機(jī):開源API網(wǎng)關(guān)系統(tǒng)(Kong教程)入門到精通

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末们镜,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子润歉,更是在濱河造成了極大的恐慌模狭,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,042評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件踩衩,死亡現(xiàn)場離奇詭異胞皱,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)九妈,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評論 2 384
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來雾鬼,“玉大人萌朱,你說我怎么就攤上這事〔卟耍” “怎么了晶疼?”我有些...
    開封第一講書人閱讀 156,674評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長又憨。 經(jīng)常有香客問我翠霍,道長,這世上最難降的妖魔是什么蠢莺? 我笑而不...
    開封第一講書人閱讀 56,340評論 1 283
  • 正文 為了忘掉前任寒匙,我火速辦了婚禮,結(jié)果婚禮上躏将,老公的妹妹穿的比我還像新娘锄弱。我一直安慰自己,他們只是感情好祸憋,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評論 5 384
  • 文/花漫 我一把揭開白布会宪。 她就那樣靜靜地躺著,像睡著了一般蚯窥。 火紅的嫁衣襯著肌膚如雪掸鹅。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,749評論 1 289
  • 那天拦赠,我揣著相機(jī)與錄音巍沙,去河邊找鬼。 笑死矛紫,一個胖子當(dāng)著我的面吹牛赎瞎,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播颊咬,決...
    沈念sama閱讀 38,902評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼务甥,長吁一口氣:“原來是場噩夢啊……” “哼牡辽!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起敞临,我...
    開封第一講書人閱讀 37,662評論 0 266
  • 序言:老撾萬榮一對情侶失蹤态辛,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后挺尿,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體奏黑,經(jīng)...
    沈念sama閱讀 44,110評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年编矾,在試婚紗的時候發(fā)現(xiàn)自己被綠了熟史。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,577評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡窄俏,死狀恐怖蹂匹,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情凹蜈,我是刑警寧澤限寞,帶...
    沈念sama閱讀 34,258評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站仰坦,受9級特大地震影響履植,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜悄晃,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評論 3 312
  • 文/蒙蒙 一玫霎、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧传泊,春花似錦鼠渺、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至溪椎,卻和暖如春普舆,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背校读。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評論 1 264
  • 我被黑心中介騙來泰國打工沼侣, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人歉秫。 一個月前我還...
    沈念sama閱讀 46,271評論 2 360
  • 正文 我出身青樓蛾洛,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子轧膘,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評論 2 348

推薦閱讀更多精彩內(nèi)容