eureka原理_Eureka

第238次(Eureka)

学习主题:Eureka

1. 创建consumer服务

(1) 创建一个Maven的jar项目。

(2) 修改POM文件,添加Eureka启动器。

<dependency>
			

(3) 修改POM文件,添加Spring Boot的Web启动器。

<dependency>
			

(4) 修改全局配置文件,添加注册中心集群配置。

spring.application.name=eureka-consumer
server.port=9091
#设置服务注册中心地址,指向另一个注册中心
eureka.client.serviceUrl.defaultZone=http://eureka1:8761/eureka/,http://eureka2:8761/eureka/

(5) 在Service中通过LoadBalancerClient完成对服务的调用。

package 

(6) 创建Controller,在Controller中注入Service对象。

package 

2. 在consumer中调用provider服务

(1) 启动Consumer服务。

(2) 测试Consumer服务,查看调用Provider所返回的数据。

3. Eureka架构图原理

(1) 请描述Eureka架构原理。

ef35006a402b6c591d4ac42231198628.png

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

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

Cancel(服务下线):当 provider 关闭时会向 Eureka 发送消息,把自己从服务列表中删除。防止 consumer 调用到不存在的服务。

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

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

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

4. 什么是CAP定理

(1) 什么是CAP原则?

答:CAP 原则又称 CAP 定理,指的是在一个分布式系统中,Consistency(一致性)、Availability(可用性)、Partition tolerance(分区容错性),三者不可兼得

(2) C、A、P分别表示什么?

如上

(3) CA、CP、AP分别表示什么含义?

CA:如果想避免分区容错性问题的发生,一种做法是将所有 的数据(与事务相关的)都放在一台机器上。虽然无法100%保 证系统不会出错,但不会碰到由分区带来的负面效果。当然 这个选择会严重的影响系统的扩展性。

CP:相对于放弃〃分区容错性〃来说,其反面就是放弃可用性。 一旦遇到分区容错故障,那么受到影响的服务需要等待一定 时间,因此在等待时间内系统无法对外提供服务

AP:这里所说的放弃一致性,并不是完全放弃数据一致性, 而是放弃数据的强一致性,而保留数据的最终一致性。以网 络购物为例,对只剩下一件库存的商品,如果同时接受了两 个订单,那么较晚的订单将被告知商品告罄

5. ZooKeeper与Eureka的区别

(1) Zookeeper与Eureka有哪些区别?

97722faa8a3ae87da8fccd1ecc14c724.png

6. Eureka的服务自我保护

(1) 什么是自我保护模式?

答:一般情况下,微服务在Eureka上注册后,会每30秒发送心跳包,Eureka通过心跳来判断服务是否健康,同时会定期删除超过90秒没有发送心跳服务

(2) 为什么要启动自我保护?

答:因为同时保留〃好数据”与"坏数据"总比丢掉任何数据要更好,当网络故障恢复后, 这个Eureka节点会退出"自我保护模式

7. 关闭Eureka的服务自我保护

(1) 如何关闭自我保护?

修改 Eureka Server 配置文件

#关闭自我保护:true 为开启自我保护,false 为关闭自我保护 
eureka.server.enableSelfPreservation=false 
#清理间隔(单位:毫秒,默认是 60*1000) 
eureka.server.eviction.interval-timer-in-ms=60000

8. 服务的优雅停服

(1) 如何实现优雅停服?

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

需要再服务中添加 actuator.jar 包

修改配置文件:

#启用 shutdown
endpoints.shutdown.enabled=true
#禁用密码验证
endpoints.shutdown.sensitive=false

(2) 访问优雅停服的URI是什么?

答:http://hostName:port/shutdown

9. 开启Eureka注册中心的安全认证

(1) 实现Eureka安全认证的步骤是什么?

Eureka Server 中添加 security 包

<dependency>
			

修改 Eureka Server 配置文件

#开启 http basic 的安全认证 
security.basic.enabled=true 
security.user.name=user 
security.user.password=123456

修改访问集群节点的 url

eureka.client.serviceUrl.defaultZone=http://user:123456@eureka2:8761/eureka/

(2) 如果开启安全认证,注册中心在集群环境下各个节点访问时,如何传递用户名与密码?

如上

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值