SpringCloud 2020.0.4 系列之Eureka

2024-05-31 23:58

本文主要是介绍SpringCloud 2020.0.4 系列之Eureka,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

1. 概述

2. Eureka服务端的搭建

3. Eureka客户端(Demo)的搭建

4. Eureka Server 高可用

5. 综述

6. 个人公众号


1. 概述

老话说的好:遇见困难,首先要做的是积极的想解决办法,而不是先去泄气、抱怨或生气。

言归正传,微服务是当今非常流行的一种架构方式,其中 SpringCloud 是我们常用的一种微服务框架。

今天我们来聊聊 SpringCloud 中的服务治理组件 Eureka。

2. Eureka服务端的搭建

2.1 新建项目

打开IDEA,选择 File —> New —> Project...

2.2 填写项目信息

选择 Spring Initializr,填写项目信息

2.3 选择依赖项

选择 Spring Cloud Discovery —> Eureka Server

2.4 主要依赖

    <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.5.6</version><relativePath/> <!-- lookup parent from repository --></parent>

    <properties><java.version>1.8</java.version><spring-cloud.version>2020.0.4</spring-cloud.version></properties><dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement>

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

2.5 配置 Eureka Server

spring:application:name: my-eureka
server:port: 35000
eureka:instance:hostname: localhost               # 应用实例主机名client:register-with-eureka: false       # 是否发起服务注册fetch-registry: false             # 是否拉取服务注册表server:enable-self-preservation: false         # 是否开启服务自我保护,建议关闭,开启自我保护机制后,实例宕机也被不会剔除eviction-interval-timer-in-ms: 10000    # 每隔多久触发一次服务剔除,默认是60秒

建议关闭服务自我保护。

2.6 启动类中增加 @EnableEurekaServer 注解

2.7 启动 Eureka Server

启动 Eureka Server 项目,在浏览器输入 http://Eureka服务器IP:35000/,可以查看 Eureka Server 控制台。

3. Eureka客户端(Demo)的搭建

3.1 新建项目,选择依赖项

选择 Spring Cloud Discovery —> Eureka Discorvery Client

3.2 主要依赖

        <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- 健康检查 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency>

3.3 配置 Eureka Client

spring:application:name: my-eureka-client
server:port: 36000
eureka:client:service-url:defaultZone: http://192.168.1.22:35000/eureka/    # Eureka Server的地址healthcheck:enabled: true    # 开启健康检查, 依赖于 spring-boot-starter-actuatorinstance:lease-renewal-interval-in-seconds: 5      # 发出续约指令的间隔,默认30秒lease-expiration-duration-in-seconds: 30  # 租期到期时间,默认90秒

3.4 启动类中增加 @EnableDiscoveryClient 注解

3.5 启动 Eureka Client

启动 Eureka Client 项目,在之前的 Eureka Server 控制台可以看到注册的服务

4. Eureka Server 高可用

4.1 概述

如果 Eureka Server 是单点应用,则宕机后,整个链路都会瘫痪。

因此我们采用多 Eureka Server 互相注册的方式,实现 Eureka Server 的高可用。

这里以两台 Eureka Server 为例。

4.2 配置服务器的 hostname

# vi /etc/hostname

例如: zhuifengren1、zhuifengren2

4.3 配置hosts

配置服务器节点的 hosts,使IP地址与hostname对应

# vi /etc/hosts

例如:

192.168.1.22 zhuifengren1
192.168.1.12 zhuifengren2

4.4 修改 Eureka Server1 的配置文件

spring:application:name: my-eureka
server:port: 35000
eureka:instance:hostname: zhuifengren1                # 应用实例主机名client:service-url:defaultZone: http://zhuifengren2:35001/eureka/    # Eureka Server的地址server:enable-self-preservation: false         # 是否开启自我保护,建议关闭,开启自我保护机制后,实例宕机也被不会剔除eviction-interval-timer-in-ms: 10000    # 每隔多久触发一次服务剔除,默认是60秒

4.5 修改 Eureka Server2 的配置文件

spring:application:name: my-eureka
server:port: 35001
eureka:instance:hostname: zhuifengren2                # 应用实例主机名client:service-url:defaultZone: http://zhuifengren1:35000/eureka/    # Eureka Server的地址server:enable-self-preservation: false         # 是否开启自我保护,建议关闭,开启自我保护机制后,实例宕机也被不会剔除eviction-interval-timer-in-ms: 10000    # 每隔多久触发一次服务剔除,默认是60秒

注意:两台 Eureka Server 的 spring.application.name 必须相同

4.6 修改 Eureka Client 的配置文件

server:port: 36000
eureka:client:service-url:defaultZone: http://zhuifengren1:35000/eureka/,http://zhuifengren2:35001/eureka/    # Eureka Server的地址healthcheck:enabled: true    # 开启健康检查, 依赖于 spring-boot-starter-actuatorinstance:lease-renewal-interval-in-seconds: 5      # 发出续约指令的间隔,默认30秒lease-expiration-duration-in-seconds: 30  # 租期到期时间,默认90秒

4.7 启动服务

启动后,任意停止某一个 Eureka Server,不影响 Eureka Client 服务的注册。

5. 综述

今天聊了一下 Eureka的相关知识,希望可以对大家的工作有所帮助。

欢迎帮忙点赞、评论、转发、加关注 :)

关注追风人聊Java,每天更新Java干货。

6. 个人公众号

追风人聊Java,欢迎大家关注

这篇关于SpringCloud 2020.0.4 系列之Eureka的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1019406

相关文章

Java实现字节字符转bcd编码

《Java实现字节字符转bcd编码》BCD是一种将十进制数字编码为二进制的表示方式,常用于数字显示和存储,本文将介绍如何在Java中实现字节字符转BCD码的过程,需要的小伙伴可以了解下... 目录前言BCD码是什么Java实现字节转bcd编码方法补充总结前言BCD码(Binary-Coded Decima

SpringBoot全局域名替换的实现

《SpringBoot全局域名替换的实现》本文主要介绍了SpringBoot全局域名替换的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录 项目结构⚙️ 配置文件application.yml️ 配置类AppProperties.Ja

Java使用Javassist动态生成HelloWorld类

《Java使用Javassist动态生成HelloWorld类》Javassist是一个非常强大的字节码操作和定义库,它允许开发者在运行时创建新的类或者修改现有的类,本文将简单介绍如何使用Javass... 目录1. Javassist简介2. 环境准备3. 动态生成HelloWorld类3.1 创建CtC

JavaScript中的高级调试方法全攻略指南

《JavaScript中的高级调试方法全攻略指南》什么是高级JavaScript调试技巧,它比console.log有何优势,如何使用断点调试定位问题,通过本文,我们将深入解答这些问题,带您从理论到实... 目录观点与案例结合观点1观点2观点3观点4观点5高级调试技巧详解实战案例断点调试:定位变量错误性能分

Java实现将HTML文件与字符串转换为图片

《Java实现将HTML文件与字符串转换为图片》在Java开发中,我们经常会遇到将HTML内容转换为图片的需求,本文小编就来和大家详细讲讲如何使用FreeSpire.DocforJava库来实现这一功... 目录前言核心实现:html 转图片完整代码场景 1:转换本地 HTML 文件为图片场景 2:转换 H

Java使用jar命令配置服务器端口的完整指南

《Java使用jar命令配置服务器端口的完整指南》本文将详细介绍如何使用java-jar命令启动应用,并重点讲解如何配置服务器端口,同时提供一个实用的Web工具来简化这一过程,希望对大家有所帮助... 目录1. Java Jar文件简介1.1 什么是Jar文件1.2 创建可执行Jar文件2. 使用java

SpringBoot实现不同接口指定上传文件大小的具体步骤

《SpringBoot实现不同接口指定上传文件大小的具体步骤》:本文主要介绍在SpringBoot中通过自定义注解、AOP拦截和配置文件实现不同接口上传文件大小限制的方法,强调需设置全局阈值远大于... 目录一  springboot实现不同接口指定文件大小1.1 思路说明1.2 工程启动说明二 具体实施2

Java实现在Word文档中添加文本水印和图片水印的操作指南

《Java实现在Word文档中添加文本水印和图片水印的操作指南》在当今数字时代,文档的自动化处理与安全防护变得尤为重要,无论是为了保护版权、推广品牌,还是为了在文档中加入特定的标识,为Word文档添加... 目录引言Spire.Doc for Java:高效Word文档处理的利器代码实战:使用Java为Wo

SpringBoot日志级别与日志分组详解

《SpringBoot日志级别与日志分组详解》文章介绍了日志级别(ALL至OFF)及其作用,说明SpringBoot默认日志级别为INFO,可通过application.properties调整全局或... 目录日志级别1、级别内容2、调整日志级别调整默认日志级别调整指定类的日志级别项目开发过程中,利用日志

Java中的抽象类与abstract 关键字使用详解

《Java中的抽象类与abstract关键字使用详解》:本文主要介绍Java中的抽象类与abstract关键字使用详解,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录一、抽象类的概念二、使用 abstract2.1 修饰类 => 抽象类2.2 修饰方法 => 抽象方法,没有