如何进行Eureka服务注册与发现的分析
如何进行Eureka服务注册与发现的分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
成都创新互联是一家网站设计公司,集创意、互联网应用、软件技术为一体的创意网站建设服务商,主营产品:响应式网站设计、品牌网站建设、网络营销推广。我们专注企业品牌在网站中的整体树立,网络互动的体验,以及在手机等移动端的优质呈现。网站建设、成都做网站、移动互联产品、网络运营、VI设计、云产品.运维为核心业务。为用户提供一站式解决方案,我们深知市场的竞争激烈,认真对待每位客户,为客户提供赏析悦目的作品,网站的价值服务。
大白话服务服务注册与发现
Eureka在微服务的体系中,主要的功能是实现服务治理,服务注册与发现的,那么什么是服务注册与发现呢?
微服务就是将项目中的模块按照业务来进行拆分,如上图,商品是一个独立的服务,订单也是独立的服务,还可以根据需要将订单服务部署为两个。然后商品服务需要使用订单的时候,就去调用订单服务。
但是在上图中有几个问题是需要解决的:
商品服务想要调用订单服务,怎么知道订单服务1 和 订单服务2的地址?如果临时增加一个订单服务3,那么怎么告诉商品服务订单服务3的地址?
如果订单服务1宕机了,这个时候商品服务如果不知道,依然选择调用已经宕机的订单服务1,会服务调用失败。也就是说:订单服务1宕机了,如何把这个情况即时的告诉其他所有的服务?
……
解决以上问题的方案就是:引入服务管理者,就是服务治理。
先举一个生活的小栗子:
在没有互联网的时代,如果要租房子需要找中介,中介就是一个服务管理者的角色
我们是租房者,要找房源,这个关系就像是商品服务找订单服务
那么房源怎么来呢?房东在需要出租房子的时候,去找中介,将自己的房源信息登记到中介那里。这个过程叫做注册。
我们要租房子,假如说要租两室一厅,首先需要先找中介要所有房源的注册清单,从清单中可以找到两室一厅。这个过程叫做发现。
这个例子可以帮助大家,理解注册和发现两个过程,以及管理者的角色。
通过以上例子我们得到下图:
服务治理的管理者我们称之为注册中心。
服务注册:每个服务在启动的时候,告诉注册中心自己的位置信息。
服务发现:商品服务想要调用订单服务,先找注册中心获取到所有服务的位置信息,然后找到订单服务的地址,发起调用。
心跳机制:服务启动之后,每过30秒向注册中心心跳一次(就是发送一个消息,告诉注册中心自己还活着),如果注册中心长时间没有收到某个服务的心跳,那么就会认为这个服务已经宕机,就从服务注册列表中删除。
什么是Eureka
Spring Cloud封装了Netlix 公司开发的Eureka模块来实现服务治理,管理服务于服务之间依赖关系,可以实现服务调用、负载均衡、容错等,实现服务发现与注册。
Eureka 组件
在Eureka的架构中,分为 Eureka Server 和 Eureka client。
Eureka 注册中心 Eureka Server
Eureka Server 作为服务注册功能的服务器,它是服务注册中心。
Eureka Server提供服务注册服务:各个节点启动后,会在EurekaServer中进行注册,这样EurekaServer中的服务注册表中将会存储所有可用服务节点的信息,服务节点的信息可以在界面中直观的看到(监控页面)
而系统中的其他微服务,使用 Eureka 的客户端连接到 Eureka Server并维持心跳连接。这样系统的维护人员就可以通过 Eureka Server 来监控系统中各个微服务是否正常运行。
Eureka 客户端 Eureka Client
EurekaClient是一个Java客户端,用于简化Eureka Server的交互,客户端同时也具备一个内置的、使用轮询(round-robin)负载算法的负载均衡器。
在应用启动后,将会向Eureka Server发送心跳(默认周期为30秒)。如果Eureka Server在多个心跳周期内没有接收到某个节点的心跳,EurekaServer将会从服务注册表中把这个服务节点移除(默认90秒)
Eureka Client会缓存服务注册表中的信息。这种方式有一定的优势首先可以降低Eureka Server的压力,其次当所有的Eureka Server宕机服务调用方依然可以完成调用
看完上述内容,你们掌握如何进行Eureka服务注册与发现的分析的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!
本文标题:如何进行Eureka服务注册与发现的分析
文章路径:http://cdiso.cn/article/pgdeej.html