SpringBoot集成Consul以及docker部署consul并使用acl

部署Consul

  • 服務器上先安裝好docker以及docker-compose
  • 將docker-consul.yml文件上傳到服務器
version: '3'
services:
  consul-server1:
    image: consul:latest
    restart: always
    hostname: "consul-server1"
    ports:
      - "8500:8500"
      - "53"
    volumes:
      - /dockervolume/consul/data1:/consul/data
      - /dockervolume/consul/config1:/consul/config
      - /dockervolume/consul/log1:/consul/log
    command: "agent -server -bootstrap-expect 3 -ui -disable-host-node-id -client 0.0.0.0 -data-dir /consul/data -config-dir /consul/config"
  consul-server2:
    image: consul:latest
    restart: always
    hostname: "consul-server2"
    ports:
      - "8501:8500"
      - "53"
    volumes:
      - /dockervolume/consul/date2:/consul/data
      - /dockervolume/consul/config2:/consul/config
      - /dockervolume/consul/log2:/consul/log
    command: "agent -server -ui -join consul-server1 -disable-host-node-id -client 0.0.0.0 -data-dir /consul/data -config-dir /consul/config"
    depends_on:
      - consul-server1
  consul-server3:
    image: consul:latest
    restart: always
    hostname: "consul-server3"
    ports:
      - "8502:8500"
      - "53"
    volumes:
      - /dockervolume/consul/data3:/consul/data
      - /dockervolume/consul/config3:/consul/config
      - /dockervolume/consul/log3:/consul/log
    command: "agent -server -ui -join consul-server1 -disable-host-node-id -client 0.0.0.0 -data-dir /consul/data -config-dir /consul/config"
    depends_on:
      - consul-server1
  • 在該文件所在目錄執行以下語句自動創建三個consul節點
docker-compose -f docker-consul.yml up -d
  • 在三個節點本地掛載目錄config1,config2,config3文件夾下放置同一個acl.json 文件
{
  "acl_datacenter": "dc1",
  "acl_master_token": "這里放置自己生成的uuid",
  "acl_default_policy": "deny"
}
  • 重啟三個consul節點
  • 用postman訪問以下地址
PUT請求
請求頭:X-Consul-Token  acl.json文件里的uuid
請求路徑:http://ip:8500/v1/acl/create
請求body:{
  "Name": "Agent Token",
  "Type": "client",
  "Rules": "node \"\" { policy = \"write\" } service \"\" { policy = \"read\" }"
}
  • 此時可以使用acl.json里面的uuid來登錄查看consul并且創建其他的token

springboot項目集成consul

  • 依賴
 <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-consul-discovery</artifactId>
 </dependency>
  • 配置文件
spring:
  application:
    name: 項目名稱
  cloud:
    consul:
      host: ip地址
      port: 端口號
      discovery:
        acl-token: consul里面的token
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。