2019-11-22

Spring Cloud之 Eureka 服务注册中心


1. 什么是服务?

服务注册中心是服务实现服务化管理的核心组件,类似于目录服务的作用,主要用来 存储服务信息,譬如提供者 url 串、路由信息等。服务注册中心是 SOA 架构中最基础的设 施之一。

2. 服务注册中心有什么作用?

1) 服务的注册

2) 服务的发现

3. 常见的注册中心有哪些?

1) Dubbo 的注册中心 Zookeeper

2) Sringcloud 的注册中心 Eureka

4.  Eureka 注册中心

4.1 什么是 Eureka 注册中心

Eureka 是 Netflix 开发的服务发现组件,本身是一个基于 REST 的服务。Spring Cloud

将它集成在其子项目 spring-cloud-netflix 中,以实现 Spring Cloud 的服务注册于发现,同时

还提供了负载均衡、故障转移等能力。

4.2   Eureka的三个角色

1) Eureka Server:

服务提供方

把自身的服务实例注册到 Eureka Server 中

2)Application Service (Service Provider)

服务调用方

通过 Eureka Server 获取服务列表,消费服务。

3) Application Client (Service Consumer)

服务调用方

通过 Eureka Server 获取服务列表,消费服务。

4.2.1 示例:创键一个简单的注册中心

步骤:

1) 创建项目

1.1 ) 修改pom.xml文件


2) 创建配置文件:application.properties

3) 编写启动类

4) 测试,如下图示:

4.2.2 创建集群版的注册中心

步骤:

1) 创建项目

1.1 修改pom.xml文件


2) 创建环境配置文件:

在搭建 Eureka 集群时,需要添加多个配置文件,并且使用 SpringBoot 的多环境配置方

式。集群中需要多少节点就添加多少个配置文件。

application-eureka1.properties

application-eureka2.properties

3)创建启动类

4) 部署到linux系统中

部署环境:需要安装 jdk1.8,正确配置环境变量。

注意:需要关闭 linux 的防火墙,或者是开放 8761 端口

4.1 ) 打成jar包

使用maven命令:clean install

4.2) 上传实例

在/usr/local/创建一个 eureka 的目录

将项目的 jar 包拷贝到/usr/local/eureka

4.3) 编写一个启动脚本文件  vim server.sh 

4.4 )设置脚本的运行权限

Chmod -R 755 server.sh

4.5 )  关闭防火墙

service iptables stop

4.5.1 )修改 linux 的 的 host 文件

Vim /etc/hosts

192.168.70.134 eureka1

192.168.70.135 eureka2

4.6 )  启动注册中心

./server.sh start 启动

./server.sh stop 停止


4.7 ) 测试

5. 在集群版 Eureka 注册中心中构建 provider 服务

步骤

1) 创建项目

2)  修改 pom 文件


3) 修改启动类


4) 修改 provider 的配置文件

5)  修改 windows 的 的 host 文件


6)创建接口(简单创建)

6.  在集群版的 Eureka 注册中心中构建 consumer 服务

步骤

1) 创建项目

2) 修改pom文件

3) 修改配置文件application.properties


4) 在  Service 中完成服务的调用

5) 编写controller

6) 测试  

http://localhost:9999/getusers

7.  Eureka 注册中心架构原理

Register(服务注册):把自己的 IP 和端口注册给 Eureka。

Renew(服务续约):发送心跳包,每 30 秒发送一次。告诉 Eureka 自己还活着。

Cancel(服务下线):当 provider 关闭时会向 Eureka 发送消息,把自己从服务列表中删除。防

止 consumer 调用到不存在的服务。

Get Registry(获取服务注册列表):获取其他服务列表。

Replicate(集群中数据同步):eureka 集群中的数据复制与同步。

Make Remote Call(远程调用):完成服务的远程调用。

8. 基于分布式 CAP 定理,分析注册中心两大主流框架:Eureka与 Zookeeper 的区别

8.1 什么是cap定理

CAP 原则又称 CAP 定理,指的是在一个分布式系统中,Consistency (一致性)、

Availability (可用性)、Partition tolerance (分区容错性),三者不可 兼得。

CAP 由 由 Eric Brewer 在 在 2000 年 年 PODC 会议上提出。 。 该猜想在提出两年后被证明成

的 立,成为我们熟知的 CAP 定理




8.2 Zookeeper 与 与 Eureka 的区别

8.2.1 Zookeeper保证cp

8.2.2 eureka保证ap


Zookeeper的设计理念就是分布式协调服务,保证数据(配置数据,状态数据)在多个服务系统之间保证一致性,这也不难看出Zookeeper是属于CP特性(Zookeeper的核心算法是Zab,保证分布式系统下,数据如何在多个服务之间保证数据同步)。Eureka是吸取Zookeeper问题的经验,先保证可用性。


9. Eureka 优雅停服

9.1 什么是自我保护模式

9.1.1 ,自我保护的条件

一般情况下,微服务在 Eureka 上注册后,会每 30 秒发送心跳包,Eureka 通过心跳来

判断服务时候健康,同时会定期删除超过 90 秒没有发送心跳服务。

9.1. 2,有两种情况会导致 Eureka Server 收不到微服务的心跳

a.是微服务自身的原因

b.是微服务与 Eureka 之间的网络故障

通常(微服务的自身的故障关闭)只会导致个别服务出现故障,一般不会出现大面积

故障,而(网络故障)通常会导致 Eureka Server 在短时间内无法收到大批心跳。

考虑到这个区别,Eureka 设置了一个阀值,当判断挂掉的服务的数量超过阀值时,

Eureka Server 认为很大程度上出现了网络故障,将不再删除心跳过期的服务。

9.1. 3,那么这个阀值是多少呢?

15 分钟之内是否低于 85%;

Eureka Server 在运行期间,会统计心跳失败的比例在 15 分钟内是否低于 85%

这种算法叫做 Eureka Server 的自我保护模式。

9.1.4 为什么要启动自我保护

1,因为同时保留"好数据"与"坏数据"总比丢掉任何数据要更好,当网络故障恢复后,

这个 Eureka 节点会退出"自我保护模式"。

2,Eureka 还有客户端缓存功能(也就是微服务的缓存功能)。即便 Eureka 集群中所有节点

都宕机失效,微服务的 Provider 和 Consumer

都能正常通信。

3,微服务的负载均衡策略会自动剔除死亡的微服务节点。

9.1.5 关闭自我保护

在全局配置文件中配置

9.2 优雅停服的设置

9.2.1 不需要Eureka Server 中配置关闭自我保护

9.2.2 添加 actuator.jar 包


9.2.3 修改配置文件


9.2.4 发送一个关闭服务的 URL 请求

导入HttpClientUtil工具类:

9.2.5 启动关闭



10  Eureka 注册中心的安全认证


10.1 在 Eureka Server 中添加 security 包

10.2  修改 Eureka Server 配置文件


©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,076评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,658评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,732评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,493评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,591评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,598评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,601评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,348评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,797评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,114评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,278评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,953评论 5 339
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,585评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,202评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,442评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,180评论 2 367
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,139评论 2 352

推荐阅读更多精彩内容