Eureka服务注册中心

上传人:ste****杂谈 文档编号:181585792 上传时间:2021-05-02 格式:DOC 页数:7 大小:405KB
返回 下载 相关 举报
Eureka服务注册中心_第1页
第1页 / 共7页
Eureka服务注册中心_第2页
第2页 / 共7页
Eureka服务注册中心_第3页
第3页 / 共7页
Eureka服务注册中心_第4页
第4页 / 共7页
Eureka服务注册中心_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《Eureka服务注册中心》由会员分享,可在线阅读,更多相关《Eureka服务注册中心(7页珍藏版)》请在金锄头文库上搜索。

1、Eureka学习目标什么是注册中心?注册中心可以说是微服务架构中的通讯录,它记录了服务与服务地址之间的映射关系。在分布式架构中,服务会注册到这里,当服务需要调用其他服务时,就到这里找到服务的地址,进行调用常见的注册中心Netflix EurekaAlibaba NacosHashicorp ConsulApache ZookeeperCoreOS EtcdCNCF CoreDNS特性EurekaNacosConsulZookeeperCAPAPCP+APCPCP健康检查Client BeatTCP/HTTP/MYSQL/Client BeatTCP/HTTP/gRPC/CMDKepp Aliv

2、e雪崩保护有有无无自动注销实例支持支持不支持支持访问协议HTTPHTTP/DNSHTTP/DNSTCP监听支持支持支持支持支持多数据中心支持支持支持不支持跨注册中心同步不支持支持支持不支持Spring Cloud集成支持支持支持支持为什么需要注册中心?1.服务注册后,如何被及时发现2.服务宕机后,如何及时下线3.服务如何有效的水平扩展4.服务发现时,如何进行路由5.服务异常时,如何进行降级6.注册中心如何实现自身的高可用这些问题的解决都依赖于注册中心。注册中心的功能有点类似于DNS服务器或者负载均衡器服务中心解决了什么问题?服务管理服务的依赖关系管理什么是Eureka注册中心Eureka是Ne

3、tflix开发的服务发现组件,本身是一个基于Rest的服务。实现了Spring Cloud的服务注册与发现,同时还提供了负载均衡,故障转移等能力Eureka注册中心的三种角色Eureka Server:通过Register、Get、Renew等接口提供服务的注册与发现Application Service(Service Provider):服务提供方,把自身的服务实例注册到Eureka Server中Application Client(Service Consumer):服务调用方,通过Eureka Server获取服务列表,消费服务Eureka三种角色的运行过程1.服务提供者(Servi

4、ce Provider)实例化服务2.服务提供者将服务注册到注册中心(Eureka Server)3.注册中心收录服务4.服务消费者(Service Consumer)从注册中心获取服务列表5.服务消费者基于负载均衡算法从地址列表选择一个服务地址进行服务调用6.服务提供者向注册中心定期发送心跳7.注册中心检查没有定期发送心跳的服务并在一定的时间内剔除出服务列表Eureka入门案例1.创建项目2.具体项目代码高可用Eureka注册中心1.创建项目2.具体项目代码Eureka架构原理1.Register(服务注册):把自己的ip和端口号注册给Eureka2.Renew(服务续约):发送心跳包,每3

5、0秒发送一次,告诉Eureka自己还活着,如果90秒还未发送心跳,宕机、3.Cancel(服务下线):当Provider关闭时会向Eureka发送消息,把自己从服务列表中删除。防止Consumer调到不存在的服务4.Get Registry(获取服务注册列表):获取其他服务列表5.Replicate(集群中数据同步):Eureka集群中数据复制与同步6.Make Remote Call(远程调用):完成服务的远程调用CAP原则C:Consistency 一致性A:Availability 可用性P:Partition-Tolarance 分区容错最多只能保证其中的两条,三者不可兼得特性定理Co

6、nsistency也叫数据原子性,系统在执行某项操作后仍处于一致的状态。在分布式系统中,更新操作执行成功后所有用户都能读到最新的值Availability每一个操作总是在一定时间返回结果,结果可以是成功或者失败Partition-Tolarance在网络分区的情况下,被分割的节点仍能对外提供服务CAP取舍策略CA:放弃C的同时意味着放弃了系统的扩展性,也就是分布式节点受限,没办法部署子节点CP:相当于每个请求都要求在服务器之间保持强一致性,一旦发生网络故障或者消息丢失等情况,则要牺牲用户体验,等待所有的数据一致后才让用户访问。最典型的设计有分布式数据库AP:高可用并允许分区,需要放弃一致性。一

7、旦分区发生,节点之间可能会失去联系,为了高可用,每个节点只能用本地数据提供服务,这样会导致数据的步一致性。最典型的设计有电商秒杀CAP取舍原则总结对于多数大型互联网应用的场景,主机众多,部署分散,而且现在的集群规模越来越大,节点只会越来越多。所以节点之间故障,网络故障是常态,所以分区容错是分布式系统必须要面对的事情。所以只能在C和A之间取舍了。对于传统的项目,比如银行转账,C必须保证,那只能在A和P之间取舍Eureka启动自我保护的条件一般情况下,服务在Eureka上注册后,会每30秒发送心跳包,Eureka通过心跳来判断服务是否健康,同时会定期删除90秒没有发送心跳的服务有两种情况会导致微服

8、务收不到心跳:1.微服务自身的原因,如手动停到2.微服务与Eureka之间的网络故障自我保护模式:Eureka Server在运行期间会去统计心跳失败比例在15分钟之内是否低于85%,如果低于85%,Eureka Server会将这些实例保护起来,这些实例不会过期,同时提示一个警告。这种算法叫做Eureka Server的自我保护模式。自我保护模式默认是开启的,不需要可以在配置文件中关闭Eureka为什么需要自我保护1.因为同时保留好数据与坏数据总比丢掉任何数据要好,当网络故障恢复后,这个Eureka节点会退出自我保护模式2.Eureka还有客户端缓存功能(也就是微服务的缓存功能)。即使Eur

9、eka集群中的所有节点都宕机失效,微服务的Provider和Consumer都能正常通信3.微服务的负载均衡策略会自动剔除掉死亡的微服务节点Eureka如何关闭自我保护eureka:server:enable-self-preservation:false #true开启自我保护,false反之eviction-interval-timer-in-ms:6000 #清理间隔时间,单位毫秒Eureka优雅停服配置了优雅停服之后,就不需要配置关闭自我保护了1.在provider中添加依赖org.springframework.bootspring-boot-starter-actuator2.配置

10、文件management:endpoints:web:exposure:include: shutdown #开启shutdown端点访问endpoint:shutdown:enabled: true #开启shutdown实现优雅停服3.优雅停服post请求访问http:localhost:7070/actuator/shutdownEureka安全认证1.在注册中心添加security依赖org.springframework.bootspring-boot-starter-security2.配置文件注册中心配置安全认证spring:#注册中心配置安全认证security:user:na

11、me: rootpassword: 1234563.修改访问集群的url注册中心的配置文件eureka:instance:hostname: eureka01 #主机名,不配置的时候根据操作系统的主机名来获取prefer-ip-address: true #是否使用ip地址注册instance-id: $spring.cloud.client.ip-address:$server.portclient:server-url: #指向另一个注册中心#defaultZone: http:/localhost:8762/eureka/defaultZone:http:/root:123456loca

12、lhost:8762/eureka服务提供者的配置文件eureka:instance:prefer-ip-address: true #是否使用ip地址注册instance-id: $spring.cloud.client.ip-address:$server.portclient:service-url: #设置服务注册中心地址defaultZone: http:/http:/root:123456localhost:8761/eureka/,http:/root:123456localhost:8762/eureka/服务消费者的配置文件eureka:client:register-wit

13、h-eureka: false #是否将自己注册到注册中心,默认为trueregister-fetch-interval-seconds: 10 #表示eureka client多久去服务器拉取注册信息,默认是30sservice-url:defaultZone: http:/root:123456localhost:8761/eureka/,http:/root:123456localhost:8762/eureka/4.过滤CSRFEureka会自动配置CSRF防御机制,Spring Security认为POST、PUT、DELETE都是有风险的。如果这些method发送过程中没有带上CSRF token的话,会被直接拦截并返回403forbidden方案1:使CSRF忽略/eureka/*的所有请求方案2:保持密码验证的同时禁用CSRF防御机制

展开阅读全文
相关资源
相关搜索

当前位置:首页 > IT计算机/网络 > Java

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号