Spring Cloud全解析:注册中心之初识Eureka

server/2024/9/20 3:54:05/ 标签: java

Eureka简介

关于Eureka

Eureka是springCloud在一开始的时候推荐使用的注册中心,是Netflix开源的服务发现组件

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

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

EurekaClient是一个Java客户端,用于简化Eureka Server的交互,客户端同时也具备一个内置的、使用轮询(round-robin)负载算法的负载均衡器。在应用启动后,将会向Eureka Server发送心跳(默认周期为30秒)。如果Eureka Server在多个心跳周期内没有接收到某个节点的心跳,EurekaServer将会从服务注册表中把这个服务节点移除(默认90秒)。Eureka Client会缓存服务注册表中的信息,这种方式可以使得微服务不需要每次请求都查询Eureka Server,从而降低了Eureka Server的压力,如果Eureka Server所有节点都宕掉,服务消费者依然可以使用缓存中的信息找到服务提供者完成调用

eureka的高可用性,不需要等注册信息replicate到其他节点,也不保证注册信息是否replicate成功,当数据出现不一致时,虽然A,B上的注册信息不完全相同,但每个Eureka节点依然能够正常对外提供服务,这会出现查询服务信息如果请求A查不到,但请求B就能查到

多个Eureka Server实例之间,互相之间通过复制的方式,来实现服务注册表中数据的同步

服务提供者

服务提供者是作为EurekaClient存在的,其主要工作是

  • 向服务器注册服务
  • 发送心跳给服务器
  • 向服务器获取注册列表
服务调用者

服务调用者也是作为客户端存在的,其主要职责就是发现与调用服务

Eureka Server注册中心配置

依赖
<!--eureka-server服务端 -->
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>

如果是F版及以上的话,需要使用该依赖

<!--新版本的eureka-server服务端 -->
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
yml配置
eureka:instance:hostname: localhost# 过期时间,默认90s, 可不配置lease-expiration-duration-in-seconds: 90# 续约时间,默认30s,可不配置lease-renewal-interval-in-seconds: 30# ip地址优先prefer-ip-address: trueserver:# 开启自我保护机制,可以在本地测试时关闭,在正式上线时不建议关闭,默认为trueenable-self-preservation: true# 去除失效服务的时间间隔(毫秒)eviction-interval-timer-in-ms: 4000client:# 启用eureka客户端,默认为true, 可不配置enabled: true# 不需要拉取注册表,本身就是注册中心,只需要维护实例,不需要拉取注册,默认为true# 如果是eureka server集群的话,是需要互相同步的fetchRegistry: false# 两个心跳参数,默认都是30s,可不配置instance-info-replication-interval-seconds: 30# 拉取服务的间隔 使用定时任务来进行拉取  拉取之后存在localRegionApps中# 如果Eureka server挂掉之后,请求server进行拉取最新的地址失败,并不会把缓存清空,所以只要所访问的服务地址没变,依然是可以正常访问的registry-fetch-interval-seconds: 30# 不向注册中心注册自身,默认为trueregisterWithEureka: falseserviceUrl:defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/  # 设置与eureka server交互的地址,用来查询服务和注册服务# 如果是集群的eureka server,需要配置其他server机器的地址,多个地址用逗号分隔
#      defaultZone: http://eureka2:7002/eureka,http://eureka3:7003/eureka
启动类
java">@SpringBootApplication
@EnableEurekaServer  // 启动Eureka Server相关功能
public class EurekaServerApp {public static void main(String[] args) {SpringApplication.run(EurekaServerApp.class,args);}
}

业务微服务配置

依赖
<!-- eureka -->
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>

如果是F版及以上的话,需要使用该依赖

<!-- 新版 eureka client -->
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
yml配置
eureka:client:serviceUrl:defaultZone: http://localhost:8761/eureka  #如果eureka server使用了basic认证的话,地址需要改成http://username:password@localhost:8761/eurekainstance:instance-id: ${spring.cloud.client.ip-address}:${server.port}prefer-ip-address: true   #以IP地址注册到服务中心,如果为false会使用微服务所在的hostnameip-address: 192.168.217.211non-secure-port: 8767#Eureka客户端向服务端发送心跳的时间间隔,单位为秒(客户端告诉服务端自己会按照该规则),默认30lease-renewal-interval-in-seconds: 10#Eureka服务端在收到最后一次心跳之后等待的时间上限,单位为秒,超过则剔除(客户端告诉服务端按照此规则等待自己),默认90lease-expiration-duration-in-seconds: 30status-page-url: /info #状态页面health-check-url-path: /health #健康检查页面
启动类
java">@SpringBootApplication
@EnableEurekaClient  // 服务启动后注册到Eureka Server注册中心中  也可以使用@EnableDiscoveryClient,对于@EnableEurekaClient只对于Eureka可用,而@EnableDiscoveryClient可以使用任意注册中心服务
public class ProviderApp {public static void main(String[] args) {SpringApplication.run(ProviderApp.class,args);}
}

https://zhhll.icu/2021/框架/微服务/springcloud/注册中心/Eureka/1.Eureka简介/


http://www.ppmy.cn/server/93447.html

相关文章

使用Echarts来实现数据可视化

目录 一.什么是ECharts? 二.如何使用Springboot来从后端给Echarts返回响应的数据&#xff1f; eg:折线图&#xff1a; ①Controller层&#xff1a; ②service层&#xff1a; 一.什么是ECharts? ECharts是一款基于JavaScript的数据可视化图标库&#xff0c;提供直观&…

【TS】TypeScript类型断言:掌握类型转换的艺术

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 TypeScript类型断言&#xff1a;掌握类型转换的艺术1. 引言2. 什么是类型断言&a…

金融居间crm客户系统-助力金融居间企业实现高效的客户关系管理

在当今瞬息万变的金融居间领域&#xff0c;金融居间企业若想在激烈的竞争中脱颖而出&#xff0c;实现高效的客户关系管理至关重要。而鑫鹿金融居间CRM 客户系统的出现&#xff0c;恰如一把利剑&#xff0c;为企业披荆斩棘&#xff0c;开辟出一条通向成功的道路。 金融居间CRM 客…

如何学习自动化测试工具!

要学习和掌握自动化测试工具的使用方法&#xff0c;可以按照以下步骤进行&#xff1a; 一、明确学习目标 首先&#xff0c;需要明确你想要学习哪种自动化测试工具。自动化测试工具种类繁多&#xff0c;包括但不限于Selenium、Appium、JMeter、Postman、Robot Framework等&…

7月31日学习笔记 基于域名,Ip,端口多虚拟主机配置以及上线商城系统

一&#xff0c;基于域名的虚拟主机 效果 劫持域名访问指定的文件夹的目录 步骤 1. vim /usr/local/nginx/conf/nginx.conf 2. 创建新的目录 mkdir /html/devopt/ 3. 在 devops 目录下添加新的 index.html 文件 4. 在 http 模块下添加新的 server 模块 1 . 设置监听的端…

用ai来修改优化代码

前言 使用AI来辅助编写或修改技术文档是一个高效的方法&#xff0c;特别是当涉及到大型文档或需要快速更新内容时。下面是如何使用AI来编写或修改一篇技术文档的步骤和示例。 步骤概述 明确文档目的&#xff1a;确定文档的目标读者和主要内容。准备现有材料&#xff1a;整理…

亚马逊新产品怎么快速提升销量

经常有卖家吐槽新产品没销量&#xff0c;但卖家们的吐槽并不能把问题解决&#xff0c;南哥和大家分享一下关于测评的好处和一些技巧&#xff0c;以及如何样做才能提高店铺销量&#xff0c;将运营和测评结合起来做 测评的好处: 提升店铺信誉&#xff0c;制造爆款&#xff0c;增…

Conda和pip在安装Python包时有什么区别?

Conda和pip都是Python包管理工具&#xff0c;但它们在安装Python包时有一些关键的区别&#xff1a; 1. 包管理方式 Conda&#xff1a;不仅可以安装Python包&#xff0c;还可以安装非Python程序和库&#xff0c;如NumPy、SciPy等&#xff0c;以及它们依赖的系统库。Conda通过环…

【人工智能】穿越科技迷雾:解锁人工智能、机器学习与深度学习的奥秘之旅

文章目录 前言一、人工智能1. 人工智能概述a.人工智能、机器学习和深度学习b.人工智能发展必备三要素c.小案例 2.人工智能发展历程a.人工智能的起源b.发展历程 3.人工智能的主要分支 二、机器学习1.机器学习工作流程a.什么是机器学习b.机器学习工作流程c.特征工程 2.机器学习算…

FLV流分析

与上一篇TS流分析-CSDN博客一样的&#xff0c;FLV流也是用于音视频合成&#xff0c;且用于音视频传输。 相比于TS流&#xff0c;FLV的封装更为简单&#xff0c;其分为文件头&#xff08;File Header&#xff09;、文件体&#xff08;File Body&#xff09; 下面分别介绍这几部…

PHP表单验证邮件和URL

在PHP中验证表单中的电子邮件地址和URL地址是确保用户输入数据正确性的重要步骤。下面是一个详细的教程&#xff0c;介绍如何使用PHP来验证电子邮件和URL地址。 一、验证电子邮件地址 电子邮件地址的验证通常涉及检查字符串是否符合电子邮件的标准格式。虽然完全通过正则表达…

【技术支持】canvas转换为图片或PDF保存电脑

注意&#xff1a;有些网站可能由于canvas跨域污染问题&#xff0c;无法使用toBlob&#xff0c;所以无法转换 开发者工具中&#xff0c;选中需要转换的canvas元素&#xff08;使其可以使用$0语法&#xff09; 控制台输入如下代码 $0.toBlob(function (blob) {var link document…

java类型转换

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、integer与String类型转换二、字符串转换为数组三、进制转换四、集合转数组集合转换为类型一致的数组数组转换为类型一致的集合 一、integer与String类型转换 方…

Python面试整理-自动化运维

在Python中,自动化运维是一个重要的应用领域。Python凭借其简单易用的语法和强大的库支持,成为了运维工程师的首选工具。以下是一些常见的自动化运维任务以及如何使用Python来实现这些任务: 1. 文件和目录操作 Python的os和shutil模块提供了丰富的文件和目录操作功能。 impo…

【课程系列07】某乎AI大模型全栈工程师-第7期

网盘链接 链接&#xff1a;百度网盘 请输入提取码 --来自百度网盘超级会员v6的分享 课程目标 学习完毕咱们可以收获什么种能力&#xff1a; 1、传统前端 后端 数据分析 产品 绘图 算法工程等工作&#xff0c;一个人都可以实现&#xff0c;实现超级个体的能力 2、可以解决…

【考研数学】概率论:4 种方法解答一道题,你觉得哪种方法又快又好呢?

今天要给大家分享的笔记是&#xff1a;《用画图的方式求解概率论题目很方便&#xff0c;但难点在于如何画和怎么理解》 在这篇考研笔记中&#xff0c;「荒原之梦考研数学」为同学们提供了 4 种不同的方法解答这一道题目&#xff0c;其中最特别的是第一种通过画图求解的方法。 …

Spring框架中的@AliasFor注解

引言 在软件开发中&#xff0c;代码的清晰性和可维护性至关重要。Spring框架作为Java开发中广泛使用的框架之一&#xff0c;提供了丰富的注解来简化配置和提高开发效率。其中&#xff0c;AliasFor是一个重要的注解&#xff0c;它允许开发者定义属性别名&#xff0c;从而提高注…

探索电商 API 接口的创新应用与接入技巧

在当今数字化的商业环境中&#xff0c;电商 API 接口已成为推动业务增长和创新的关键因素。它们不仅为企业提供了与电商平台高效交互的途径&#xff0c;还开启了无数创新应用的可能性。本文将深入探讨电商 API 接口的创新应用&#xff0c;并分享一些实用的接入技巧&#xff0c;…

深度分析 !中国 AI 产业商业化实践案例 ! 2024 !

提供客户全渠道全生命周期的营服销一体化智能服务 京东云言犀依托于全栈自研的人工智能技术&#xff0c;基于京东集团广泛实体业务、庞大而又复杂的产业生态&#xff0c;从内部真实、复杂的海量业务场景实践中推出千亿级参数的言犀大模型&#xff0c;打造全新的智能交互与生成…

海外短剧CPS分销推广系统(APP+H5)推广方案介绍

随着国内的短剧市场火爆&#xff01;一些平台开始将目光投向海外市场&#xff0c;希望通过推出一些“文化输出”的剧集来吸引那些海外土味爱好者。国内短剧监管政策越来越严格&#xff0c;海外市场成为了短剧行业渴望开拓的新天地&#xff0c;为大家整理了海外推广的方案&#…