Eureka Server服务注册中心
Eureka简介
Application Service
:相当于服务提供者
Application Client
:相当于服务消费者
Make Remote Call
:可以理解成调用RESTful API的行为
us-east1-1c
、us-east-1d
、us-east-1e
都是zone,它们都属于us-east-1
这个region
Eureka原理
1.Eureka Server 提供服务发现的能力,各个微服务启动时,会向Eureka Server注册自己的信息(如:IP、端口、微服务名称等),Eureka Server 会存储这些信息.
2.Eureka Client 是一个java客户端,用于简化与Eureka Server 的交互.
3.微服务启动后,会周期性(默认30秒)地向Eureka Server 发送心跳以续约自己的"租期".
4.如果Eureka Server 在一定时间内没有收到某个微服务实例的心跳,Eureka Server将会注销实例(默认90秒).
5.默认情况下,Eureka Server 同时也是Eureka Client. 多个Eureka Server 实例,互相之间通过复制的方式,来实现服务注册表中数据的同步.
6.Eureka Client 会缓存服务注册中的信息.这种方式有一定的优势----首先,微服务无须每次请求都查询Eureka Server,从而降低了Eureka Server的压力;其次,即使Eureka Server所有节点都宕掉,服务消费者依然可以使用缓存中的信息找到服务提供者并完成调用
Eureka服务高可用
部署Eureka Server 集群.Eureka Server 可以通过运行多个实例并相互注册的方式实现高可用部署,Eureka Server实例会彼此增量同步信息,从而确保所有节点数据一致.
spring:
profiles: peer1
server:
port: 1111
eureka:
instance:
hostname: peer1
prefer-ip-address: true
client:
service-url:
defaultZone: http://peer2:1111/eureka/,http://peer3:1111/eureka/
---
spring:
profiles: peer2
server:
port: 1111
eureka:
instance:
hostname: peer2
prefer-ip-address: true
client:
service-url:
defaultZone: http://peer1:1111/eureka/,http://peer3:1111/eureka/
---
spring:
profiles: peer3
server:
port: 1111
eureka:
instance:
hostname: peer3
prefer-ip-address: true
client:
service-url:
defaultZone: http://peer1:1111/eureka/,http://peer2:1111/eureka/
启动的时候,需要添加命令
--spring.profiles.active=pree1
--spring.profiles.active=pree2
--spring.profiles.active=pree3