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

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

Eureka 系列(01)最简使用姿态的更多相关文章

  1. Feign 系列(01)最简使用姿态

    目录 Feign 系列(01)最简使用姿态 1. 引入 maven 依赖 2. 基本用法 3. Feign 声明式注解 Feign 系列(01)最简使用姿态 Spring Cloud 系列目录(htt ...

  2. Eureka 系列(04)客户端源码分析

    Eureka 系列(04)客户端源码分析 [TOC] 0. Spring Cloud 系列目录 - Eureka 篇 在上一篇 Eureka 系列(01)最简使用姿态 中对 Eureka 的简单用法做 ...

  3. java io系列01之 "目录"

    java io 系列目录如下: 01. java io系列01之  "目录" 02. java io系列02之 ByteArrayInputStream的简介,源码分析和示例(包括 ...

  4. SAP接口编程 之 JCo3.0系列(01):JCoDestination

    SAP接口编程 之 JCo3.0系列(01):JCoDestination 字数2101 阅读103 评论0 喜欢0 JCo3.0是Java语言与ABAP语言双向通讯的中间件.与之前1.0/2.0相比 ...

  5. Java 集合系列 01 总体框架

    java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...

  6. Java 之 I/O 系列 01 ——基础

    Java 之 I/O 系列 目录 Java 之 I/O 系列 01 ——基础 Java 之 I/O 系列 02 ——序列化(一) Java 之 I/O 系列 02 ——序列化(二) 整理<疯狂j ...

  7. JavaScript进阶系列01,函数的声明,函数参数,函数闭包

    本篇主要体验JavaScript函数的声明.函数参数以及函数闭包. □ 函数的声明 ※ 声明全局函数 通常这样声明函数: function doSth() { alert("可以在任何时候调 ...

  8. 委托、Lambda表达式、事件系列01,委托是什么,委托的基本用法,委托的Method和Target属性

    委托是一个类. namespace ConsoleApplication1 { internal delegate void MyDelegate(int val); class Program { ...

  9. [.NET MVC4 入门系列01]Helloworld MVC 4 第一个MVC4程序

    [.NET MVC4 入门系列01]Helloworld MVC 4 第一个MVC4程序   一.练习项目: http://www.asp.net/mvc/tutorials/mvc-4/gettin ...

随机推荐

  1. Struts1.3——Struts标签

    1.struts标签的介绍 Struts框架提供了一组非常丰富的框架组件,同时也提供了一组标签库用于和这些组件交互,主要介绍以下三类: html标签 bean标签 logic标签 2.Html标签库 ...

  2. <读书笔记>《高性能网站建设指南:前端工程师技能精髓》

    只有10-20%的最终用户响应时间花在了下载HTML文档上.其余的80-90%时间花在了下载页面中的所有组件上. 规则1.减少HTTP请求 图片地图:将多个图片合并成一个,而后通过css定位显示不同的 ...

  3. UVA

    A network is composed of N computers connected by N - 1 communication links such that any two comput ...

  4. js基本函数和基本方法

    日期时间函数(需要用变量调用): var b = new Date(); //获取当前时间 b.getTime() //获取时间戳 b.getFullYear() //获取年份 b.getMonth( ...

  5. Head First PHP &MySQL学习笔记

      最近一段时间在学习PHP,买了<Head First PHP&MySQL>中文版这本书,之前买过<Head First设计模式>,感觉这系列的书籍总体来说很不错. ...

  6. 转 MySQL乐观锁和悲观锁

    悲观锁(Pessimistic Lock) 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁.传统的关系型数据库 ...

  7. 深海Django少年

    orm查询,如果遇到我之前的环境报错 就可去manage.py中拷贝前四行代码到tests文件中,然后增加两行代码: import django django.setup() 或者任意新建一个py文件 ...

  8. 四、hibernate的缓存

    缓存: 就是将数据保存到内存中,需要使用时直接从内存中获取,不需要每次查询数据库或者磁盘中的文件 hibernate的缓存 一级缓存:Session级别的缓存 二级缓存:SessionFactory级 ...

  9. Cobalt Strike特征修改

    一.Teamserver模块端口信息 vim teamserver修改Cobalt Strike默认服务端50500端口为其他任意端口 二.SSL默认证书信息 Cobalt Strike默认SSL证书 ...

  10. Nginx基础优化

    Nginx基础优化 1.隐藏nginx header版本号 1.1查看版本号 [root@Nginx ~]# curl -I http://www.yunwei.cn HTTP/1.1 200 OK ...