Spring Boot Eureka搭建(stand-alone && 同伴意识)

IntelliJ IDEA + JDK 17下Spring Cloud微服务联调实战指南 微服务架构通过将单体应用拆分为多个独立部署的服务,提升了系统的可扩展性和可维护性。其核心原理在于服务间的解耦与通信,通常采用HTTP/REST或RPC协议。这种架构的技术价值在于支持团队独立开发、部署和扩展,并能采用不同的技术栈。然而,在开发阶段,尤其是在本地环境中进行多服务联调时,开发人员常常面临环境不一致、依赖复杂、服务发现困难等挑战,这直接影响了开发效率和问题排查。针对这些痛点,本文聚焦于**Spring Cloud**微服务框架,并结合**IntelliJ IDEA**这一主流集成开发环境,系统性地 阅读详情

Eureka服务注册中心

服务发现是基于微服务架构中的一个重要原则。Eureka既是服务端也是客户端。Eureka服务端可以部署成为高可用,每一个服务器都会复制注册的服务状态到其他服务器。

Eureka环境搭建

Eureka的搭建使用Spring Boot框架,首先在pom.xml中引入需要的依赖。

这里SpringBoot使用的是2.0.6版本

<!-- Spring Boot 父引用,有此配置当前应用才算是Spring Boot应用,该配置会继承大量的Spring Boot插件 -->
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.0.6.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>

Spring Cloud使用Finchley.RELEASE版本

<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<java.version>1.8</java.version>
		<spring-cloud-task.version>2.0.0.RELEASE</spring-cloud-task.version>
		<spring-cloud.version>Finchley.RELEASE</spring-cloud.version>
		<logback-gelf.version>2.0.0</logback-gelf.version>
	</properties>

spring-cloud-starter-netflix-eureka-server使用的是2.0.2.RELEASE版本。

        <!-- 依赖 Spring Cloud Netflix Eureka Server -->
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
			<version>2.0.2.RELEASE</version>
		</dependency>

然后再应用启动类上加上注解@EnableEurekaServer。

启动后通过服务端管理页面查看注册的基本信息http://IP:PORT(默认8761)。

单机环境搭建

application.yml配置如下

server:
  port: 8761

spring:
  application:
    name: register-center

eureka:
  instance:
    hostname: localhost
  client:
    registerWithEureka: false
    fetchRegistry: false
    serviceUrl:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
  server:
    # 测试时关闭自我保护机制,保证不可用服务及时剔除
    enable-self-preservation: false
    # 剔除失效服务间隔,默认60000
    eviction-interval-timer-in-ms: 3000




# registerWithEureka、fetchRegistry两个参数是禁用把自己当成Eureka客户端的。
# registerWithEureka:false.取消向注册中心注册
# fetchRegistry:false.取消向注册中心获取注册信息(服务、实例信息)

启动时直接启动即可,默认加载的是application.yml配置文件。

高可用环境搭建-同伴意识

Eureka可以运行多个实例,来保证高可靠和高可用,让他们彼此注册。这是默认的行为,所以你需要做的只是为对方添加一个有效的serviceUrl。以两个peer构成一个集群为例,有效配置如下:

创建application-eureka1.yml,配置如下:

server:
  port: 8761

spring:
  application:
    name: register-center
  profiles: eureka1

eureka:
  instance:
    # 配置通过主机名方式注册
    hostname: eureka1
  client:
    service-url:
      defaultZone: http://eureka2:8762/eureka/
    register-with-eureka: true
    fetch-registry: true
  server:
    # 关闭保护机制,默认true
    enable-self-preservation: false
    # 剔除失效服务间隔,默认60000
    eviction-interval-timer-in-ms: 3000

创建application-eureka2.yml,配置如下:

server:
  port: 8762

spring:
  application:
    name: register-center
  profiles: eureka2

eureka:
  instance:
    # 配置通过主机名方式注册
    hostname: eureka2
  client:
    service-url:
      defaultZone: http://eureka1:8761/eureka/
    register-with-eureka: true
    fetch-registry: true
  server:
    # 关闭保护机制,默认true
    enable-self-preservation: false
    # 剔除失效服务间隔,默认60000
    eviction-interval-timer-in-ms: 3000

建议使用域名,上述两个配置都是使用的域名,因此需要先配置hosts:

127.0.0.1 eureka1
127.0.0.1 eureka2

按照如上配置,实现两个注册中心实例相互注册,你中有我,我中有你。

启动Eureka-IDEA方式

配置启动项如下后,再启动各个实例。

启动Eureka-生产环境命令行方式

java -jar xxx.jar --spring.profiles.active=8761

java -jar xxx.jar --spring.profiles.active=8762

分别访问eureka1:8761/,eureka2:8762/,可以在registered-replicas看到都相互注册了,available-replicas可用分片中可以看到相应的节点,停止一个另一个还可以工作。若available-replicas没有相应节点,则是因为eureka.client.register-with-eureka/eureka.client.fetch-registry为false。

启动应用实例

从上图中也可以看到启动了服务网关实例,通过两个注册中心实例中的任意一个都能看到,说明其已经成功注册到注册中心集群中。

注意:若第一个启动的eureka实例报错,这种情况可能是正常的,因为第一个启动的找不到注册中心去注册。等待一段时间,等到他要注册的eureka实例启动了,如果他能够连接注册上去且不会继续报错就是正常的。

 

参考文章:

https://cloud.tencent.com/developer/article/1328027

https://cloud.tencent.com/developer/article/1081556

https://yq.aliyun.com/articles/693077

服务下线相关参考:

eureka开发时快速剔除失效服务:https://blog.youkuaiyun.com/haveqing/article/details/88406592

eureka的几种主动下线服务方式:https://blog.youkuaiyun.com/xiaobao5214/article/details/81263445

eureka如何剔除服务:https://jingyan.baidu.com/article/ca00d56c09d971e99eebcfd6.html

eureka强制下线:https://blog.youkuaiyun.com/u012394095/article/details/80996172

 

Nacos高可用集群部署实战:从原理到生产环境搭建 在微服务架构中,服务注册与配置中心是保障系统稳定性的核心基础设施,其高可用性直接决定了整个分布式系统的健壮性。其核心原理在于通过集群化部署,利用一致性协议(如Raft)实现多个节点间的数据同步与故障自动转移,从而消除单点故障风险。这项技术的核心价值在于为微服务提供持续、可靠的服务发现与动态配置管理能力,是构建弹性、可扩展云原生应用的关键。典型的应用场景包括大规模微服务治理、多环境配置统一管理以及需要实现业务不间断的生产系统。本文聚焦于Nacos这一主流组件的集群化部署,深入剖析其基于内嵌数据源Derby的集 阅读详情

相关推荐

Java后端多Agent协作框架选型:LangGraph与自研方案深度对比

多Agent协作是构建复杂AI应用的核心架构模式,它通过多个具备感知、决策与执行能力的自治程序单元协同工作,以解决单一模型难以处理的复杂任务。其技术原理在于将协作流程抽象为有向图,通过状态机管理共享上下文,并利用编排引擎协调节点间的执行顺序与通信。这一模式的技术价值在于提升了AI系统的模块化、可解释性与可靠性,使其能够应对需要多步骤推理、动态决策的复杂场景,例如智能客服、内容生成与审核、自动化流程等。在实际工程实践中,框架选型成为关键决策点。LangGraph作为基于Python的声明式编排框架,提供了快速

weixin_33831673的博客 618

Eureka服务注册与发现-StandAlone模式

Springcloud版本-Greenwich.RELEASE 一、Eureka介绍 云端服务发现,一个基于 REST 的服务,用于定位服务,以实现云端中间层服务发现和故障转移。 二、项目构建 1.新增maven项目 代码结构如下 2.pom依赖 父类pom.xml 引入spring-cloud-dependencies <!--属性配置--> <properties> <project.build.sourceEncoding>UTF-8</pr

fujw_2015的博客 170

Ansys口腔正畸有限元分析:从几何处理到接触设定的全流程解析

本文详细解析了Ansys在口腔正畸有限元分析中的全流程应用,从几何处理到接触设定,帮助医生精准预测牙齿移动趋势。通过有限元建模技术,可同时观察牙齿-牙周膜-牙槽骨的力学响应,显著提升矫治效果预测准确率。文章还分享了实用技巧和参数设置建议,适用于正畸医生和工程师。

weixin_30897233的博客 348

SpringCloud 2.x学习笔记:9、Spring Cloud Eureka Server HA高可用 (3个节点) (Greenwich版本)

项目信息 <?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...

程裕强的专栏 559

MYSQL、ORACLE、PostgreSQL数据库对象层次及权限管理对比

本文为出于自己扩展、比较、图形化的思维路径自行总结归纳,可能有些细节不太准确,欢迎指正。MySQL、Oracle、PostgreSQL关系型数据库都有管理员用户、用户、权限管理、表函数索引等数据库对象,schema。但在数据库对象隶属层次上有差异和相同的地方。

rachel_2016的博客 1490

Bladed风电仿真软件新手必看:从界面操作到功率曲线计算的完整指南

本文为风电工程师提供Bladed仿真软件的完整入门指南,涵盖界面操作、功率曲线计算及动态仿真等核心功能。通过实战技巧和常见问题解决方案,帮助新手快速掌握这款全球领先的风电机组仿真工具,提升风电项目开发效率。

weixin_30839881的博客 102

eureka 配置

# 端口 server.port=6001 eureka.instance.hostname=localhost #In standalone mode, you might prefer to switch off the client side behaviour, so it doesn’t keep trying and failing to reach its peers #在单机情...

long13631的博客 573

相机SDK开发C++篇-常用开发函数封装讲解(迈德威视相机)

/ 软触发失败,返回false } return true;= (nRet = CameraSetSysOption("NumBuffers", QString("%1").arg(getImageBufferNodeNum()).toLocal8Bit().data()))) { setLastErrorMsg("相机#%1设置缓存区数量错误,错误码:%2").arg(getCameraIndex()).arg(nRet);

GodJhin的博客 1542

Eureka--2、第一个Eureka程序,Eureka Client的自启动原理和简要过程

在之前的Spring Cloud Config的基础上,搭建简单的Eureka Server 没有代码,很多试验做不起来,我们先创建个Eureka Server再说。 本篇主要讲如何创建Eureka Server和Eureka Client,还有个重点是通过源码分析Eureka Client是如何自动启动的。   创建Eureka Server 1、通过idea创建Eureka Serv...

天下英雄出我辈,一入江湖岁月催 1万+

BIOS更新后PIN不可用怎么办?从原理到实操的完整修复指南

在计算机维护中,BIOS更新是常见的固件升级操作,但其引发的登录异常却常让用户措手不及。Windows Hello PIN并非传统密码,它通过TPM芯片与设备启动环境(PCR状态)强绑定,一旦主板固件或安全启动配置改变,TPM便会拒绝释放密钥,导致“由于此设备上的更改,你的PIN不再可用”。理解这一原理后,恢复路径清晰可控:优先尝试密码登录,或通过WinRE替换utilman.exe创建临时管理员,必要时还需处理BitLocker恢复密钥。本文面向系统维护与数据安全场景,系统梳理PIN失效的恢复流程与避坑方

weixin_31364787的博客 376

高分六号WFV预处理详细步骤(辐射校正、大气校正、几何校正)

高分六号WFV传感器获得的影像的预处理分为两个步骤:辐射校正和大气校正,辐射校正为了消除传感器的自身误差,大气校正为了消除大气的折射误差。 一、辐射校正 按照红框中信息进行更改。 辐射校正前地物光谱反射率: 校正后的地物光谱曲线的变化: 二、大气校正 ENVI中大气校正一般采用Flaash模型,但是这个模型需要设置许多的参数十分的麻烦,所以采用ENVI商店(app store,这个也需要下载的)里的Flaash Easy To Use 这个插件,可以快速地进行大气校正。 大气校正后的地物反射率 这

qq_41828818的博客 1万+

Spring Boot 搭建 Eureka Servrer 单机模式、高可用模式

目录 前言 搭建 Eureka Servrer单机模式 Thymeleaf 与 FreeMarker 冲突 搭建 Eureka Servrer 高可用模式 两个对等的 Eureka 服务器 三台对等的 Eureka 服务器 前言 1、《Netflix Eureka 简介、架构原理、及服务发现》中提到区域中会有一个 Eureka 集群,Eureka Server 之间通过复制(Re...

蚩尤后裔-汪茂雄 2085

AutoSAR_BSW高阶 7. Signal Group 信号组

Autosar BSW的高级配置是实现复杂汽车电子系统的关键步骤之一。通过合理配置信号组和使用适当的参数,您可以提高系统性能,确保数据的可靠传输。在本博客中,我们深入探讨了信号组的概念和高级配置参数,并提供了示例代码,希望这些信息能够帮助您更好地理解和应用Autosar BSW的高级配置。如果您在配置过程中遇到任何问题,不妨寻求专业支持,以确保您的汽车电子系统能够顺利运行。Autosar COM 模块是一个广泛应用于汽车行业的关键技术,它使不同的电子控制单元能够有效地通信和协作。

一直在水些技术小文 663

Spring Cloud Eureka 全方位深入解析

前言: spring-cloud-starter-netflix-eureka 和 eureka的区别: 前者是对后者的封装,以保证其在spring cloud中的运行。后者为纯粹的servlet应用,需要打war运行。 注:netflix   eureka 2.x 目前已停更 一.介绍 1.eureka介绍:略 2.CAP原理 在分布式环境中,存在一个著名的CAP原理,C-数据一致性...

harisuperman的博客 520

Modis数据处理工具:MRT百度网盘下载和手把手图文安装教程

如下图所示为MODIS Reprojection Tool(MRT)的软界面,看似简单,却是Modis遥感影像必不可少的处理工具,如投影变换等。本文以图文并茂的形式,详细讲解MRT软件在Windows10平台上的安装过程,并附MRT软件百度网盘下载地址。 Modis Tool主界面: 一、安装过程 1、安装Java运行环境 双击Java.exe,安装运行环境。默认的安装路径为C:\Program Files (x86)\Java\jre6\bin,后面需要用到这个路径。 等待...

智慧空间实验室 2623

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Spring Cloud(二)服务发现 Eureka

Spring Cloud Eureka是Spring Cloud Netflix项目下的服务治理模块。而Spring Cloud Netflix项目是Spring Cloud的子项目之一,主要内容是对Netflix公司一系列开源产品的包装,它为Spring Boot应用提供了自配置的Netflix OSS整合。通过一些简单的注解,开发者就可以快速的在应用中配置一下常用模块并构建庞大的分布式系统。它...

好好学习 天天向上 324

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

关于SpringBoot的一些Reflection

1. 宣言 Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can “just run”. We take an opinionated view of the Spring platform and third-party lib

splendid_java的专栏 1117

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

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

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

Standalone模式两种提交任务方式

第一种方式Standalone-client提交任务方式 提交命令-方式1: ./spark-submit --master spark://node1:7077 --class org.apache.spark.examples.SparkPi ../lib/spark-examples-1.6.0-hadoop2.6.0.jar 1000 提交命令-方式2:  ./spark-su...

我是一名程序猿 7580

具有Spring Boot的Spring Integration Standalone应用程序

我之前在博客中写过一种编写独立的Spring Integration应用程序的方法。 Spring Boot使创建此独立应用程序变得更加简单。 简单的流程是轮询USGS服务,以提供有关世界各地地震活动的信息并记录该信息。 使用Spring Integration描述的流程如下: <int:inbound-channel-adapter channel="quakeinfotri...

最佳 Java 编程 336

spring boot快速启动(四)——整合eureka注册中心

一、pom.xml文件 1.1、boot版本 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.7.RELEASE</ver...

博渊的博客 613

spring cloud:eureka服务发现

1.eureka服务端服务端代码@SpringBootApplication @EnableEurekaServer public class Application { public static void main(String[] args) { new SpringApplicationBuilder(Application.class).web(true).run(a

zhuchuangang的专栏 8万+

Java Graphics2D绘制背景透明的图形过程

package com.jhy.time; import java.awt.AlphaComposite; import java.awt.BasicStroke; import java.awt.Color; import java.awt.Graphics2D; import java.awt.Transparency; import java.awt.image.BufferedImage

^_^TaeYang-Jade^_^ 2万+

Protobuf简单应用-JSON和Proto Buffer互转

Google Protocol Buffer 的使用和原理 简介 Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,很适合做数据存储或 RPC 数据交换格式。它可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。目前提供了 C++、Java、Python 三种语言的 API。 什么是 G

^_^TaeYang-Jade^_^ 1万+

com.mongodb.MongoSocketOpenException: Exception opening socket

SpringBoot项目,加入了Mongo连接代码,启动后Console出现如下问题: com.mongodb.MongoSocketOpenException: Exception opening socket at com.mongodb.internal.connection.SocketStream.open(SocketStream.java:70) ~[mongo-java...

^_^TaeYang-Jade^_^ 1万+

SpringBoot启动后,访问页面需要输入登录密码

问题 原因是工程中启用了springboot security。 解决办法是: 一、移除spring-boot-starter-security依赖 如果没有实际使用security的功能,可以直接移除spring-boot-starter-security依赖 二、使用默认的账户密码登录 默认账户:user 默认密码:程序启动时自动生成的一串字符串 三、禁用安全设置或者设置对应的用户和密码 可以在application.properteis中配置对应的用户...

^_^TaeYang-Jade^_^ 6739

目录——Java趣味编程100例

第1章  变幻多姿的图表(  教学视频:69分钟) 1 1.1  金字塔图案 1 1.2  九九乘法表 3 1.3  余弦曲线 5 1.4  奥运五环旗 10 1.5  杨辉三角 12 1.6  国际象棋棋盘 16 1.7  心形图 19 1.8  回型矩阵 22 1.9  小结 26 第2章  身边的数学问题(  教学视频:59分钟) 27 2.1  黑色星期五 27 2

^_^TaeYang-Jade^_^ 4790
上一篇: Spring Cloud Eureka元数据自定义
下一篇: SpringBoot中使用Hibernate还是MyBatis?
LuckyJiang.2021
博客等级 码龄15年 217粉丝 199原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LuckyJiang.2021

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值