1、定義一個服務 https://www.consul.io/docs/agent/services.html 該方法是服務註冊中提供服務的最常用的方法。 關於服務的定義:服務的屬性我們會在後邊每出現一個總結一個,最後再做總結。 2、服務註冊 2.1、創建服務文件所存放的文件夾 說明: .d做尾碼: ...
1、定義一個服務
https://www.consul.io/docs/agent/services.html
該方法是服務註冊中提供服務的最常用的方法。
關於服務的定義:服務的屬性我們會在後邊每出現一個總結一個,最後再做總結。
2、服務註冊
2.1、創建服務文件所存放的文件夾
說明:
- .d做尾碼:表示一系列配置文件的存放目錄(directory)
2.2、創建服務並寫入上述文件夾中的一個文件
說明:
- 一個服務我們會配置為json格式:比如上述的單引號之間的形式
- 一個服務會寫在一個json文件中
註意:
- 如果上述文件夾沒有許可權進行操作,先改變文件夾許可權,
3、服務查詢
先啟動consul進程。
切換屏幕-->
說明:
- 根據-config-dir指定根據服務註冊的目錄中的文件來啟動服務。
兩種查詢方式:DNS和HTTP
3.1、DNS:
訪問的服務名字:
- tag.servicename.service.consul tag和servicename都是創建服務的時候配置的
- DNS訪問的埠是8600
3.2、HTTP:
說明:
- 訪問的路徑:host:port/版本號/catalog/service/服務名
- Address:用於指定一個特定service的IP地址,預設情況下,使用的是該service使用的agent。
4、多個服務註冊的情況
4.1、每一個服務註冊到一個文件
假設現在又創建了一個secondservice服務,我會將該服務寫入secondservice.json文件中去,如下:
使用http去訪問:
說明:按照服務名去訪問。
4.2、多個服務寫在同一個json文件中
說明:
- 放在services中而不是service里(上邊的單文件單服務是放在service里的)
- 多個服務放在一個數組裡邊
使用http去訪問:
說明:按照服務名去訪問。
註意:在實際開發中,微服務數量眾多,
如果每個文件都放在一個文件里,文件會非常多,不好!
如果所有微服務都放在一個文件里,文件太大,也不好!
所以,需要二者結合。例如,假設有100個微服務,放在10個json文件中去,每個json文件存放10個服務。
文章參考自:https://www.consul.io/intro/getting-started/services.html