spring cloud-注册中心(Eureka)

news2024/10/6 8:35:55

一、服务注册中心组件(*)

定义:服务注册中心就是在整个微服务架构单独抽取一个服务,该服务不做项目中任何业务功能,仅用来在微服务中记录微服务、对微服务进行健康状态检查,及服务元数据信息存储

常用的注册中心:eureka(netflix)、zookeeper(java)、consul(go)、nacos(java阿里巴巴)

eureka:是netflix开发的服务发现框架。包含两个组件, eureka server 和 eureka client

Eureka

eureka server
  • 1.添加依赖
<!-- eureka server -->
<dependency>
	<groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
  • 2.在启动类上添加注解@EnableEurekaServer
@SpringBootApplication
@EnableEurekaServer
public class EurekaServerApplication {
SpringApplication.run(EurekaServerApplication.class, args);

}
  • 3.配置文件
# 服务名称
spring.application.name=EUREKA-SERVER
# eureka server端口号,默认8761
server.port=8761
# eureka server服务注册中心地址
eureka.client.service-url.defaultZone=http://localhost:8761/eureka/
  • 未指定服务名称时,启动服务后,在eureka server管理界面中出现UNKNOW的一个未知应用
    在这里插入图片描述

在微服务架构中服务名称代表服务唯一标识,服务名称必须唯一,通过配置spring.application.name=EUREKA-SERVER指定,推荐服务名称大写(默认大写),服务名不能出现下划线_

  • eureka server启动过程中报错在这里插入图片描述

eureka含有两个组件eureka server、eureka client,当项目中引入eureka server组件依赖时,这个组件会同时将eureka client引入到项目中,因此启动时将自己作为一个服务注册中心启动,同时也会将自己作为服务客户端进行注册,默认启动时立即注册,注册时的服务还没有准备完成,因此会出现当前错误

  • 关闭eureka server 自己注册自己
# 关闭eureka client立即注册
eureka.client.fetch-registry=false
# 让当前应用仅仅是服务注册中心,不向eureka server注册
eureka.client.register-with-eureka=false
eureka client

eureka client 就是日后基于业务拆分出来的一个个微服务

  • 1.引入依赖
<!-- eureka client-->
<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
  • 2.在启动类上加注解@EnableEurekaClient
@SpringBootApplication
@EnableEurekaClient
public class EurekaClientApplication {

}
  • 3.配置文件
server.port=8989
# 服务名称
spring.application.name=EUREKA-CLIENT
# eureka server注册中心地址
eureka.client.service-url.defaultZone=http://localhost:8761/eureka/
eureka 自我保护机制

经测试,跟spring cloud版本有关,高版本的会立即清除(如Hoxton.SR8)

1.自我保护机制触发现象

当eureka client宕机后,eureka server管理界面出现如下现象,即触发了自我保护机制
在这里插入图片描述

2.自我保护机制(Self Preservation Mode)

- 官网地址:https://github.com/Netflix/eureka/wiki/Server-Self-Preservation-Mode
- 自我保护机制默认是开启的。这样做是为了确保灾难性的网络事件不会清除eureka注册表数据,并将其传播到下游的所有客户端
- 自我保护机制,将客户端在服务注册中心清除的条件
	1.心跳次数高于预期阈值
	2.关闭自我保护机制

3.eureka server关闭自我保护机制(了解即可)

1.eureka server端添加配置
# 关闭自我保护机制,默认开启(建议开启)
eureka.server.enable-self-preservation=false
# 超时3S自动清除
eureka.server.eviction-interval-timer-in-ms=3000

2.eureka client端添加配置
# 用来修改eureka server默认接收心跳的最大时间,默认是90S
eureka.instance.lease-expiration-duration-in-seconds=10
# 指定客户端多久向eureka server发送一次心跳,默认是30S
eureka.instance.lease-renewal-interval-in-seconds=5
eureka server 集群搭建
搭建伪集群,有三台eureka server,分别为
localhost:8761/eureka/
localhost:8762/eureka/
localhost:8763/eureka/

在端口为8761的应用配置eureka server集群地址:
eureka.client.service-url.defaultZone=http://localhost:8762/eureka/,http://localhost:8763/eureka/
在端口为8762的应用配置eureka server集群地址:
eureka.client.service-url.defaultZone=http://localhost:8761/eureka/,http://localhost:8763/eureka/
在端口为8763的应用配置eureka server集群地址:
eureka.client.service-url.defaultZone=http://localhost:8761/eureka/,http://localhost:8762/eureka/

demo:用同一个服务多次启动,分别指定不同的端口号(-Dserver.port=8761、-Dserver.port=8762、-Dserver.port=8763)

在eureka client端添加eureka server集群地址
# eureka server集群注册中心地址
eureka.client.service-url.defaultZone=http://localhost:8761/eureka/,http://localhost:8762/eureka/,http://localhost:8763/eureka/

# eureka client端集群搭建
	- 指定不同的端口分别启动
	- spring.application.name指定的服务名称必须是同一个
  • localhost:8761
    在这里插入图片描述

  • localhost:8762
    在这里插入图片描述

  • localhost:8763
    在这里插入图片描述

eureka 总结
1.作用:在微服务架构中,充当服务注册中心
2.两个组件:eureka server、eureka client
3.eureka组件1.x(稳定),2.x版本停止更新
4.不推荐使用eureka作为服务注册中心
	4.1 最新版本已停止更新
	4.2 每次必须通过手动写代码形式开发服务注册中心

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1209013.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【JAVA学习笔记】70 - 反射

项目代码 https://github.com/yinhai1114/Java_Learning_Code/tree/main/IDEA_Chapter23/src 反射 一、反射的引出 package com.yinhai.reflection.question;import com.yinhai.Cat;import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IO…

双点重发布+路由策略实验

一、双点重发布实验 1、实验拓扑图 2、各路由器IP地址、环回地址配置 R1 R2 R3 R4 3、启动RIP和OSPF 4、双向重发布 5、查看路由信息 6、更改网络类型 6、抓取流量 二、路由策略实验 1、实验拓扑图 2、各路由器IP地址的配置 3、启动RIP和OSPF 3、重发布 4、抓取流量 5、创建…

【算法练习Day48】回文子串最长回文子序列

​&#x1f4dd;个人主页&#xff1a;Sherry的成长之路 &#x1f3e0;学习社区&#xff1a;Sherry的成长之路&#xff08;个人社区&#xff09; &#x1f4d6;专栏链接&#xff1a;练题 &#x1f3af;长路漫漫浩浩&#xff0c;万事皆有期待 文章目录 回文子串最长回文子序列总结…

C#几种截取字符串的方法

在C#编程中&#xff0c;经常需要对字符串进行截取操作&#xff0c;即从一个长字符串中获取所需的部分信息。本文将介绍几种常用的C#字符串截取方法&#xff0c;并提供相应的示例代码。 目录 1. 使用Substring方法2. 使用Split方法3. 使用Substring和IndexOf方法4. 使用Regex类…

Zabbix 5.0部署(centos7+server+MySQL+Apache)

环境 系统IPZABBIX版本主机名centos7192.168.231.2195.0zabbix-server 安装zabbix 我选择版本是zabbix-5.0 zabbix的官网是Zabbix :: The Enterprise-Class Open Source Network Monitoring Solution 安装Zabbix软件源 rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/…

关于Flume-Kafka-Flume的模式进行数据采集操作

测试是否连接成功&#xff1a; 在主节点flume目录下输入命令: bin/flume-ng agent -n a1 -c conf/ -f job/file_to_kafka.conf -Dflume.root.loggerinfo,console # 这个file_to_kafka.conf文件就是我们的配置文件 然后在另一台节点输入命令进行消费数据&#xff1a; kafka-cons…

Java Stream 的使用

Java Stream 的使用 开始中间操作forEach 遍历map 映射flatMap 平铺filter 过滤limit 限制sorted 排序distinct 去重 结束操作collect 收集toList、toSet 和 toMapCollectors.groupingByCollectors.collectingAndThen metch 匹配find 查询findFirst 与 findAny 的使用Optional …

下载免费商用字体,就上这6个网站。

我不允许还有人不知道&#xff0c;这些可以免费下载商用字体的网站&#xff0c;必须收藏好了&#xff0c;有了这6个网站&#xff0c;再也不用担心字体侵权了。 1、字体搬运工 https://font.sucai999.com/ 一个免费可商用字体搬运工&#xff0c;实时跟新市面上免费商用的字体。…

No204.精选前端面试题,享受每天的挑战和学习

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云课上架的前后端实战课程《Vue.js 和 Egg.js 开发企业级健康管理项目》、《带你从入…

java程序中为什么经常使用tomcat

该疑问的产生场景&#xff1a; 原来接触的ssm项目需要在项目配置中设置tomcat&#xff0c;至于为什么要设置tomcat不清楚&#xff0c;只了解需要配置tomcat后项目才能启动。接触的springboot在项目配置中不需要配置tomcat&#xff0c;原因是springboot框架内置了tomcat&#xf…

1、 图像和像素

像素我们不陌生,图像我们更不陌生。 学习计算机视觉,我觉得第一步就是要了解我们要处理的对象,就像上一篇说到的,计算机视觉任务中,图像(像素)是原材料,算法是菜谱。 了解了图像的特征,才可以更好的完成更多图像处理任务,比如对一张图片进行分类,或者对一张图片画…

CNN进展:AlexNet、VGGNet、ResNet 和 Inception

一、说明 对于初学者来说&#xff0c;神经网络进展的历程有无概念&#xff1f;该文综合叙述了深度神经网络的革命性突破&#xff0c;从AlexNet开始&#xff0c;然后深度VGG的改进&#xff0c;然后是残差网络ResNet和 Inception&#xff0c;如果能讲出各种特色改进点的和改进理由…

【Python】【应用】Python应用之一行命令搭建http、ftp服务器

&#x1f41a;作者简介&#xff1a;花神庙码农&#xff08;专注于Linux、WLAN、TCP/IP、Python等技术方向&#xff09;&#x1f433;博客主页&#xff1a;花神庙码农 &#xff0c;地址&#xff1a;https://blog.csdn.net/qxhgd&#x1f310;系列专栏&#xff1a;Python应用&…

MQ四大消费问题一锅端:消息不丢失 + 消息积压 + 重复消费 + 消费顺序性

RabbitMQ-如何保证消息不丢失 生产者把消息发送到 RabbitMQ Server 的过程中丢失 从生产者发送消息的角度来说&#xff0c;RabbitMQ 提供了一个 Confirm&#xff08;消息确认&#xff09;机制&#xff0c;生产者发送消息到 Server 端以后&#xff0c;如果消息处理成功&#xff…

【python 生成器 面试必备】yield关键字,协程必知必会系列文章--自己控制程序调度,体验做上帝的感觉 2

这篇文章要解决的问题&#xff1a;How to Pass Value to Generators Using the “yield” Expression in Python ref:https://python.plainenglish.io/yield-python-part-ii-e93abb619a16 1.如何传值 yield 是一个表达式&#xff01;&#xff01;&#xff01;&#xff01; yi…

WebGl-Blender:建模 / 想象成形 / 初识 Blender

一、理解Blender 欢迎来到Blender&#xff01;Blender是一款免费开源的3D创作套件。 使用Blender&#xff0c;您可以创建3D可视化效果&#xff0c;例如建模、静态图像&#xff0c;3D动画&#xff0c;VFX&#xff08;视觉特效&#xff09;快照和视频编辑。它非常适合那些受益于…

【Python图像超分】Real-ESRGAN图像超分模型(超分辨率重建)详细安装和使用教程

1 前言 图像超分是一种图像处理技术&#xff0c;旨在提高图像的分辨率&#xff0c;使其具有更高的清晰度和细节。这一技术通常用于图像重建、图像恢复、图像增强等领域&#xff0c;可以帮助我们更好地理解和利用图像信息。图像超分技术可以通过多种方法实现&#xff0c;包括插值…

【每日一题】阈值距离内邻居最少的城市

文章目录 Tag题目来源题目解读解题思路方法一&#xff1a;多源最短路 写在最后 Tag 【多源最短路】【数组】【2023-11-14】 题目来源 1334. 阈值距离内邻居最少的城市 题目解读 题目翻译过来是这样的&#xff1a;一共 n 个城市&#xff0c;统计在每个城市 dt 距离范围内所有…

【java学习—十四】反射获取类的父类、接口、构造方法、方法(3)

文章目录 1. 通过反射获取一个类的父类和接口2. 反射获取一个类的构造方法3. 反射获取全部构造器4. 通过反射创建一个对象5. 反射机制获取类的方法 1. 通过反射获取一个类的父类和接口 使用反射可以取得&#xff1a; 实现的全部接口 public Class<?>[] getInterfaces(…

Python实现扫雷游戏,代码示例,边玩边学+回忆童年!

文章目录 前言实现总结关于Python技术储备一、Python所有方向的学习路线二、Python基础学习视频三、精品Python学习书籍四、Python工具包项目源码合集①Python工具包②Python实战案例③Python小游戏源码五、面试资料六、Python兼职渠道 前言 扫雷是一款益智类小游戏&#xff0…