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