02. Spring Cloud Eureka:服务注册与发现

Eureka 服务端搭建入门与集群搭建 Eureka在2022年已经确定的是,2.x版本开源计划已经停止了,1.x版本陆陆续续还是有人在维护的。还有很多最早使用微服务的公司还在继续用着eureka作为注册中心,也是很多同学学习微服务的敲门砖。创建一个平平无奇的maven工程,取名为eureka-server创建好maven工程之后,导入spring-boot与spring-cloud依赖版本管理依赖,注意两者的版本对应关系,或者你直接用我的版本。 2. 编写application.yml文件 3. 编写启动类 很正常的一个启动类,只是添加了标签 阅读详情

Spring Cloud Eureka:服务注册与发现

Spring Cloud Eureka是Spring Cloud Netflix 子项目的核心组件之一,主要用于微服务架构中的服务治理。本文将对搭建Eureka注册中心,搭建Eureka客户端,搭建Eureka集群及给Eureka注册中心添加登录认证进行介绍。

1.简介

在微服务架构中往往会有一个注册中心,每个微服务都会向注册中心去注册自己的地址及端口信息,注册中心维护着服务名称与服务实例的对应关系。每个微服务都会定时从注册中心获取服务列表,同时汇报自己的运行情况,这样当有的服务需要调用其他服务时,就可以从自己获取到的服务列表中获取实例地址进行调用,Eureka实现了这套服务注册与发现机制。

2.搭建Eureka注册中心

这里我们以创建并运行Eureka注册中心来看看在IDEA中创建并运行SpringCloud应用的正确姿势。

2.1 使用IDEA来创建SpringCloud应用

1.创建一个eureka-server模块,并使用Spring Initializer初始化一个SpringBoot项目
v

2.填写应用信息
在这里插入图片描述

3.选择你需要的SpringCloud组件进行创建
在这里插入图片描述
在这里插入图片描述
4.创建完成后会发现pom.xml文件中已经有了eureka-server的依赖

 <dependency>
         <groupId>org.springframework.cloud</groupId>
         <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
 </dependency>

5.在启动类上添加@EnableEurekaServer注解来启用Euerka注册中心功能

@EnableEurekaServer
@SpringBootApplication
public class EurekaServerApplication {

    public static void main(String[] args) {
        SpringApplication.run(EurekaServerApplication.class, args);
    }

}

6.在配置文件application.yml中添加Eureka注册中心的配置

server:
  port: 8001 #指定运行端口
spring:
  application:
    name: eureka-server #指定服务名称
eureka:
  instance:
    hostname: localhost #指定主机地址
  client:
    fetch-registry: false #指定是否要从注册中心获取服务(注册中心不需要开启)
    register-with-eureka: false #指定是否要注册到注册中心(注册中心不需要开启)
  server:
    enable-self-preservation: false #关闭保护模式
2.2 使用IDEA的Run Dashboard来运行SpringCloud应用

此时服务已经创建完成,点击启动类的main方法就可以运行了。但是在微服务项目中我们会启动很多服务,为了便于管理,我们使用IDEA的Run Dashboard来启动。

  • 打开Run Dashboard,默认情况下,当IDEA检查到你的项目中有SpringBoot应用时,会提示你开启,如果你没开启,可以用以下方法开启。
    在这里插入图片描述

  • 运行SpringCloud应用
    在这里插入图片描述

  • 运行完成后访问地址http://localhost:8001/可以看到Eureka注册中心的界面
    在这里插入图片描述

3.搭建Eureka客户端

  • 新建一个eureka-client模块,并在pom.xml中添加如下依赖
 <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
 </dependency>
 <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
  • 在启动类上添加@EnableDiscoveryClient注解表明是一个Eureka客户端
@EnableDiscoveryClient
@SpringBootApplication
public class EurekaClientApplication {

    public static void main(String[] args) {
        SpringApplication.run(EurekaClientApplication.class, args);
    }

}`
  • 在配置文件application.yml中添加Eureka客户端的配置
server:
  port: 8101 #运行端口号
spring:
  application:
    name: eureka-client #服务名称
eureka:
  client:
    register-with-eureka: true #注册到Eureka的注册中心
    fetch-registry: true #获取注册实例列表
    service-url:
      defaultZone: http://localhost:8001/eureka/ #配置注册中心地址
  • 运行eureka-client
    在这里插入图片描述
  • 查看注册中心http://localhost:8001/发现Eureka客户端已经成功注册
    在这里插入图片描述

4.搭建Eureka注册中心集群

4.1 搭建两个注册中心

由于所有服务都会注册到注册中心去,服务之间的调用都是通过从注册中心获取的服务列表来调用,注册中心一旦宕机,所有服务调用都会出现问题。所以我们需要多个注册中心组成集群来提供服务,下面将搭建一个双节点的注册中心集群。

  • 给eureka-sever添加配置文件application-replica1.yml配置第一个注册中心
server:
  port: 8002
spring:
  application:
    name: eureka-server
eureka:
  instance:
    hostname: replica1
  client:
    serviceUrl:
      defaultZone: http://replica2:8003/eureka/ #注册到另一个Eureka注册中心
    fetch-registry: true
    register-with-eureka: true
  • 给eureka-sever添加配置文件application-replica2.yml配置第二个注册中心
server:
  port: 8003
spring:
  application:
    name: eureka-server
eureka:
  instance:
    hostname: replica2
  client:
    serviceUrl:
      defaultZone: http://replica1:8002/eureka/ #注册到另一个Eureka注册中心
    fetch-registry: true
    register-with-eureka: true

这里我们通过两个注册中心互相注册,搭建了注册中心的双节点集群,由于defaultZone使用了域名,所以还需在本机的host文件中配置一下。

  • 修改本地host文件

    127.0.0.1 replica1
    127.0.0.1 replica2

4.2 运行Eureka注册中心集群

在IDEA中我们可以通过使用不同的配置文件来启动同一个SpringBoot应用。

  • 添加两个配置,分别以application-replica1.yml和application-replica2.yml来启动eureka-server

从原启动配置中复制一个出来

在这里插入图片描述

配置启动的配置文件

在这里插入图片描述

  • 启动两个eureka-server,访问其中一个注册中心http://replica1:8002/发现另一个已经成为其备份
    在这里插入图片描述
  • 修改Eureka-client,让其连接到集群

添加eureka-client的配置文件application-replica.yml,让其同时注册到两个注册中心。

server:
  port: 8102
spring:
  application:
    name: eureka-client
eureka:
  client:
    register-with-eureka: true
    fetch-registry: true
    service-url:
      defaultZone: http://replica1:8002/eureka/,http://replica2:8003/eureka/ #同时注册到两个注册中心

以该配置文件启动后访问任意一个注册中心节点都可以看到eureka-client
在这里插入图片描述

5.给Eureka注册中心添加认证

5.1 创建一个eureka-security-server模块,在pom.xml中添加以下依赖

需要添加SpringSecurity模块

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-security</artifactId>
</dependency>
5.2 添加application.yml配置文件

主要是配置了登录注册中心的用户名和密码。

server:
  port: 8004
spring:
  application:
    name: eureka-security-server
  security: #配置SpringSecurity登录用户名和密码
    user:
      name: allan
      password: 123456
eureka:
  instance:
    hostname: localhost
  client:
    fetch-registry: false
    register-with-eureka: false
5.3 添加Java配置WebSecurityConfig

默认情况下添加SpringSecurity依赖的应用每个请求都需要添加CSRF token才能访问,Eureka客户端注册时并不会添加,所以需要配置/eureka/**路径不需要CSRF token。

@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.csrf().ignoringAntMatchers("/eureka/**");
        super.configure(http);
    }
}
5.4 运行eureka-security-server

访问http://localhost:8004发现需要登录认证.
在这里插入图片描述

5.5 eureka-client注册到有登录认证的注册中心
  • 配置文件中需要修改注册中心地址格式

http://username:{username}:username:{password}@hostname:{hostname}:hostname:{port}/eureka/

  • 添加application-security.yml配置文件,按格式修改用户名和密码
server:
  port: 8103
spring:
  application:
    name: eureka-client
eureka:
  client:
    register-with-eureka: true
    fetch-registry: true
    service-url:
      defaultZone: http://allan:123456@localhost:8004/eureka/
  • 以application-security.yml配置运行eureka-client,可以在注册中心界面看到eureka-client已经成功注册

在这里插入图片描述

6.Eureka的常用配置

eureka:
  client: #eureka客户端配置
    register-with-eureka: true #是否将自己注册到eureka服务端上去
    fetch-registry: true #是否获取eureka服务端上注册的服务列表
    service-url:
      defaultZone: http://localhost:8001/eureka/ # 指定注册中心地址
    enabled: true # 启用eureka客户端
    registry-fetch-interval-seconds: 30 #定义去eureka服务端获取服务列表的时间间隔
  instance: #eureka客户端实例配置
    lease-renewal-interval-in-seconds: 30 #定义服务多久去注册中心续约
    lease-expiration-duration-in-seconds: 90 #定义服务多久不去续约认为服务失效
    metadata-map:
      zone: xi'an#所在区域
    hostname: localhost #服务主机名称
    prefer-ip-address: false #是否优先使用ip来作为主机名
  server: #eureka服务端配置
    enable-self-preservation: false #关闭eureka服务端的保护机制

7.模块结构

Spring-Cloud-Greenwich
├── eureka-server -- eureka注册中心
├── eureka-security-server -- 带登录认证的eureka注册中心
└── eureka-client -- eureka客户端

8.项目源码地址

https://github.com/yanglin1501804006/spring-cloud-vGreenwich.SR3

Eureka搭建微服务(一) 前言 本文将介绍使用Eureka搭建微服务的流程,一步一步的从零开始搭建,大概有以下搭建流程: 1、Rest微服务工程搭建 2、单机Eureka构建 3、集群Eureka构建步骤 通过这三个流程,这三个流程后者总是在前者的基础上,展示一个简单Eureka微服务的搭建过程。 1、Rest微服务工程搭建 1.1先创建一个父工程 先创建一个空的父工程 圈中的那三个modul,是后来创建的,刚创建的父工程是啥也没有,只有pom.xml文件 1.2修改xml 作为父工程,主要是用于统一管理maven依赖,统一版本号 阅读详情

相关推荐

Spring Cloud构建微服务架构(一):服务注册与发现(Eureka)

1. Spring Cloud简介 Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中涉及的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了一种简单的开发方式。 Spring Cloud 全家桶: - Spring Cloud 服务注册中心 Spring Cloud...

钱立清的博客 6153

eureka注册中心

SpringCloud eureka注册中心的基础使用

zxwyhzy的博客 1413

Eureka 环境配置及安装及使用指南--大数据!!!!

Eureka 是由 Netflix 开发的一个服务发现框架,主要用于分布式系统中的服务注册和发现。在微服务架构中,Eureka 作为服务注册中心,提供了服务实例的管理和查找功能。它是 Spring Cloud 的一部分,被广泛应用于现代微服务架构中。

Dreams°的博客 1747

SpringCloud微服务Eureka之一:pom以及配置

@EnableEurekaServer Eureka最重要的注解之一:@EnableEurekaServer 没有这个@EnableEurekaServer就无法启动Eureka,这个注解是放在启动类上的。 @SpringBootApplication @EnableEurekaServer //启动注册中心,使得其他服务能注入其中 public class EurekaApplication { public static void main(String[] args) { S

NOT NULL 1408

【Spring Cloud实战:Eureka】服务注册与发现

Spring Cloud Eureka 服务注册与发现 Spring Cloud Eureka是Spring Cloud Netflix 子项目的核心组件之一,主要用于微服务架构中的服务治理。 文章针对 搭建Eureka注册中心,搭建Eureka客户端,搭建Eureka集群及给Eureka注册中心添加登录认证进行介绍和实操。 Eureka简介 在微服务架构中往往会有一个注册中心,每个微服务都会向注册中心去注册自己的地址及端口信息,注册中心维护着服务名称与服务实例的对应关系。 每个微服务都会定时从注册中心获取

Strive_Peter的博客 2832

spring cloud Greenwich 学习笔记(一)spring cloud eureka ribbon 服务注册与发现

文章目录概述环境说明eureka注册中心eureka 简介工程搭建eureka注册中心服务提供者ribbon客户端负载均衡服务消费者 概述 Spring提供了一系列工具,可以帮助开发人员迅速搭建分布式系统中的公共组件(比如:配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性令牌,全局锁,主节点选举, 分布式session, 集群状态)。协调分布式环境中各个系统,为各类服务提供模板性配置...

刘本龙的专栏 5432

Eureka服务注册与发现

注册中心可以说是微服务架构中的"通讯录",它记录了服务和服务之间地址的映射关系。在分布式架构中, 服务会注册到这里(注册中心),当服务需要调用其它服务时,就这里找到服务的地址,进行调用。到底什么是服务治理?SpringCloud封装了Netflix公司开发的Eureka模块来实现服务治理。在传统的RPC远程调用框架中,管理每个服务与服务之间依赖关系比较复杂、所以需要进行服务治理,管理服务与服务之间依赖关联,以实现服务调用,负载均衡、容错等,实现服务发现与注册。

梦想也许遥不可及,但重要的是追梦的过程,用博客记录自己的成长,记录自己一步一步向上攀登的印记 5056

从时序博弈到数据稳定:CS1237驱动中的信号滤波与卡尔曼实践

本文探讨了CS1237高精度ADC驱动在复杂工业环境中的信号处理挑战,重点介绍了一阶滤波与自适应卡尔曼滤波算法的实践应用。通过参数优化和动态调整策略,有效提升了数据稳定性和抗干扰能力,为嵌入式系统在噪声环境下的精密测量提供了可靠解决方案。

rnn9storyteller的博客 863

Spring Cloud Eureka 服务注册与发现

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

qq_60972641的博客 3467

300Kg载重履带式无人车底盘定制开发技术详解

通过精准的需求分析、科学的方案设计、严格的研发与测试以及完善的交付与培训流程,可以打造出符合客户需求的优质产品。300Kg载重履带式无人车底盘的定制开发,旨在打造一款承载能力强、行驶稳定、适应复杂地形的无人运输平台。根据应用场景选择合适的动力源,并进行性能优化,确保无人车在载重情况下仍能保持稳定的行驶速度和动力输出。根据需求分析结果,设计无人车底盘的总体方案,包括动力系统选择、结构设计、负载管理策略等。进行详细的研发工作,包括零部件的选型与采购、样机的制作与调试等。

专注多旋翼、复合翼无人机技术研究,从事低空经济行业。 958

Frida实战:如何逆向分析某电商App的doCommandNative函数(附完整Hook脚本)

本文详细介绍了如何使用Frida逆向分析电商App中的doCommandNative函数,涵盖动态注册识别、SO加固对抗及高级Hook脚本编写等实战技巧。通过完整Hook脚本示例,帮助安全研究人员深入理解JNICLibrary的关键函数逆向分析方法,提升移动应用安全研究能力。

weixin_29327977的博客 615

【Spring Cloud】 服务注册/服务发现

【Spring Cloud】 服务注册/服务发现

2403_87459748的博客 1586

让 AI 变聪明的 20 条指令:如何让大模型回答得更精准、更专业、更实事求是

让 AI 变聪明,本质上不是写几句神奇咒语,而是把你的任务表达得更清楚,把事实标准设得更严格,把输出格式规定得更明确,把不确定性管理得更认真,把历史对话利用得更充分。大模型的强项是语言生成、信息组织、模式归纳和方案扩展;弱项是事实核验、实时更新、责任判断和对模糊意图的准确猜测。好的指令,就是在用人的判断弥补模型的弱点,让模型把强项发挥在正确的地方。

Sumarua的博客 1494

Eureka:Spring Cloud服务注册与发现组件

转载自学用。。。。。Eureka 一词来源于古希腊词汇,是“发现了”的意思。在软件领域,Eureka 是 Netflix 公司开发的一款开源的服务注册与发现组件。Spring Cloud 将 Eureka 与 Netflix 中的其他开源服务组件(例如 Ribbon、Feign 以及 Hystrix 等)一起整合进 Spring Cloud Netflix 模块中,整合后的组件全称为 Spring Cloud Netflix Eureka。

m0_47040562的博客 1892

MFC 修改CheckBox的文本颜色方法

设置主题 这一步是必须的,不可省略。 BOOL CMFCApplication1Dlg::OnInitDialog() { CDialogEx::OnInitDialog(); // 设置此对话框的图标。 当应用程序主窗口不是对话框时,框架将自动 // 执行此操作 SetIcon(m_hIcon, TRUE); // 设置大图标 SetIcon(m_hIcon, FALSE); // 设置小图标 // TODO: 在此添加额外的初始化代码 // 设置主题 HWND

Kim的博客 2249

开发板的使用

一、开发板使用学习大纲。 1、开发板组成、核心板资源,底板资源。 2、开发板连接、调试工具、串口参数配置。 3、开发板启动过程。 4、文件传输 1)使用串口传输。 上传/下载 2)使用网口传输。 上传/下载 5、临时/永久配置开发板IP地址。 6、开发板启动脚本。 二、开发板的组成。 核心板: CPU处理器: 芯片:S5P6818(三星) 内核: ARM cortex-A53 -> 八核处理器 运行内存:512MB*2=1G nandflash:4G 底板: 电源线:5V 串口...

qq_45633736的博客 2659

Spring Cloud Eureka:服务注册与发现

Spring Cloud Eureka:服务注册与发现

wei_shuo的博客 2885

2024年12月中国电子学会青少年软件编程(Python)等级考试试卷(六级)答案 + 解析

2024年12月中国电子学会青少年软件编程(Python)等级考试试卷(六级)答案 + 解析

伶俐角少儿编程 729

Spring Cloud 中的服务注册与发现: Eureka详解

在早期的架构体系中,集群概念尚未普及,机器数量较少,那时直接使用 DNS + Nginx 就能满足几乎所有服务的发现需求,相关注册信息直接配置在 Nginx 中。然而,随着微服务的兴起和流量的急剧增长,机器规模不断扩大,且机器上下线行为频繁。此时,依靠运维人员手动维护这些配置信息变得非常麻烦。于是,开发者们期望有一个工具,它能维护一个服务列表,机器上线、宕机等信息都能自动更新到这个服务列表上,客户端获取这个列表后可直接进行服务调用,这就是注册中心。服务提供者(Server)

Y_1215的博客 1505

Aurix TC3xx系列MCU ADC模块简介(一)

简单介绍英飞凌Aurix TC3xx系列单片机ADC模块的特点及内部结构。

m0_38045338的博客 6361

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Spring Cloud Eureka:服务注册与发现(附服务端和客户端代码)

Spring Cloud Eureka是微服务架构中的核心组件,负责服务注册与发现。它采用客户端-服务器模式:服务启动时向Eureka服务器注册信息,定期发送心跳保持连接,未响应服务会被自动剔除。搭建Eureka服务端需添加@EnableEurekaServer注解并配置端口和注册地址;客户端通过@EnableEurekaClient注解和配置服务名实现注册。通过三步实操(搭建服务端、配置客户端、测试调用)即可实现服务注册与发现功能,使用RestTemplate可通过服务名发现并调用其他微服务。

fykam的博客 1942

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

【Spring Cloud】 使用Eureka实现服务注册与服务发现

在我们前面进行搭建微服务,在进行远程调用时进行远程调用的时候,我们发现我们的远程调用URL是写死的。当更换机器,或者新增机器时,这个URL就需要跟着变更,就需要去通知所有的相关服务去修改。随之⽽来的就是各个项⽬的配置⽂件反复更新,各个项⽬的频繁部署。这种没有具体意义,但⼜不得不做的⼯作,会让⼈⾮常痛苦。

m0_71731682的博客 1972

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Eureka:Spring Cloud服务注册与发现组件(非常详细)

分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请轻击人工智能教程​​Eureka 一词来源于古希腊词汇,是“发现了”的意思。在软件领域,Eureka 是 Netflix 公司开发的一款开源的服务注册与发现组件。将 Eureka 与 Netflix 中的其他开源服务组件(例如 Ribbon、Feign 以及 Hystrix 等)一起整合进Cloud Netflix 模块中,整合后的组件全称为 Spring Cloud Netflix Eureka。

了解➔熟悉➔掌握➔精通 1043

Spring Cloud 服务注册与发现

介绍 Eureka 与 Consul

每篇博客都不是最终版,都会随着我的学习更新 1615
上一篇: 21.使用Actuator监控Spring Boot应用
下一篇: 03.Spring Cloud Ribbon:负载均衡的服务调用
Spring的思念
博客等级 码龄7年 80粉丝 143原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值