Eureka服务注册中心

1.适用场景有局限:如果服务提供者的网络地址(ip和端口)发生变化,将会影响服务消费者。
2.无法动态伸缩:每个微服务一般都会部署多个实例,从而实现实现容灾和负载均衡,微服务系统需要具备自动伸缩的能力。
如何解决上述方案:
1)需要一个强大的服务发现机制,服务消费者使用这种机制获取服务提供者的网络信息,及时服务提供者发生变化,服务消费者也无需修改配置文件。
2)服务提供者、消费者、发现组件等三者关系:
clipboard

A.微服务启动件自己的网络地址等信息注册到服务发现组件中,服务发现组件会存储微服务的ip地址、端口等信息。
B.服务消费者可以从服务发现组件查询服务提供者的网络地址,并使用该地址调用服务提供者的接口。
C.各位服务与服务组件使用统一的心跳机制,如果服务发现组件长时间无法与某微服务实例通信,就会被注销。
D.微服务网络地址发生变更时,会重新注册到服务发现组件,避免人工修改提供者的网络地址。

3.服务发现组件核心功能:
1)服务注册表:记录微服务信息的服务的名称、ip、端口等,服务注册表查询API和管理API。
2)服务注册与服务发现:服务注册是微服务启动时,件自己的信息注册到服务发现组件上的过程。服务发现是指查询可用微服务列表及其网络地址的机制。
3)服务检查:服务发现组件使用过一定机制定时检测已注册的服务。

4.Eureka框架结构:
clipboard1

Eureka的框架分为2 个组件:Eureka Server和Eureka Client,具体作用如下:
1)Eureka Server提供服务发现的能力,微服务启动的时候,先Eureka Server注册自己的信息(ip、端口、服务名称),Eureka Server存储这些信息。
2)Eureka Client是一个客户端,用户简化与Server的交互。
3)Eureka Server在90m未收到微服务实例的心跳,Server会销毁该实例。
4)Eureka Client会缓存服务注册表中的信息,有一定的优势:减少查询Server的次数,Server节点都宕机,服务消费依赖缓存信息也可以完成服务的正常调用。

5.Eureka 配置:

6.Eureka Client注册配置:
eureka.instance.prefer-ip-address = true 表示将自己的IP注册到Eureka Server。如果不配置会将操作系统的hostname到Eureka Server.

7.Eureka服务注册中心包含:服务注册、服务发现,服务在集群中允许分片故障期间继续提供服务的发现和注册,当故障非农i安恢复运行时,集群中的其他分片会把他们的状态再次同步回来。不同区域的服务注册中心通过异步模式相互复制各自的状态,每个服务在不同的时间点,服务的状态有细微的差别。

8.Eureka客户端想注册中心注册自身,提供心跳来并周期性更新服务租约,查询服务端状态,并缓存在本地,周期性刷新服务状态。

9.Eureka Server在90s未收到服务实例的心跳,就会销毁该实例。
如果是短时的分区故障,直接销毁实例就有问题,因此Eureka Server采用自我保护模式。

10.Eureka服务治理基础框架3个核心要素:
1)服务注册中心:提供服务注册与发现的功能
2)服务提供者:将自己服务注册到服务注册中心
3)服务消费者:消费者应用从服务注册中心获取服务列表,为消费者提供服务。
架构图如下:
clipboard2

服务注册:Rest方式将数据发送给注册中心,配置:eureka.client.register-with-eureka=true;默认 false
服务续约,服务提供者通过http向注册中心发送心跳,让服务注册中心知道自己还活着。通过配置如下参数设置续约信息:
eureka.instance.lease-renewal-interval-in-seconds=30 续约任务的调用间隔时间,默认30s
eureka.instance.lease-expiration-duration-in--seconds=90 服务失效的时间,默认90s

服务消费:
获取服务:eureka.client.fetch-register=true;注册中心的职责就是维护服务实例,并检索服务。

               eureka.client.register-fetch-interval-seconds = 30;服务缓存清单的更新时间为30s

服务调用:服务消费在获取服务列表后,通过服务名可以获取具体的服务实例名和该实例的元数据信 息。通过这些信息,可以通过Ribbon采用轮询的方式进行调用,实现客户端的负载均衡。Eureka包含Region和Zone,一个Region包含多个Zone,每个服务客户端需要被注册到一个Zone中,每个客户端对应一个Region和一个Zone。

服务注册中心:
1)失效剔除:Eureka Server在启动时,创建一个定时任务,会60s将清单中超过90s没有续约的服务剔除。
2)自我保护:心跳失败比例在15分钟内,低于85%.

优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/212465

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
优质分享Android(本站安卓app)

优质分享Android(本站安卓app)

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Mario,低调大师唯一一个Java游戏作品

Mario,低调大师唯一一个Java游戏作品

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Sublime Text 一个代码编辑器

Sublime Text 一个代码编辑器

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。