名字服務consul template

2021-10-10 02:38:38 字數 4462 閱讀 5031

consul-template官方文件:consul-template

會以例項說明consul template的應用,在例項中會介紹consul template的語法特性!

有如下consul集群: 【有關consul的簡單應用、集群搭建、服務註冊與發現、鍵值管理:click here】

[root@test1 nameservice]

# consul members

node address status type build protocol dc segment

test1 10.9.8.26:8301 alive server 1.7.0 2 local_ds

test2 10.9.8.25:8301 alive server 1.7.0 2 local_ds

test3 10.9.8.24:8301 alive server 1.7.0 2 local_ds

clent1 10.9.8.23:8301 alive client 1.7.0 2 local_ds

[root@test1 nameservice]

# consul operator raft list-peers

node id address state voter raftprotocol

test2 a7f2c8ef-21ec-f544-8eac-ededfd9a0f48 10.9.8.25:8300 follower true 3

test1 99de144d-82dd-22e7-11bb-1c7e1fcfe3c4 10.9.8.26:8300 follower true 3

test3 f501a2ab-2719-dd76-2768-fafd9bb40573 10.9.8.24:8300 leader true 3

查詢出當前consul中註冊的服務資訊:

[root@test3 nameservice]

# consul catalog services

consul

min-kline

min-redis

查詢出當前consul中註冊的kv資訊:

[root@test3 nameservice]

# curl 10.9.8.25:8500/v1/kv/?keys

["redis/config/connections","stock/db/kline_info","wm/memory/redis_info"

]

現有如下模板:

# 顯示資料中心

}# file的用法,會把檔案中的內容讀取到輸出的檔案中

}# 查詢指定的key值,key值後面可以加上 @資料中心 指定查詢某個中心的key值

# 若是不加,則指向當前資料中心

}# }

# 查詢key值是否存在,值存在的話會返回乙個true,否則返回false

}# 可以放入if語句中,做流程選擇}}

}}# 查詢consul中指定的值,如果key不存在則返回預設值

}# ls返回kv鍵值對,注意這裡的ls後面的路徑要在鍵值對的上一層

}}: }}

}}: }}

# 查詢節點}}

}}# 查詢所有的node, 忽略指定的資料中心,則指向本地}}

}# 查詢consul中的所有服務}}

}

然後使用consul template執行如下命令:

consul-template -consul-addr=10.9.8.25:8500 -template "test.hcl:test.out" -once

-consul-addr: 指定consul集群的ip,

-template: 指定使用的模板檔案,和輸出的檔名

-once: consul-template是在後執行的,此引數指定consul-template執行一次就停止

執行結構如下:

# 顯示資料中心

[local_ds]

# file的用法,會把檔案中的內容讀取到輸出的檔案中

consul version

# 查詢指定的key值,key值後面可以加上 @資料中心 指定查詢某個中心的key值

# 若是不加,則指向當前資料中心

# # 查詢key值是否存在,值存在的話會返回乙個true,否則返回false

false

# 可以放入if語句中,做流程選擇

# 查詢consul中指定的值,如果key不存在則返回預設值

none

# ls返回kv鍵值對,注意這裡的ls後面的路徑要在鍵值對的上一層

redis_info:

# 查詢節點

10.9.8.26 99de144d-82dd-22e7-11bb-1c7e1fcfe3c4

# 查詢所有的node, 忽略指定的資料中心,則指向本地

10.9.8.23

10.9.8.26

10.9.8.25

10.9.8.24

# 查詢consul中的所有服務

consul

min-kline

min-redis

說明:下面不在列出執行過程,只寫出對應模板語法及結果展示:

} # } 不指定資料中心,預設為當前資料中心

result

[0xc0001a0090 0xc0001a00c0 0xc0001a00f0]
}}}

result

consul

min-kline

min-redis

}

}:} }

result

kline_info:
[root@test1 nameservice]

# consul kv put redis/config/maxmemory 4g

success! data written to: redis/config/maxmemory

[root@test1 nameservice]

# consul kv put redis/config/timeout 60

success! data written to: redis/config/timeout

[root@test1 nameservice]

# consul kv put redis/config/requirepass 12345

success! data written to: redis/config/requirepass

[root@test1 nameservice]

# curl 10.9.8.25:8500/v1/kv/redis/config/?keys

["redis/config/connections","redis/config/maxmemory","redis/config/requirepass","redis/config/timeout"

][root@test1 nameservice]

#

有如下consul template模板:

}}: } }=} }}

result

config:

connections=5

maxmemory=4g

requirepass=12345

timeout=60

[root@test1 nameservice]

# consul kv get stock/db/kline_info

模板如下:

[stock_kline_dbinfo]}}

=}}

result

[stock_kline_dbinfo]

db=klinedb

host=10.9.68.41

password=1234qwer

port=3306

user=klineread

Linux名字伺服器 named 簡單配置

今天要搭乙個網域名稱解析系統的測試環境,看了一下named的使用手冊,就能利用named搭出來乙個簡單的dns伺服器。一 命令和引數 named是乙個命令列程式,是linux的dns伺服器,基於rfcs 1033,1034和1035設計,命令列的引數如下 named c config file d ...

Tseer Tars名字服務功能的輕量化實現

tseer輕巧靈便,對業務的侵入性低,非tars服務亦可無縫接入。在服務發現的核心功能之上,tseer還支援多種負載均衡演算法,提供可靠的故障容錯策略,可有效解決業務跨地區跨機房呼叫等難題,極大提公升服務的可用性和呼叫質量,是微服務框架中優秀的名字服務解決方案。tseer擁有web管理介面和api接...

Tseer Tars名字服務功能的輕量化實現

作者 鐘科 tseer產品介紹 一.tseer簡介 tseer是一套服務註冊發現容錯的方案,是對tars名字服務功能的輕量化。在騰訊瀏覽器 應用寶 管家 手機書城 騰訊文學 廣點通等眾多業務中廣泛採用,目前日均承載百億級的請求量 tseer輕巧靈便,對業務的侵入性低,非tars服務亦可無縫接入。在服...