Spring Cloud Eureka (注册中心)

本文介绍了Eureka作为服务发现框架的基础知识,包括其工作原理、为何选用Eureka以及深入理解Eureka架构等内容。Eureka通过心跳检测、客户端缓存等机制确保系统的高可用性和灵活性。

一,eureka简介

Eureka是Netflix开发的服务发现框架,SpringCloud将它集成在自己的子项目spring-cloud-netflix中,实现SpringCloud的服务发现功能。 
为什么要使用Eureka,因为在一个完整的系统架构中,任何单点的服务都不能保证不会中断,因此我们需要服务发现机制,在某个节点中断后,其它的节点能够继续提供服务,从而保证整个系统是高可用的。 
服务发现有两种模式:一种是客户端发现模式,一种是服务端发现模式。Erueka采用的是客户端发现模式。

客户端服务发现的架构如图:

Eureka Server会提供服务注册服务,各个服务节点启动后,会在Eureka Server中进行注册,这样Eureka Server中就有了所有服务节点的信息,并且Eureka有监控页面,可以在页面中直观的看到所有注册的服务的情况。同时Eureka有心跳机制,当某个节点服务在规定时间内没有发送心跳信号时,Eureka会从服务注册表中把这个服务节点移除。Eureka还提供了客户端缓存的机制,即使所有的Eureka Server都挂掉,客户端仍可以利用缓存中的信息调用服务节点的服务。Eureka一般配合Ribbon进行使用,Ribbon提供了客户端负载均衡的功能,Ribbon利用从Eureka中读取到的服务信息,在调用服务节点提供的服务时,会合理的进行负载。 
Eureka通过心跳检测、健康检查、客户端缓存等机制,保证了系统具有高可用和灵活性。

二,为什么要使用eureka

 1. 它提供了完整的Service Registry和Service Discovery实现

  首先是提供了完整的实现,并且也经受住了Netflix自己的生产环境考验,相对使用起来会比较省心。

 2. 和Spring Cloud无缝集成

  项目如果使用了Spring Cloud和Spring Boot将有一套非常完善的开源代码来整合Eureka,所以使用起来非常方便。

  另外,Eureka还支持在我们应用自身的容器中启动,也就是说我们的应用启动完之后,既充当了Eureka的角色,同时也是服务的提供者。这样就极大地提高了服务的可用性。

       这一点是我们选择Eureka而不是zk、etcd等的主要原因,为了提高配置中心的可用性和降低部署复杂度,我们需要尽可能地减少外部依赖。

  3. Open Source

  最后一点是开源,由于代码是开源的,所以非常便于我们了解它的实现原理和排查问题。

三,深入理解eureka

 

上图简要描述了Eureka的基本架构,由3个角色组成:

  • Eureka Server:提供服务注册和发现
  • Service Provider:服务提供方,将自身服务注册到Eureka,从而使服务消费方能够找到
  • Service Consumer:服务消费方,从Eureka获取注册服务列表,从而能够消费服务。

需要注意的是,上图中的3个角色都是逻辑角色。在实际运行中,这几个角色甚至可以是同一个实例,比如在我们项目中,Eureka Server和Service Provider就是同一个JVM进程。

上图更进一步的展示了3个角色之间的交互。

  1. Service Provider会向Eureka Server做Register(服务注册)、Renew(服务续约)、Cancel(服务下线)等操作;
  2. Eureka Server之间会做注册服务的同步,从而保证状态一致;
  3. Service Consumer会向Eureka Server获取注册服务列表,并消费服务。

demo实例:eureka培训.rar

实例中eureka euraket eurekas为eureka-server 之间会做注册服务的同步,从而保证状态一致

eurekaclient 为consumer 消费服务

eurekaprovider 为服务提供者

将实例导入到工程中,打成JAR包 建个文件夹 加个SH脚本

SH脚本nohup java -jar 包名 -Xmx1024m -Xms512m -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode  -XX:+HeapDumpOnOutOfMemoryError > 包名.log&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值