spring cloud 服務發現
- 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
- 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