微服务集群简单搭建(Eureka)

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

本文仅仅是简单搭建微服务集群和工具使用,开发微服务建议使用Spring Cloud Alibaba生态。注意:Eureka已经停止更新,当下服务治理组件可以选择nacos。

1 软件版本

SpringCloud的版本和SpringBoot的版本选择很重要,慎重选择版本,不然会很痛苦!

版本选择参见官网: Spring Cloud

我的框架版本如下:

JDK: 11;

Spring Boot(spring-boot-starter-parent):2.2.10.RELEASE;

Spring Cloud(spring-cloud-dependencies): Hoxton.RELEASE;

mvn插件(spring-boot-maven-plugin): 2.3.1.RELEASE;

2 idea中同时启动多个application

我的软件版本是:IntelliJ IDEA 2021.1.1 (Community Edition)

2.1 添加多个应用

(1)在窗口右上角点击“Eidt Configurations”出现弹框;

 (2)点击弹框左上角的 “+”可以添加多个不同的应用,注意在"Build and run"中"Modify options" 一定要选择“Open run/debug tool window when started"和”Allow multiple instances“。

(3)添加运行时参数,在Idea中运行多个不同配置的微服务,还需要指定运行时配置文件。

2.2 同时运行多个应用

一般会在idea左下角有个services按钮,点击services可以弹出下面的Services框。如果没有Services按钮,可以点击左上角View→Tool Windows→Services调出Services框。

2.3 添加域名解析

在Ubuntu中输入命令:“sudo vim /etc/hosts”,添加以下信息。

127.0.0.1 node1

127.0.0.1 node2

127.0.0.1 node3

在浏览器中输入:http://localhost 与 http://node1、http://node2、http://node3能达到一样的结果,表明设置成功。

3 创建服务治理中心

3.1 选择组件

(1)选择Spring Assistant创建Springboot应用,工程名写成为“eursurver”;

(2)选择Spring Boot 版本,如果没有想要的版本,可以在生成完工程后,在pom文件中修改为相应的版本即可;

(3)选择“Spring Cloud Discovery”下的“Eureka Server”,依赖如下:

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

(4)生成服务治理中心的工程;

3.2 配置服务治理集群

在resources目录下,删除application.properties文件,创建application-node1.yml,application-node2.yml,application-node3.yml三个文件。注意:三个文件name必须相同,表示同一个服务,不同的地方只有port和 defaultZone。

三个文件的内容如下:

application-node1.yml

spring:
  application:
    name: eurserver01

server:
  port: 5001

eureka:
  client:
    instance:
      hostname: node1
      preferIpAddress: false

    register-with-eureka: false
    fetch-registry: false
    service-url:
      defaultZone: http://node1:5002/,http://node3:5003/

application-node2.yml

spring:
  application:
    name: eurserver01

server:
  port: 5002

eureka:
  client:
    instance:
      hostname: node2
      preferIpAddress: false

    register-with-eureka: false
    fetch-registry: false
    service-url:
      defaultZone: http://node1:5001/,http://node3:5003/

application-node3.yml

spring:
  application:
    name: eurserver01

server:
  port: 5003

eureka:
  client:
    instance:
      hostname: node3

    register-with-eureka: false
    fetch-registry: false
    service-url:
      defaultZone: http://node1:5001/,http://node2:5002/

3.3 查看服务治理结果

启动服务后,在地址兰中输入以下地址查看结果:http://node1:5001/ , http://node2:5002/ , http://node3:5003/

4 创建服务发现(服务提供者)

4.1 选择组件

(1)选择Spring Assistant创建Springboot应用,工程名写成为“eurprovider”;

(2)选择Spring Boot 版本;

(3)选择“Web”下的“Spring Web”,为其他组件提供服务;

(4)选择“Spring Cloud Discovery”下的“Eureka Discovery Client”,依赖如下:

<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>

(5)生成服务发现工程;


 

4.2 配置服务发现集群

在resources目录下,删除application.properties文件,创建application-node1.yml,application-node2.yml两个文件。注意:三个文件name必须相同,表示同一个服务,不同的地方只有port。


application-node1.yml

spring:
  application:
    name: eurprovider01

server:
  port: 6001

eureka:
  client:
    serviceUrl:
      defaultZone: http://127.0.0.1:5001/eureka/,http://127.0.0.1:5002/eureka/,http://127.0.0.1:5003/eureka/

application-node2.yml

spring:
  application:
    name: eurprovider01

server:
  port: 6002

eureka:
  client:
    serviceUrl:
      defaultZone: http://127.0.0.1:5001/eureka/,http://127.0.0.1:5002/eureka/,http://127.0.0.1:5003/eureka/

4.3 提供服务的代码

在工程下创建“contorller”目录,在名目录下创建 SearchData类,如下:


import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/search")
public class SearchData {

    @GetMapping("/getData")
    public String getData(){
        return "Hello Word";
    }

}

4.4 查看服务发现结果

启动服务后,在地址栏中输入:http://localhost:6001/search/getData

 
 

5 服务消费者

5.1 选择组件

(1)选择Spring Assistant创建Springboot应用,工程名写成为“feignconsumer”;

(2)选择Spring Boot 版本;

(3)选择“Web”下的“Spring Web”,为其他组件提供服务;

(4)选择“Spring Cloud Discovery”下的“Eureka Discovery Client”;

(5)选择“Spring Cloud Routing”下的“OpenFeign”,依赖如下:

<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>

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>

(6)生成工程;

5.2 配置消费者

修改resources目录下的application.properties。

spring:
  application:
    name: feignconsumer

server:
  port: 8080

eureka:
  client:
    register-with-eureka: false
    serviceUrl:
      defaultZone: http://127.0.0.1:5001/eureka/,http://127.0.0.1:5002/eureka/,http://127.0.0.1:5003/eureka/

5.3 创建java代码

在工程下创建两个文件如下:

(1)FeignconsumerApplication.java

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.openfeign.EnableFeignClients;

@SpringBootApplication
@EnableFeignClients
public class FeignconsumerApplication {

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

}

(2)DataFeignClient.java

import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;

@FeignClient(name = "eurprovider01")
public interface DataFeignClient {
    @GetMapping(value = "/search/getData")
    public String getData();
}

(3)SearchData.java

import com.mason.feignconsumer.util.DataFeignClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class SearchData {

    @Autowired
    private DataFeignClient dataFeignClient;

    @GetMapping("/search/getData")
    public String getData(){
        return dataFeignClient.getData();
    }

}

5.4 查看服务消费者结果


启动服务后,在地址栏中输入:http://localhost:8080/search/getData


 

eureka注册中心HA集群搭建(七) 本文介绍了如何搭建高可用的Eureka注册中心集群。主要内容包括:1. 在单机版Eureka基础上新建7002和7003两个模块,复制并修改配置;2. 通过修改hosts文件实现域名映射;3. 配置三个Eureka实例相互注册,实现集群高可用;4. 修改服务提供者的配置,使其注册到集群所有Eureka节点。最终实现了Eureka集群的搭建和微服务注册,通过访问不同端口验证了集群搭建成功。文章提供了详细的配置示例和操作步骤,帮助读者快速实现Eureka集群部署。 阅读详情

相关推荐

K8s部署eureka注册中心集群

K8s部署SpringCloud eureka集群 一.概述 对于一般的后端微服务来说,在k8s中同时起多个相同的服务来做负载均衡,只需要简单的修改deployment的replicas,增加pod数量,然后通过对外暴露一个service来代理这些pod。 而对于eureka来说,要实现eureka的高可用,那就不是修改replicas这么方便了。由于部署的多个eureka之间需要将自己注册到彼此...

weixin_43876317的博客 8084

探索 IntelliJ IDEA 中 Spring Boot 运行配置选项及其作用

探索 IntelliJ IDEA 中 Spring Boot 运行配置选项及其作用

一起coding,一起嗨。 2295

微服务 - Spring Cloud - Eureka Server单机和集群搭建、单机服务注册和集群服务注册

Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的。SpringCloud将它集成在其子项目spring-cloud-netflix中,以实现SpringCloud的服务发现功能。

太阳上的雨天 1832

微服务笔记---Nacos集群搭建

其中包含3个nacos节点,然后一个负载均衡器代理3个Nacos。:https://github.com/alibaba/nacos/tags,可以选择任意版本下载。官方推荐的最佳实践是使用带有主从的高可用数据库集群,主从模式的高可用数据库可以参考。将nacos文件夹复制三份,分别命名为:nacos1、nacos2、nacos3。Nacos默认数据存储在内嵌数据库Derby中,不属于生产可用的数据库。而后在浏览器访问:http://localhost/nacos即可。这里我们以单点的数据库为例来讲解。

优快云_Admin0的博客 1969

SpringCloud 整合 Eureka 实现服务注册中心

写在开头   接上一篇文章:基于 RestTemplate 搭建微服务工程。进行了简单的微服务工程搭建。或许你也会有疑问。既然 RestTemplate 就可以搞微服务了,为什么还要用那么多的 Eureka、Ribbon、Spring Cloud Alibaba 等一套体系呢?这不是画蛇添足吗?   Eureka 在2.0 版本已经停更,本文只是简单介绍它的使用。替代 Eureka 的 Spring Cloud Alibaba Nacos ,后续也会有介绍,请继续往下看 1.为什么要使用Spring Clo

扛麻袋的少年的博客 1748

【Godot】构建可维护的游戏工程 —— 项目代码组织结构

本文系统梳理了Godot引擎项目组织原则与架构模式,提出场景中心化、命名规范一致性和资源隔离三大核心原则。推荐按功能模块划分目录结构(如scenes/、entities/、systems/),采用snake_case命名避免跨平台问题,并通过.gdignore优化资源管理。文章详细解析了自包含场景设计、信号驱动解耦等架构技巧,以及团队协作中的版本控制策略,强调通过模块化设计平衡一致性与实用性。最终目标构建清晰可维护的项目结构,使资源定位和功能扩展更加高效。(148字)

qq_40205510的博客 1175

微服务架构及nacos集群的搭建

将项目所有模块(功能)打成jar或者war,然后部署一个进程优点:1:部署简单:由于是完整的结构体,可以直接部署在一个服务器上即可。2:技术单一:项目不需要复杂的技术栈,往往一套熟悉的技术栈就可以完成开发。缺点:1:系统启动慢,一个进程包含了所有的业务逻辑,涉及到的启动模块过多,导致系统的启动、重启时间周期过长;2:系统错误隔离性差、可用性差,任何一个约块的错误均可能造成整个系统的宕机;3:可伸缩性差:系统的扩容只能只对这个应用进行扩容,无法结合业务模块的特点进行伸缩。

2301_77560707的博客 1002

win10任务栏文件夹设置成竖形列表样式

win10任务栏文件夹设置成竖形列表样式

ftzchina的博客 7081

微服务7 nacos集群搭建

1.官方集群结构 2.搭建集群 2.1搭建数据库 2.2下载安装nacos 2.3配置nacos 2.4启动 2.5nginx反向代理和负载均衡

m0_62520968的博客 1287

UCIe物理层 —— 逻辑协议 (2)

本章开始主要介绍UCIe协议第四章,物理层逻辑定义和规范。如其他的通信协议一样,接口的物理层包含两个部分,逻辑子层和电气子层。其中逻辑层主要负责:1.定义接口信号和时序2. 定义发送端如何将上层数据分发到各个物理通道以及接收端如何把从各个通道收到的数据恢复成byte stream(Flit)。3. Broken Lane的repair和remap。4. 链路初始化,训练(training)和电源状态管理/切换。5. 扰码Scrambling和training sequence的产生。

m0_47581558的博客 1478

内存优化--LOGBACK导致内存告警

一.故事背景 由于开辟新市场需要,开发了新的项部署在海外平台,其中最消耗内存的功能是消费kafka消息(最开始预计一天有1千万的量),部署完之后运行一段时间发现出现内存告警问题。 二.分析问题 出现内存告警,(新项目是低配置机器 2C4G * 2台)第一个念头是去查看堆空间设置的情况,看到jvm启动命令中堆空间都是直接指定大小,说明问题不是出在堆空间 -Xmx3g -Xms3g 先不管这些,去查看总的内存使用情况,发现总的内存空间使用将近有92% = 3.68G,那么这多出来使用的0.6

qq_33199919的博客 6052

idea使用debug调试项目

Debug开篇 基本用法&快捷键 变量查看 计算表达式 智能步入 断点条件设置 多线程调试 回退断点 中断Debug 一、Debug开篇 如下是在IDEA中启动Debug模式,进入断点后的界面,我这里是Windows,可能和Mac的图标等会有些不一样。就简单说下图中标注的8个地方: ① 以Debug模式启动服务,左边的一个按钮则是以Run模式启动。在开发中,我一般会直接启动Debug模式,方便随时调试代码。 ② 断点:在左边行号栏单击左键,或者快捷键Ctrl+F8 打上/取消断点,断点行的颜色.

weixin_43382844的博客 2395

基于Simulink的永磁同步电机容错控制(缺相容错)

本文基于Simulink平台,详细介绍了永磁同步电机(PMSM)缺相容错控制的仿真实现方法。针对逆变器开路故障导致的缺相问题,提出"检测-重构-补偿"三阶段控制策略:采用电流阈值法快速检测故障(<5ms),重构αβ坐标系实现两相矢量控制,并通过谐波电流注入抑制转矩脉动(<8%)。仿真结果表明,该方法能有效维持故障后电机运行,转速波动<3%,满足电动汽车等关键应用的可靠性需求。文章包含完整的Simulink建模步骤、MATLAB函数代码及参数设置,为工程实践提供了可复现的

xiaoheshang_123的博客 146

SpringCloud-总结eureka微服务创建的流程及如何搭建eureka集群

1.总结eureka微服务创建的流程 Eureka是微服务架构中的注册中心,专门负责服务的注册与发现。 咱们来看看下面的这张图,结合图来仔细剖析一下整个流程: 如上图所示,库存服务、仓储服务、积分服务中都有一个Eureka Client组件,这个组件专门负责将这个服务的信息注册到Eureka Server中。说白了,就是告诉Eureka Server,自己在哪台机器上,监听着哪个端口。而Eureka Server是一个注册中心,里面有一个注册表,保存了各服务所在的机器和端口号 订单服务里也有一个Eure

weixin_45154349的博客 209

Open3D (C++) 泊松重建【2025最新版】

使用C++版本的Open3D实现点云的泊松重建

点云侠的博客 3077

基于STM32、HAL库的IP2736U_EF快充协议芯片简介及驱动程序设计

@param connected: 连接状态指针 (1=已连接, 0=未连接)= 0x2736) // 检查厂商ID。* @param hip: IP2736U句柄指针。* @param hip: IP2736U句柄指针。* @param hip: IP2736U句柄指针。* @param hip: IP2736U句柄指针。* @param hip: IP2736U句柄指针。* @param hip: IP2736U句柄指针。* @param hip: IP2736U句柄指针。

corlin6688的博客 430

微服务注册中心--Eureka

一、简介与架构 Eureka是一个基于REST (Representational State Transfer)的服务,主要用于AWS云中的服务定位,以实现中间层服务器的负载平衡和故障转移。也就是说Eureka在微服务中是一个服务发现注册的组件 Eureka是我们学习的第一个服务注册中心的组件,首先理解为什么要有注册中心?当微服务中的服务数量越来越多时,如果没有一个中心去管理这些微服务那么各个服务之间的调用则会变得杂乱无章,有一个服务配置中心来同意管理这些微服务的注册于调用。 Eureka是一款由Netf

Gopuwe的博客 4154

一套C#接口通吃安川/发那科/库卡:工业机器人统一控制框架设计与产线踩坑实录

我们把机器人的通用能力抽象为接口,涵盖连接、运动、IO、寄存器、状态、报警六大类能力,所有品牌适配器都必须实现这个接口。/// 工业机器人统一控制接口// 基础连接// 运动控制// IO与寄存器// 状态与报警// 事件工业机器人统一控制框架的本质,不是把所有品牌的功能都做平,而是找到通用能力的最大公约数,通过分层抽象把品牌差异隔离在底层。上层业务只关注工艺和流程,不需要关心机器人是什么品牌、用什么SDK、通信协议是什么。

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

微服务:整合 Spring Cloud Eureka

微服务:整合 Spring Cloud Eureka - 注册中心 Eureka Server 转自https://www.cnblogs.com/yansg/p/12494917.html 一、简介   服务治理可以说是微服务架构中最为核心和基础的模块,它主要用来实现各个微服务实例的自动化注册和发现。Spring Cloud Eureka是Spring Cloud Netflix 微服务套件的一部分,主要负责完成微服务架构中的服务治理功能。   Eureka由两个组件组成:Eureka服务器和E.

三侠剑的博客 417

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

SpringCloud(一) Eureka

springcloud(一)Eureka

weixin_59798993的博客 506

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

springcloud 当前服务端口号_「SpringCloud」Eureka初体验

Eureka的服务治理体系服务治理是微服务架构的核心和基础,主要的功能是服务的注册和服务发现。Eureka组件可以承担SpringCloud中的服务治理功能从图中可以看到,Eureka分为两部分。一个是EurekaServer,即注册中心,一般在生产环境上我们会搭建多个注册中心以实现高可用。每个服务单元向注册中心登记自己提供的服务,包括服务的主机与端口号、服务版本号、通讯协议等一些附加信息。注册中...

weixin_39570530的博客 320

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Eureka原理理解和Eureka集群搭建

简介 Eureka是Netflix开发的服务发现组件,本身是一个基于REST的服务。spring cloud框架集成了Eureka,在微服务架构中充当注册中心的角色,方便管理各种微服务。 Eureka原理 Eureka 分为 Eureka Server 和 Eureka Client及服务端和客户端。Eureka Server为注册中心,是服务端,而服务提供者和消费者即为客户端,消费者也可以是服...

qq_42524262的博客 2万+

微服务实战|Eureka注册中心及集群搭建

微服务架构已在云原生架构中发挥着举足轻重的作用,而SpingCloud无疑是微服务架构的集大成者,云计算最佳业务实践。本文总结了SpringCloud中Eureka注册中心及集群搭建实战。

记录、分享技术总结,避坑经验等 2267

手把手教你搭建SpringCloud项目(四)Eureka集群版搭建

上一篇我们只是简单的搭建了Eureka的单机版,但是在真正的生产环境上,是远远不够的,微服务RPC远程服务调用最核心的就是高可用,如果一台Eureka宕机了,那我们整个服务就不能使用了,所以就需要我们的集群版,实现负载均衡与故障容错。 我们参考cloud-eureka-server,新建module我们命名为cloud-eureka-server02,这样可以防止与cloud-eureka-server区别开来。具体的如何新建module这里就不贴截图了,具体的新建步骤看前两篇文章都有。 这...

weixin_38007185的博客 8314

03. 微服务 - 集群搭建 - Eureka(二)

eureka集群搭建、三个server节点数据同步、nginx统一代理,client透明注册

丁宿的博客 2009

【SpringCloud&Eureka】二、Eureka集群搭建

原理 原理图 基本原理 上图是来自eureka的官方架构图,这是基于集群配置的eureka; 处于不同节点的eureka通过Replicate进行数据同步 Application Service为服务提供者 Application Client为服务消费者 Make Remote Call完成一次服务调用 服务启动后向Eureka注册,Eureka Server会将注册信...

qwertyuiopasdfghjklzxcvbnm 1784
上一篇: vue组件懒加载
下一篇: 使用Spring Cloud Alibaba创建微服务
MasonYyp
博客等级 码龄9年 301粉丝 297原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值