Consul

Consul學(xué)習(xí)

Consul是什么

Consul是一個服務(wù)管理軟件。支持多數(shù)據(jù)中心下,分布式高可用的,服務(wù)發(fā)現(xiàn)和配置共享。采用 Raft 算法,用來保證服務(wù)的高可用。

安裝Consul服務(wù)端

Consul和Eureka不同,Eureka只需要在項目中加入服務(wù)端依賴,就可以作為服務(wù)端使用;Consul需要從官網(wǎng)下載,并單獨安裝。

  1. 官網(wǎng)下載地址:https://www.consul.io/downloads.html

  2. 上傳到服務(wù)器

  3. unzip consul_1.5.3_linux_amd64.zip

  4. ./consul -v 查看版本

啟動Consul服務(wù)端

開發(fā)模式啟動單節(jié)點

  1. ./consul agent -dev -ui -client 0.0.0.0 啟動命令,添加紅色部分才能被外網(wǎng)訪問,并有web頁面

  2. http://192.168.78.131:8500打開管理頁面

  3. curl 192.168.78.131:8500/v1/catalog/nodes查看consul節(jié)點

集群模式啟動

  1. 創(chuàng)建4臺虛擬機
  2. 啟動集群,三個service和一個client
    2.1 ./consul agent -server -bootstrap-expect 3 -data-dir /tmp/consul -node=c1 -ui -client 0.0.0.0 -bind 192.168.1.109 -join 192.168.1.149
    2.2 ./consul agent -server -bootstrap-expect 3 -data-dir /tmp/consul -node=c2 -ui -client 0.0.0.0 -bind 192.168.1.151 -join 192.168.1.149
    2.3 ./consul agent -server -bootstrap-expect 3 -data-dir /tmp/consul -node=c3 -ui -client 0.0.0.0 -bind 192.168.1.152 -join 192.168.1.149
    2.4 ./consul agent -data-dir /tmp/consul -node=c4 -ui -client 0.0.0.0 -bind 192.168.1.116 -join 192.168.1.149
  3. 查看集群成員 ./consul members


    image.png
  4. 查看成員角色:./consul operator raft list-peers


    image.png

tips: 各參數(shù)含義

  1. agent:Consul的核心命令,主要作用有維護成員信息、運行狀態(tài)檢測、聲明服務(wù)以及處理請求等
  2. -server:就是代表server模式
  3. -ui:代表開啟web 控制臺
  4. -bootstrap-expect:代表想要創(chuàng)建的集群數(shù)目,官方建議3或者5
  5. -data-dir:數(shù)據(jù)存儲目錄
  6. -node:代表當(dāng)前node的名稱
  7. -client:應(yīng)該是一個客戶端服務(wù)注冊的地址,可以和當(dāng)前server的一致也可以是其他主機地址,系統(tǒng)默認是127.0.0.1
  8. -bind:集群通訊地址
  9. -join:加入的集群地址

服務(wù)注冊

通過HTTP API注冊服務(wù)

  1. 注冊一個ID為“test001”,name為“test”的服務(wù):curl -X PUT -d '{"id": "test001","name": "test","address": "127.0.0.1","port": 8080,"tags": ["dev"]}' http://192.168.78.131:8500/v1/agent/service/register

  2. 查看服務(wù)是否注冊成功
    2.1 curl http://192.168.78.131:8500/v1/catalog/service/test 查看服務(wù)信息
    2.2 curl http://192.168.78.131:8500/v1/health/service/test?passing 健康檢查
    2.3 http://192.168.78.131:8500打開管理頁面查看已注冊的服務(wù)

通過項目注冊服務(wù)

  1. 添加依賴
<dependency>

     <groupId>org.springframework.cloud</groupId>

     <artifactId>spring-cloud-starter-consul-discovery</artifactId>

</dependency>

<dependency>

     <groupId>org.springframework.boot</groupId>

     <artifactId>spring-boot-actuator-autoconfigure</artifactId>

</dependency>
  1. 配置文件
spring:
 application:
  name: consul-client
 cloud:
  consul:
   host: 192.168.78.131
   port: 8500
   discovery:
    register: true
    service-name: ${spring.application.name}
    tags: dev
    health-check-path: /actuator/health
    ip-address: 192.168.1.107
    prefer-ip-address: true
management:
 endpoints:
  web:
   exposure:
    include: "*"
  1. 啟動項目

  2. http://192.168.78.131:8500打開管理頁面查看已注冊的服務(wù)

    image.png

  3. 防火墻需要關(guān)閉,否則service check訪問不通。

  4. ip-address: 192.168.1.107 一定要有,為本機地址,否則找不到本機

  5. prefer-ip-address: true 一定要開啟

參考文檔

官方文檔:https://www.consul.io/docs/index.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、Consul簡介 Consul 是一套開源的分布式服務(wù)發(fā)現(xiàn)和配置管理系統(tǒng),由 HashiCorp 公司用 Go...
    QIQIHAL閱讀 5,068評論 0 11
  • 使用背景 客戶端的調(diào)用一個微服務(wù),在調(diào)用過程中,為了完成一次請求,代碼需要知道服務(wù)實例的網(wǎng)絡(luò)位置(IP 地址和端口...
    可能會走閱讀 1,593評論 0 2
  • 上一篇提到,項目用的分布式服務(wù)發(fā)現(xiàn)與注冊組件是consul,這篇文章主要來講下consul組件在項目中的應(yīng)用以及相...
    aoho閱讀 11,509評論 1 13
  • RADIUS 采用C/S構(gòu)架 用戶數(shù)據(jù)存儲在 RADIUS服務(wù)器上,由服務(wù)器對客戶端進行統(tǒng)一管理、認證、授權(quán)、計費...
    Yvanna_15閱讀 31,120評論 0 8
  • 這是難忘的一周,踐行中喜樂是我的慰籍,直到周日的晨跑活動,喜樂升至高潮.... 周日的湖心島晨跑活動讓本周的踐行喜...
    B4_Caimei閱讀 261評論 0 0

友情鏈接更多精彩內(nèi)容