spring cloud - 服務發現

spring cloud 服務發現

  1. Eureka的高可用

(1).添加主機名

127.0.0.1 peer1 peer2

(2).修改application.yml

---
spring:
  profiles: peer1                                 # 指定profile=peer1
server:
  port: 8761
eureka:
  instance:
    hostname: peer1                               # 指定當profile=peer1時,主機名
  client:
    serviceUrl:
      defaultZone: http://peer2:8762/eureka/      # 將自己註冊到peer2這個Eureka上面去

---
spring:
  profiles: peer2
server:
  port: 8762
eureka:
  instance:
    hostname: peer2
  client:
    serviceUrl:
      defaultZone: http://peer1:8761/eureka/

(3).分別啓動兩個Eureka應用

java -jar microservice-discovery-eureka-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer1
java -jar microservice-discovery-eureka-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer2

(4).訪問註冊中心

// 訪問http://peer1:8761 ,我們會發現registered-replicas 中已經有peer2 節點了,同樣地,訪問http://peer2:8762 ,也能發現其中的registered-replicas 有peer1 節點

(5).將服務註冊到高可用的Eureka

eureka:
  client:
    serviceUrl:
      defaultZone: http://peer1:8761/eureka/,http://peer2:8762/eureka

(6).描述來源於:http://book.itmuch.com/2%20Spring%20Cloud/2.1.2%20Eureka%E7%9A%84%E9%AB%98%E5%8F%AF%E7%94%A8.html

  1. Consul的高可用

(1).Consul常用命令

// 運行一個consul agent

$ consul agent -dev

// 將agent加入到consul集羣

$ consul join IP

// 列出consul cluster集羣中的members

$ consul members

// 將節點移除所在集羣

$ consul leave

// 使用-client 參數可指定允許客戶端使用什麼ip去訪問

$ consul agent -dev -client 192.168.11.143

// 發現果然可以使用http://192.168.11.143:8500/ui 訪問了

(2).搭建Consul集羣

// 啓動node0機器上的Consul(node0機器上執行)

$ consul agent -data-dir /tmp/node0 -node=node0 -bind=192.168.11.143 -datacenter=dc1 -ui -client=192.168.11.143 -server -bootstrap-expect 1

// 啓動node1機器上的Consul(node1機器上執行)

$ consul agent -data-dir /tmp/node1 -node=node1 -bind=192.168.11.144 -datacenter=dc1 -ui

// 啓動node2機器上的Consul(node2機器上執行)

$ consul agent -data-dir /tmp/node2 -node=node2 -bind=192.168.11.145 -datacenter=dc1 -ui -client=192.168.11.145

// 將node1節點加入到node0上(node1機器上執行)

$ consul join 192.168.11.143

// 將node2節點加入到node0上(node2機器上執行)

$ consul join -rpc-addr=192.168.11.145:8400  192.168.11.143

// 這樣一個簡單的Consul集羣就搭建完成了,在node1上查看當前集羣節點

$ consul members -rpc-addr=192.168.11.143:8400

(3).訪問Consul集羣

// 我們可以通過:http://192.168.11.143:8500/ui/ 或者http://192.168.11.145:8500/ui/進行訪問,也可以在node1機器上通過http://127.0.0.1:8500/ui/ 進行訪問,原因是node1沒有開啓遠程訪問 ,三種訪問方式結果是一致的

(4).描述來源於:http://book.itmuch.com/2%20Spring%20Cloud/2.1.6%20Consul%E9%AB%98%E5%8F%AF%E7%94%A8.html

發佈了68 篇原創文章 · 獲贊 119 · 訪問量 25萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章