Eureka原理理解和Eureka集群搭建

Eureka原理理解和Eureka集群搭建简介Eureka是Netflix开发的服务发现组件,本身是一个基于REST的服务。springcloud框架集成了Eureka,在微服务架构中充当注册中心的角色,方便管理各种微服务。Eureka原理Eureka分为EurekaServer和EurekaClient及服务端和客户端。EurekaServer为注册中心,是服务端,而服务提供者和消费者即为客户端,消费者也可以是服…

大家好,又见面了,我是你们的朋友全栈君。

简介

Eureka是Netflix开发的服务发现组件,本身是一个基于REST的服务。spring cloud框架集成了Eureka,在微服务架构中充当注册中心的角色,方便管理各种微服务。

Eureka原理

在这里插入图片描述
Eureka 分为 Eureka Server 和 Eureka Client及服务端和客户端。Eureka Server为注册中心,是服务端,而服务提供者和消费者即为客户端,消费者也可以是服务者,服务者也可以是消费者。同时Eureka Server在启动时默认会注册自己,成为一个服务,所以Eureka Server也是一个客户端,这是搭建Eureka集群的基础。

服务提供者向注册中心注册服务,并每隔30秒发送一次心跳,就如同人还活着存在的信号一样,如果Eureka在90秒后还未收到服务提供者发来的心跳时,那么它就会认定该服务已经死亡就会注销这个服务。这里注销并不是立即注销,而是会在60秒以后对在这个之间段内“死亡”的服务集中注销,如果立即注销,势必会对Eureka造成极大的负担。这些时间参数都可以人为配置。
Eureka还有自我保护机制,如果在15分钟内超过85%的节点都没有正常的心跳,那么Eureka就认为客户端与注册中心出现了网络故障,所以不会再接收心跳,也不会删除服务。

客户端消费者会向注册中心拉取服务列表,因为一个服务器的承载量是有限的,所以同一个服务会部署在多个服务器上,每个服务器上的服务都会去注册中心注册服务,他们会有相同的服务名称但有不同的实例id,所以拉取的是服务列表。我们最终通过负载均衡来获取一个服务,这样可以均衡各个服务器上的服务。

Eureka集群

如果我们只配置一个Eureka服务端,那么如果这个服务端崩盘,那么所有服务都无法获取,这肯定不是我们不期望的。所以为了保证高可用性,我们需要搭建Eureka集群。

在这里插入图片描述

前面讲原理时已经提到Eureka Server在启动时默认会注册自己,成为一个服务,所以Eureka Server也是一个客户端。也就是说们我们可以配置多个Eureka Server,让他们之间相互注册,当服务提供者向其中一个Eureka注册服务时,这个服务就会被共享到其他Eureka上,这样所有的Eureka都会有相同的服务。

Eureka集群搭建步骤很简单。
引入server依赖。
在这里插入图片描述
主方法上加上注解@EnableEurekaServer
在这里插入图片描述

然后配置端口、名称和向哪个服务端注册的url

在这里插入图片描述

服务提供者注册服务步骤也很类似。
引入client依赖。
在这里插入图片描述主方法上加上注解@EnableDiscoveryClient
在这里插入图片描述
配置向哪个服务端注册的url,这里我们要把所有服务端配上,虽然就算只向一个服务端注册它也会共享到所有服务端,但我们不能保证这个服务端没有蹦。在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/134431.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python最好的开发工具_Python编译器

    python最好的开发工具_Python编译器对于开发工具,仁者见仁智者见智,关键是自己喜欢,用着顺手就好,不用刻意去追求别人用的是什么工具。这里给大家主要推荐三款工具,分别是PyCharm、SublimeText3、VSCode,因为这

    2022年8月3日
    5
  • 久坐提醒插件,你值得拥有[通俗易懂]

    久坐提醒插件,你值得拥有[通俗易懂]文章首发于微信公众号「GitHub精选」,欢迎大家关注。大家好,我是章鱼猫。今天推荐的这个项目是「idea_seat」,IDEA久坐提醒插件。这个项目的作者是个妹子,为了程序员男朋友身体健康,作者开发了一款插件,这个插件每40分钟提醒一次该起来起来运动啦,并且展示一些骚骚的动图。12个经典小动作让你肩不痛,腰不酸,腿不麻!比如下边动图展示了其中三个动作:安装1、下载Jar包地址:htt…

    2022年10月1日
    2
  • list集合转化为数组_list集合转成数组

    list集合转化为数组_list集合转成数组packagecom.loaderman.jdk5;importjava.util.ArrayList;importjava.util.Arrays;importjava.util.List;publicclassDemo4_AsList{/***数组转换成集合*数组转换成集合虽然不能增加或减少元素,但是可以用集合的思想操作数组,也就是说可以使用其他集合中的方法*/public…

    2022年9月19日
    2
  • 头文件cstring、string、string.h的区别「建议收藏」

    头文件cstring、string、string.h的区别「建议收藏」头文件cstring、string、string.h的区别<string>是C++标准库头文件,使用stirng类型必须首先包含string头文件,用于字符串操作,string类型可以进行+、=、+=、>等运算。std::string类实际上是STL模板类std::basic_string的具体化。#include<string>usingnamespacestd;strings;<cstring>是C标准库头文件<strin

    2025年9月3日
    5
  • sqlite性能简单測试[通俗易懂]

    sqlite性能简单測试

    2022年1月27日
    39
  • IOS-支付宝

    IOS-支付宝

    2021年9月13日
    53

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号