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服務亦可無縫接入。在服...