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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 正则表达式详细讲解篇

    正则表达式详细讲解篇

    2021年11月11日
    54
  • 高性能php7_php5升级到php7

    高性能php7_php5升级到php7研究PHP7技术的背景公司开源节流的大背景下我们需要节省成本PHP7相对于现在魅族线上的版本5.5性能提升至少一倍以上社区日活用户增长迅速(15年数据日均PV年增长348%日均UV年增长112%)移动互联网的大环境下要求我们的程序能够更快的速度响应用户的请求以满足更好的用户体验对新技术的求知欲望(满足自己的一点点虚荣心)PHP7性能小记PHP7性能初印象(比PHP5.4提升

    2022年9月16日
    5
  • RT Thread FinSH组件

    RT Thread FinSH组件FinSH入口rt_components_init();voidmain_thread_entry(void*parameter){externintmain(void);#ifdefRT_USING_COMPONENTS_INIT/*RT-Threadcomponentsinitialization*/rt_components_init();#endif/*RT_USING_COMPONENTS_INIT*/#ifdefRT_US

    2022年5月21日
    41
  • jmeter性能测试方案

    jmeter性能测试方案性能测试方案性能测试概述性能测试是通过自动化的测试工具模拟多种正常 峰值以及异常负载条件来对系统的各项指标进行测试 测试前期准备 1 测试需求 1 1 需要将开发给定的需求 前端页面的智能问答接口性能 转为吞吐量和响应时间 1 2 根据测试目的 细化需求 2 测试准备 测试准备包括测试客户端机器准备 测试数据准备 测试脚本准备 3 测试执行 测试的执行中 需要监控测试客户端和服务器性能 监控服务器端应用情况 1 3 1 客户端的系统资源 cpu io memory 情况 1

    2025年6月6日
    4
  • java分页计算公式_java将list分页

    java分页计算公式_java将list分页1根据传入的参数计算1.1请求参数(currPage:当前页、pageSize:每页展示条数),根据这两个参数计算起始起始条数、截止条数 起始条数 firstIndex=(currPage-1)*pageSize 截止条数 lastIndex=currPage*pageSize1.2计算总页码(需获取总条数)pages=total%pageSize==0?total/pageSize:total/pageSize+1…

    2022年10月3日
    2
  • 教师工龄怎么算?教师工龄和教龄的区别_教师辞职前的教龄算工龄吗

    教师工龄怎么算?教师工龄和教龄的区别_教师辞职前的教龄算工龄吗一、工龄和教龄的区别:一。工龄和教龄的概念。工龄:是指职工自与单位建立劳动关系起,以工资收入为主要来源或全部来源的工作时间,可分为一般工龄和本企业工龄。教龄:是指教师从事教学工作连续累计时

    2022年8月2日
    9

发表回复

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

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