Eureka注册与发现

SpringCloud[01]Eureka服务注册与发现 Eureka服务注册与发现 1. Eureka基础知识 1. 什么是服务治理 SpringCloud封装了Netflix公司开发的Eureka模块来实现服务治理 在传统的RPC远程调用框架中,管理每个服务与服务之间依赖关系比较复杂,管理比较复杂,所以需要使用服务治理,管理服务与服务之间依赖关系,可以实现服务调用、负载均衡、容错等,实现服务发现与注册 2. 什么是服务注册与发现 Eureka采用了CS的设计架构,Eureka Server作为服务注册功能的服务器,它是服务注册中心,而系统中的其他微服务,使用 阅读详情

前言

本章整理了springCloud中的其中一个注册与发现微服务框架。至于什么是微服务?现在来说就大致与:把一个整体可以分成许多个小的个体,而这些小的个体可以独立部署,升级、和维护。本章的主要内容就是把Eureka集成进springBoot项目中,实现一个简单的初入分布式体验。

首先我,我们来说一下Eureka服务注册与发现的几个常见问题

1.什么是服务治理?
答:SpringCloud 封装了NETFlix 公司开发的EurKa模块来实现服务治理在传统的rpc远程调用框架中,管理每个服务与服务之间依赖关系比较复杂,管理比较复杂,所以需要使用服务治理,管理服务于服务之间依赖关系,可以实现服务调用、负载均衡、容错等,实现服务发现与注册。

2.什么是服务注册与发现?
答:Eureka采用了cs的设计架构,Eureka Server作为服务注册功能的服务器,它是服务注册中心。而系统中的其它微服务,使用Eureka的客户端连接到Eureka Server并维持心跳连接。这样系统的维护人员就可以通过Eureka Server 来监控系统中各个微服务是否正常运行。在服务注册与发现中,有一个注册中心。当服务器启动的时候,会把当前自己服务器的信息比如:服务地址通讯地址等以别名方式注册到注册中心上。另一方面(消费者服务提供者),以该别名的方式去注册中心上获取到实际的服务通讯地址,然后在实现本地rpc调用rpc远程调用。框架核心设计思想:在于注册中心,因为使用注册中心管理每个服务与服务之间的一个依赖关系(服务治理概念),在任何rpc远程框架中,都会有一个注册中心(存放服务地址相关信息(接口地址))

3.Eureka包含二个组件:Eureka Server 和 Eureka Cline?
答:Eureka Server:提供服务注册服务
各个服务节点通过配置启动后,会在Eureka Server中进行注册,这样Eureka Server中的服务注册表格中将会存储所有可用服务节点的信息,服务节点的信息可以在界面中直观看到。

Eureka Cline:通过注册中心进行访问
是一个java客户端,用于简化Eureka Server的交互,客户端同时也具备一个内置的、使用轮询(round-robin)负载算法的负载均衡器。在应用启动后,将会向Eureka Server发送心跳(默认周期为30秒)。如果Eureka Server在多个心跳周期内没有收到某个节点的心跳,Eureka Server将会从服务注册表中把这个服务节点移出(默认90秒)

4.微服务rpc远程服务调用最核心的是什么?
答:高可用 搭建eureka注册中心集群(相互注册相互守望),实现负载均衡+故障容错

5.eureka自我保护?
答:某个时刻一个微服务不能用了,eureka不会立即清理,依旧会对该微服务的信息进行保存:高可用属于CAP里面的AP分支

6.为什么会产生Eureka自我保护机制?
答:为了防止EurekaClient可以正常运行,但是与EurekaServer网络不通情况下,EurekaServer不会立刻将EurekaClient剔除

7.什么是自我保护模式?
答:默认情况下,如过EurekaServer在一定时间内没有接收到某个微服务实例的心跳,EurekaServer将会注销该实例(默认90秒)。但是当网络分区故障发生(延迟、卡顿、拥挤)时,微服务与EurekaServer之间无法正常通信,以上行为可能变得非常危险了,因为微服务本身其实是健康的,此时本不应该注销这个微服务。Eureka通过自我保护模式,来解决这个问题。当然EurekaServer节点在短时间内丢失过多客户端时(可能发生了网络分区故障),那么这个节点就会进入自我保护模式。
在自我保护模式中,Eureka Server会保护服务注册表中的信息,不再注销任何服务实例

8.禁止自我保护?
答:application.yml文件中修改配置

  server:
    enable-self-preservation: false
    eviction-interval-timer-in-ms: 2000

    #Eureka客户端向服务端发送心跳的时间间隔,单位为秒(默认30秒)
    lease-renewal-interval-in-seconds: 1
    #Eureka服务端在收到最后一次心跳等待时间上线,单位为秒(默认是90秒),超时将剔除服务
    lease-expiration-duration-in-seconds: 2

下面进行项目讲解

1.首先创建一个数据库

CREATE TABLE `payment` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `serial` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8;

创建Maven项目

有了数据库,那就进行下一步的操作,创建一个Maven父类项目:springcloud2020,并在其中创建六个子类项目分别是:公共资源子项目:cloud-api-commons。客户端:cloud-consumer-order80。服务端:cloud-provider-payment8001和cloud-provider-payment8002。Eureka端:cloud-eureka-server7001和cloud-eureka-server7002。创建Maven项目的过程就省略了。

项目结构如下:
在这里插入图片描述
项目链接https://pan.baidu.com/s/1YgVqTZTBzyU6qphQj-2HPg取货码:wzrc

每个项目的作用:
公共资源子项目:里面有个共用的实体类资源,供服务端的集群共同使用
客户端:用来来访问资源(即服务器)
服务端: 提供服务(即连接数据库的操作)
Eureka集群:Eureka集群

项目中需要的Eureka的依赖

    <!-- 引入Eureka Server:这是Eureka集群使用的 -->
     <dependency>
     <groupId>org.springframework.cloud</groupId>
     <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
    </dependency>
    <!-- 引入Eureka Client:服务端使用的 -->
    <dependency>
     <groupId>org.springframework.cloud</groupId>
     <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    </dependency>

展示Eureka7001的application.yml配置文件。其实Eureka7002的配置文件和Eureka7001相差不大。

server:
  port: 7001
eureka:
  instance:
    hostname: eureka7001.com #服务端的实例名称
  client:
    #不向注册中心注册自己
    register-with-eureka: false
    #自己就是注册中心,并不需要检索服务
    fetch-registry: false
    service-url:
      #设置与eureka Server交互的地址查询服务和注册服务都需要依赖这个地址
      defaultZone: http://eureka7002.com:7002/eureka
  server:
    enable-self-preservation: false
    eviction-interval-timer-in-ms: 2000

服务端8001的application.yml

server:
  port: 8001

spring:
  #入住注册中心的名称
  application:
    name: cloud-payment-service

  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/zhao?serverTimezone=Asia/Shanghai&useSSL=false&characterEncoding=utf8
    username: root
    password: root

eureka:
  client:
    #向注册中心注册自己(eureka server)
    register-with-eureka: true
    #从eureka server抓取已有的注册信息,
    fetch-registry: true
    service-url:
      #设置与eureka Server交互的地址查询服务和注册服务都需要依赖这个地址
      defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka  #集群
  #替换服务主机名称
  instance:
    instance-id: payment8001
    #显示IP地址
    prefer-ip-address: true
    #Eureka客户端向服务端发送心跳的时间间隔,单位为秒(默认30秒)
    lease-renewal-interval-in-seconds: 1
    #Eureka服务端在收到最后一次心跳等待时间上线,单位为秒(默认是90秒),超时将剔除服务
    lease-expiration-duration-in-seconds: 2

mybatis:
  mapperLocations: classpath:mapper/*.xml
  type-aliases-package: com.dlx.springcloud.entity

用户端的application.yml

server:
  port: 8080

spring:
  application:
    name: cloud-order-service

  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/zhao?serverTimezone=Asia/Shanghai&useSSL=false&characterEncoding=utf8
    username: root
    password: root

eureka:
  client:
    #向注册中心注册自己(eureka server)
    register-with-eureka: true
    #从eureka server抓取已有的注册信息,
    fetch-registry: true
    service-url:
      #设置与eureka Server交互的地址查询服务和注册服务都需要依赖这个地址
      #修改idea的配置文件,不然无法使用
      defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka  #集群
      

集群是本地的idea中的locahost需要修改配置:
集群修改:c:\windows\system32\drivers\etc路径下的hosts文件
修改映射配置添加进hosto文件:
eureka7001.com
eureka7002.com
具体添加多少,看自己需要集成多少

按照顺序运行项目

先运行Eureka端 ——》然后运行用户端 ——》最后运行服务端

查看端口http://eureka7001.com:7001和http://eureka7002.com:7002(效果如下)

在这里插入图片描述

在这里插入图片描述

服务端cloud-consumer-order80访问http://localhost:8080/consumer/payment/getPaymentById/9

9是对应数据库表的id

结果会返回二种情况
在这里插入图片描述

在这里插入图片描述
不断的刷新访问服务端的接口,你会发现,用户端调用服务端的接口是相互交替的,这种情况的好处就是,比如8001的端口服务突然停止了,这样还有8002在使用,这样程序不至于中断,无法使用。

好了,这就是基本的sprongBoot集成Eureka注册与发现

Eureka服务注册与发现 服务治理: Spring Cloud 封装了 Netflix 公司开发的 Eureka 模块来实现服务治理。 在传统的rpc远程调用框架中,管理每个服务与服务之间依赖关系比较复杂,管理比较复杂,所以需要使用服务治理,管理服务于服务之间依赖关系,可以实现服务调用、负载均衡、容错等,实现服务发现与注册。 服务注册与发现: Eureka采用了CS的设计架构,Eureka Server 作为服务注册功能的服务器,它是服务注册中心。而系统中的其他微服务,使用 Eureka的客户端连接到 Eureka Serve 阅读详情

相关推荐

我的老款Intel MacBook Pro,如何用OpenVINO把本地大模型推理速度提升10倍?

本文详细介绍了如何在老款Intel MacBook Pro上使用OpenVINO工具包将本地大模型推理速度提升10倍。通过对比Ollama CPU原生、Transformers原生和OpenVINO优化三种方案,展示了OpenVINO在性能优化上的显著优势,并提供了从环境配置到模型转换、性能调优的完整实战指南。

weixin_28694295的博客 299

Spring Cloud eureka服务搭建

一、创建springboot工程、Eureka注册中心 1、引入maven依赖 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.3.RELEASE</version> &

张云生的博客 253

VisionMaster字符检测避坑指南:为什么你的缺陷检测总误判?7个参数陷阱详解

本文深入剖析了海康VisionMaster在字符缺陷检测中导致误判的7个关键参数陷阱,包括二值化参数、最小字符面积与宽度、字符极性及缺陷判决参数等。通过药品喷码和PCB丝印等实战案例,提供了系统的调试心法与工作流,帮助工程师精准调参,有效降低误判率,提升检测稳定性。

rust6ferris的博客 1097

springboot整合eureka

服务端 1.maven依赖 注意springboot和springcloud的版本对应 <!--springboot的版本和springcloud的版本一定要对应,否则会报错 --> <parent> <groupId>org.springframework.boot</groupId> ...

风起尘落的博客 531

Windows版MySQL8.4.2LTS解压直用(下载免安装-绿色-项目打包直接使用-含卸载)

安装前运行微软常用运行库全集(也可能称为依赖)关于MySQL8中相关参数配置,可通过。选择8.5.2LTS长期服务版。选中密码,右键会直接复制。

xzzteach的博客 1439

从流量到凭证:实战解析SMB协议中的NTLMv2/v1哈希提取与破解

本文详细解析了SMB协议中NTLMv2/v1哈希的提取与破解实战技巧。从流量捕获、哈希格式处理到Hashcat高效破解,提供了一套完整的操作指南。文章特别强调了NTLMv2和NTLMv1哈希的区别及处理要点,并分享了防护建议与检测方法,帮助安全人员提升渗透测试效率。

weixin_30642561的博客 116

java基础入门书籍推荐,实战篇

第1部分:基础篇 第2部分:开发篇 第3部分:优化篇 第4部分:管理维护篇 Spring全套教学资料 Spring是Java程序员的《葵花宝典》,其中提供的各种大招,能简化我们的开发,大大提升开发效率!目前99%的公司使用了Spring,大家可以去各大招聘网站看一下,Spring算是必备技能,所以一定要掌握。 资料领取方式:点击这里前往蓝色传送门 目录: 部分内容: Spring源码 第一部分 Spring 概述 第二部分 核心思想 第三部分 手写实现 IoC 和 AOP(自定义

m0_57286518的博客 430

泛微E9与金蝶云星空单点登录集成实战指南

本文详细介绍了泛微E9与金蝶云星空单点登录(SSO)集成的实战指南,包括前期准备、核心代码实现、常见问题排查及安全加固建议。通过集成,企业可实现一次登录全网通行,显著提升工作效率和安全性。文章特别强调了签名生成机制和跳转URL构造的关键技巧,帮助开发者避免常见错误。

weixin_30689307的博客 534

springboot集成eureka(详细配置)

1.创建服务注册中心 1).创建一个工程 点Next完成 2)配置pom文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org..

qq_42756258的博客 1万+

宜搭,高级认证实操2,FaaS连接器指导教程

找到FaasEntry.java将如下代码整体替换,注意引包。如图所示在util下新建EDSUtil.java代码如下。回到连接器界面点击右上角测试-->测试。连接器工厂-->新建FaaS连接器。保存-->前往云IDE开发。返回如图所示代码,部署成功。

2301_80286061的博客 3342

5、流体-结构相互作用耦合技术详解

本文详细解析了流体-结构相互作用(FSI)的两种核心耦合技术:松散耦合和紧密耦合。通过原理阐述、优缺点分析及实际应用案例,对比了两种方法的适用场景与性能差异,并进一步探讨了高级耦合技术的发展趋势和工程实践方向,为相关领域的研究人员和工程师提供了全面的技术参考。

fanta的博客 205

SpringCloud--构建springboot项目eureka依赖引入报错解决方案

xl_echo编辑整理,欢迎转载,转载请声明文章来源。更多IT编程案例、资料请联系QQ:1280023003 ,群:298140694 百战不败,依不自称常胜,百败不颓,依能奋力前行。——这才是真正的堪称强大!! ...

xlecho的博客 2万+

别再用LabelImg了!我手搓了一个C#“一站式”YOLO工具箱,标注训练推理全搞定

这个工具箱目前已经在两个小型产线项目中试用,反馈非常好。效率提升:原本需要 2 天完成的“数据准备 - 训练 - 验证”循环,现在缩短到了 2 小时。门槛降低:产线技术员经过 10 分钟培训,就能独立完成新产品的模型迭代。当然,它还有改进空间未来计划集成主动学习功能:自动筛选出置信度低的图片,推荐优先标注。支持多模型管理:方便在不同产品型号间快速切换。增加PLC 通信模块:直接在推理界面配置 IO 信号,实现真正的软硬联动。最后想说工具的本质是服务于人。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 441

服务注册与发现——Eureka

本文介绍了微服务架构中注册中心的作用及实现方式。针对硬编码URL导致的服务变更问题,提出通过注册中心进行动态服务管理。分析了注册中心的三大角色(服务提供者、消费者、注册中心)及其交互流程,并讲解了CAP理论在分布式系统中的权衡应用。对比了Zookeeper(CP)、Eureka(AP)和Nacos(AP/CP可切换)三种常见注册中心的特性,最后以Eureka为例,展示了从服务端搭建到客户端注册、发现的完整实现过程。通过实际代码演示了如何将订单服务和商品服务注册到Eureka并进行服务调用

2301_76161469的博客 2259

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Spring Cloud Eureka 服务注册与发现

Eureka Server :服务注册中心,主要用于提供服务注册功能。当微服务启动时,会将自己的服务注册 到 Eureka Server。Eureka Server 维护了一个可用服务列表,存储了所有注册到 Eureka Server 的可用服务的信息,这些可用服务可以在 Eureka Server 的管理界面中直观看到Eureka Client :客户端,通常指的是微服务系统中各个微服务,主要用于和 Eureka Server 进行交互。

qq_60972641的博客 3465

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Eureka 服务注册与发现原理剖析

1、介绍 Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务。主要用于定位运行在 AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的。SpringCloud将它集成在其子项目spring-cloud-netflix中,以实现SpringCloud的服务注册与发现的功能。 Eureka包含两个组件:Eureka Server和Eureka Client。 Eu...

Forrest Gump的博客 5684

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

【5】Eureka服务注册与发现

eureka的注册

浮笙 873

Eureka——服务注册与发现

Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的。 Eureka包含两个组件:Eureka Server和Eureka Client: - Eureka Server提供服务注册服务,各个节点启动后,会在Eureka Server中进行注册,这样EurekaServer中的服务注册表中将会存储所有可用服务节点的信息,服务节点的信息可以在界面中直观的看到。 - Eureka Client是一个ja

zt的博客 1288

二、Eureka服务注册与发现

Eureka虽然已经停更进入维护阶段,但是依旧不能阻挡大家想一睹芳容的心,归根结底还是太优秀,打败天下无敌手~ 现在不管是啥,都得有背景,连写个文都要有背景 (╥╯^╰╥),当然这些都是题外话,下面进入正题 ...

小高同学 1891

SpringCloud系列——Eureka 服务注册与发现

Eureka 是一种基于 REST(具像状态传输)的服务,主要用于 AWS 云中定位服务,以实现中间层服务器的负载平衡和故障转移。本文记录一个简单的服务注册与发现实例。1、引入的是 spring-cloud-starter-netflix-eureka-server,使用的是@EnableEurekaServer1、引入的是 spring-cloud-starter-netflix-eureka-client,使用的是@EnableEurekaClient。

2301_79727522的博客 1058

Eureka 服务注册与发现

Eureka 服务注册与发现

积少成多 4588
上一篇: python函数
下一篇: Zookeeper注册与发现
与黑夜为伍
博客等级 码龄7年 19粉丝 80原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值