微服務專題:服務註冊與發現之一Consul快速上手

簡介

服務註冊與發現做爲微服務的關鍵組件,爲微服務提供服務註冊、服務發現及健康檢查的功能。
Consul由於功能齊全,容易使用而廣受開發者歡迎。node

功能

  1. 服務註冊與發現linux

  2. 健康檢查瀏覽器

  3. KV存儲curl

  4. 多數據中心

快速上手

安裝

安裝很是簡單,Consul提供了二進制文件,下載後解壓就能夠用了。
下載地址:Linux | Mac OS X ide

root@598361668db6:/data# unzip consul_1.0.2_linux_amd64.zip
root@598361668db6:/data# ls
consul

啓動

root@598361668db6:/data# ./consul agent -dev
==> Starting Consul agent...
==> Consul agent running!
           Version: 'v1.0.2'
           Node ID: 'ccb504cc-f173-8464-96a7-6d13ba85246a'
           Node name: '598361668db6'
           Datacenter: 'dc1' (Segment: '<all>')
           Server: true (Bootstrap: false)
           Client Addr: [127.0.0.1] (HTTP: 8500, HTTPS: -1, DNS: 8600)
           Cluster Addr: 127.0.0.1 (LAN: 8301, WAN: 8302)
           Encrypt: Gossip: false, TLS-Outgoing: false, TLS-Incoming: false

啓動很簡單,只須要一行命令。
-dev 表明咱們以開發模式啓動。
開發模式啓動以後,默認會在8500端口啓動管理界面,咱們打開瀏覽器(http://localhost:8500),一睹Consul的芳容微服務

若是在Docker容器中啓動,會出現無妨訪問網頁的狀況。啓動命令改成:./consul agent -dev -bind 0.0.0.0 -client 0.0.0.0,能夠避免這個問題。ui

image
從界面中咱們能夠看到 服務、節點、KV存儲、ACL(訪問控制)和數據中心,全部功能都很直觀,你們能夠點一點,熟悉一下。url

查看節點

Consul提供了三種查看節點的方式:API、命令行和DNS。
命令行方式:命令行

root@598361668db6:/data# consul members
Node          Address         Status  Type    Build  Protocol  DC   Segment
598361668db6  127.0.0.1:8301  alive   server  1.0.2  2         dc1  <all>

API方式:code

root@598361668db6:/data# curl localhost:8500/v1/catalog/nodes
[
    {
        "ID": "838da409-35cd-a752-7f35-70efe35b7a43",
        "Node": "598361668db6",
        "Address": "127.0.0.1",
        "Datacenter": "dc1",
        "TaggedAddresses": {
            "lan": "127.0.0.1",
            "wan": "127.0.0.1"
        },
        "Meta": {
            "consul-network-segment": ""
        },
        "CreateIndex": 5,
        "ModifyIndex": 6
    }
]

DNS方式
consul默認會以hostname.node.consul添加一條A記錄。

root@598361668db6:/data# hostname
598361668db6
root@598361668db6:/data# dig @127.0.0.1 -p 8600 598361668db6.node.consul

; <<>> DiG 9.10.3-P4-Ubuntu <<>> @127.0.0.1 -p 8600 598361668db6.node.consul
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41631
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;598361668db6.node.consul.  IN  A

;; ANSWER SECTION:
598361668db6.node.consul. 0 IN  A   127.0.0.1

;; Query time: 1 msec
;; SERVER: 127.0.0.1#8600(127.0.0.1)
;; WHEN: Wed Dec 20 10:09:13 UTC 2017
;; MSG SIZE  rcvd: 69
相關文章
相關標籤/搜索