Eureka 系列(01)最简使用姿态
Eureka 系列(01)最简使用姿态
Eureka 是由 Netflix 公司的服务发现中间件,包括服务发现服务器和客户端的。Spring Cloud Eureka 官网文档
目录
0. Spring Cloud 系列目录 - Eureka 篇
1. 服务发现与发现
1.1 服务发现(Service Discovery)
服务发现:在计算机网络中,一种自动发现设备或者服务的技术,通过服务发现协议(Service Discovery Protocol)实现。常见的协议有以下几种:
- Java: Jini(Apache River)
- REST: HATEOAS
- Web Services: UDDI(Universal Description Discovery and Integration)
1.2 服务注册(Service Registration)
服务注册(Service Registration)在计算机网络中,为了更好地治理多个设备或者服务,这些设备或者服务主动或者被动注册到管理中心,以便服务被发现和消费。常见注册中心有以下几种:
- Apache Zookeeper: CAP 满足 CP 理论,高一致性,牺牲了可用性。
- Netflix Eureka: CAP 满足 AP 理论,高可用性,牺牲了高一致性。
- Consul: GO语言编写。
2. Eureka
2.1 服务端: Eureka Server
Eureka Server 是 Eureka Client 的注册服务中心,管理所有注册服务、以及其实例信息和状态。
运行 Eureka Server:
- 依赖:org.springframework.cloud:spring-cloud-starter-eureka-server
- 激活: @EnableEurekaServer
默认情况下 Eureka 即是服务端,也是作为其它 Eureka Server 的客户端,需要配置 Eureka 的地址,单机版配置如下:
# 因为当前的 Eureka 是单机的,需要关闭集群的配置
eureka:
client:
register-with-eureka: false # 取消向注册中心注册
fetch-registry: false # 取消向注册中心获取注册信息(服务、实例信息)
service-url:
defaultZone: http://localhost:10001/eureka
2.1.1 Eureka Server HA
集群情况下 Eureka 也是作为其它 Eureka Server 的客户端,配置 Eureka 的地址即可:
eureka:
instance:
hostname: peer1
client:
service-url:
defaultZone: http://peer2:10012/eureka,http://peer3:10013/eureka
2.1.2 OPEN API
操作 | OPEN API |
---|---|
获取所有服务 | http://${host}:${port}/euraka/apps |
获取指定应用服务 | http://${host}:${port}/euraka/apps/{appName} |
获取指定应用的指定实例服务 | http://${host}:${port}/euraka/apps/{appName}/{id} |
注册实例服务 | http://${host}:${port}/euraka/apps/{appName} |
2.2 客户端: Eureka Client
Eureka Client 为当前服务提供注册、同步、查找服务以及其实例信息或状态等能力。
运行 Eureka Client
-
依赖:org.springframework.cloud:spring-cloud-starter-eureka
-
激活: @EnableEurekaClient(只有 Eureka 才有效) 或者 @EnableDiscoveryClient
是不是没扫描包@ComponentScan
eureka.client.service-url.defaultZone=http://localhost:10001/eureka
(1) Euraka Client API
EurekaClientConfigBean
Eureka 客户端配置 APIEurekaInstanceConfigBean
Eureka 实例配置 API
每天用心记录一点点。内容也许不重要,但习惯很重要!