那些年,想和你一起认识的SpringCloud Eureka

  面对如此合理的这需求,但我不以为然,事实上并不是我不想学习,而是 ↓ 

  

那些年,想和你一起认识的SpringCloud Eureka

那些年,想和你一起认识的SpringCloud Eureka

那些年,想和你一起认识的SpringCloud Eureka

  实力不允许呀~

  直到有一天,突然被叫到会议室,心里疙瘩一下,这难道?项目出严重Bug了,冷静的我思索片刻后,很快就会否定了这种想法,结果巴拉巴拉2小时后,结论竟然是说:“现在我们这个项目要求重构,需用使用微服务架构,所以不了解相关技术的同事请利用这段时间学习复习一下,下个月要开始进入开发阶段。

  呵呵,会议上,总是有人把微服务吹的很厉害似的,我笑而不语,于是

  

那些年,想和你一起认识的SpringCloud Eureka

那些年,想和你一起认识的SpringCloud Eureka

  一周后

  

那些年,想和你一起认识的SpringCloud Eureka

  

   以下是我的笔记,我一般是带着问题去学习,有了需求,或者说是好奇心,因为这样学习的效率会更高

  当看到我们架构中有Eureka,我的第一个问题自然就是:做微服务为什么要使用Eureka,或者Eureka能够帮助我们解决什么样的问题?

  对于微服务的概念有经验的开发人员的一般都听说过吧,无非就是把大应用拆分为小应用,然后处理好服务的相互通讯即可,但是如果光启动微服务时,不启动eureka,其他微服务也是可以通过Nginx反向代理,用rest的方式从不同服务后台获取到数据(HTTP直怼),那多个eureka服务岂不是多此一举吗?细想一下其实并不是的,我觉得原因有如下:

  其一:

  如果后端微服务之间,有互相通信,那么在负载均衡时,相同的服务肯定会启动多个,而且使用不同的端口,这个时候,服务之间就可以通过注册在eureka中的名称来找到对方,而不是根据IP+端口号去找对方。反之如果后端微服务之间相互通信,都要知道具体的IP和端口,那开发起来十分麻烦,而IP地址也并不是固定不变的,除非使用域名封装,所以无论是测试还是开发还是上线都存在问题。

  其二:

  Eureka注册中心的作用很大的程度是作用于服务发现和服务心跳,在多个注册中心的时候,依赖于zuul的负载均衡,保证异常的服务停止,正常的服务加载,保证服务的稳定性。

  新手可能不理解这说的是什么意思,没关系,请往下看,首先我们先说说什么是SpringCloud

  SpringCloud是一系列框架的有序集合。它利用SpringBoot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、 熔断器、数据监控等,都可以用SpringBoot的开发风格做到一键启动和部署。是一套简单易懂、易部署和易维护的分布式系统开发工具包。

  主要组成如下:

  服务发现——Netflix Eureka                      服务调用——Netflix Feign

  熔断器——Netflix Hystrix                          服务网关——Netflix Zuul

  分布式配置——Spring Cloud Config         消息总线 —— Spring Cloud Bus

  

  本文主要介绍Eureka注册中心

  组成原理:

  Eureka包含两个组件: Eureka Server和Eureka Client:

  Eureka Server提供服务注册服务,各个Client节点启动后,会在Eureka Server中进行注册,这样EurekaServer中的服务注册表中将会存储所有可用服务节点的信息,服务节点的信息可以在界面中直观的看到。

  Eureka Client是一个java客户端,用于简化与Eureka Server的交互,客户端有一个内置的、使用轮询(round-robin)负载算法的负载均衡器。在应用启动后,将会向Eureka Server发送心跳,默认周期为30秒,如果Eureka Server在多个心跳周期内没有接收到某个节点的心跳,Eureka Server将会从服务注册表中把这个服务节点移除(默认90 秒)。如果Eureka Server做了集群,Eureka Server之间通过复制的方式完成数据的同步,同时Eureka还提供了客户端缓存机制,即使所有的Eureka Server都挂掉,客户端依然可以利用缓存中的信息消费其他服务的API。

  综上,Eureka能够通过心跳检查、客户端缓存等机制,确保了系统的高可用性。

 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpgdsj.html