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

表1:Eureka 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 客户端配置 API
  • EurekaInstanceConfigBean Eureka 实例配置 API

每天用心记录一点点。内容也许不重要,但习惯很重要!

最新文章

  1. UVA445
  2. caffe初步实践---------使用训练好的模型完成语义分割任务
  3. 031. aps.net中数据绑定控件两种添加自动编号的方法
  4. Linux Install VirtualBox
  5. hdu 2837 坑题。
  6. [转][工地][存]Oracle触发器死锁问题解决
  7. mac vim shell配置
  8. sqlserver如何启动数据库邮件
  9. C-最长回文子串(2)
  10. MyEclipse导入主题文件epf后xml及jsp等页面中点击标签之后显示灰白
  11. 201521123110第二周Java学习总结
  12. Python For嵌套循环 图形打印X型 nested loop -练习题
  13. Java与算法之(9) - 直接插入排序
  14. SqlSever数据库实践周
  15. R语言集合操作
  16. Nodejs运行错误小结
  17. spring-data-mongo的MongoTemplate开发
  18. Oracle中查看所有表和字段
  19. windous----快捷键
  20. Entity Framework执行原生SQL语句

热门文章

  1. Oracle 表空间详解
  2. EmWin 如何显示汉字 不用在文件中使用编码
  3. PAT甲级——A1140 LookAndSaySequence【20】
  4. Java学习第一次总结
  5. linux Cron 定时任务(centos 7.2 测试可用)
  6. LVM-扩容目录
  7. CF1216X
  8. Java原理领悟-JMM(java内存模型认知)
  9. linux常用命令记录(一)
  10. ios执行失去焦点,不执行点击事件