Spring Cloud集成Eurake

devtools/2024/12/22 19:41:08/

Spring Cloud 集成 Eureka 是一个常见的微服务架构实现,用于服务发现和注册。Eureka 是 Netflix 开源的一个服务注册和发现工具,Spring Cloud Netflix 提供了对 Eureka 的支持。下面是如何在 Spring Cloud 项目中集成 Eureka 的步骤:

先创建一个maven项目父项目模块,然后在父模块下创建各种服务

1. 创建 Eureka Server

首先,你需要创建一个 Eureka Server,它将负责管理服务注册表并处理服务实例的注册和注销。

1.1 引入依赖

在你的 pom.xml 中引入 Eureka Server 的依赖:

<dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-server</artifactId></dependency>
</dependencies>
1.2 配置 Eureka Server

在主应用类上添加 @EnableEurekaServer 注解,使该应用成为 Eureka Server:

package com.example.eurekaserver;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;@SpringBootApplication
@EnableEurekaServer
public class EurekaServerApplication {public static void main(String[] args) {SpringApplication.run(EurekaServerApplication.class, args);}
}
1.3 配置文件

application.ymlapplication.properties 文件中添加配置:

server:port: 8761eureka:client:register-with-eureka: falsefetch-registry: falseserver:enable-self-preservation: false

这将配置 Eureka Server 在 localhost:8761 上运行,并禁用自我注册。

2. 创建 Eureka Client

现在,你需要创建一个或多个 Eureka Client,即你的微服务应用,它们将向 Eureka Server 注册自己,并从中获取其他服务的地址。

2.1 引入依赖

在你的 pom.xml 中引入 Eureka Client 的依赖:

<dependencies><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>
</dependencies>
2.2 配置 Eureka Client

在你的微服务主应用类上添加 @EnableEurekaClient 注解,使其成为 Eureka Client:

package com.example.eurekaclient;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;@SpringBootApplication
@EnableEurekaClient
public class EurekaClientApplication {public static void main(String[] args) {SpringApplication.run(EurekaClientApplication.class, args);}
}
2.3 配置文件

application.ymlapplication.properties 中配置 Eureka Client:

server:port: 8080eureka:client:service-url:defaultZone: http://localhost:8761/eureka/register-with-eureka: truefetch-registry: trueinstance:prefer-ip-address: trueinstance-id: eurake-client1
spring:application:name: eurake-client

这个配置文件指定 Eureka Server 的地址为 http://localhost:8761/eureka/,并将服务实例注册到该地址。

3. 启动 Eureka Server 和 Client

  1. 启动 Eureka Server(在 localhost:8761 运行)。
  2. 启动 Eureka Client,客户端应用会自动注册到 Eureka Server。
  3. 你可以访问 http://localhost:8761 查看 Eureka Dashboard,看到所有注册的服务实例。

4. 调用其他服务(可选)

你可以使用 @LoadBalanced 注解的 RestTemplate 或 Feign 客户端来调用其他已注册的服务。

使用 RestTemplate
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;@Service
public class MyService {@Autowiredprivate RestTemplate restTemplate;public String callService() {return restTemplate.getForObject("http://SERVICE-NAME/endpoint", String.class);}@Bean@LoadBalancedpublic RestTemplate restTemplate() {return new RestTemplate();}
}
使用 Feign 客户端
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;@FeignClient(name = "SERVICE-NAME")
public interface MyFeignClient {@GetMapping("/endpoint")String callService();
}

总结

以上步骤详细介绍了如何在 Spring Cloud 项目中集成 Eureka,包含了 Eureka Server 和 Eureka Client 的配置及使用。通过这些配置,你可以实现微服务之间的自动发现和通信。


http://www.ppmy.cn/devtools/112056.html

相关文章

BMP图片与VGA(HDMI)时序互转

1.BMP介绍 BMP&#xff08;Bitmap&#xff09;是一种用于存储位图图像的文件格式&#xff0c;广泛应用于 Windows 操作系统中。BMP 文件可以存储高质量的图像数据&#xff0c;包括颜色深度较高的图片&#xff0c;同时支持无压缩或可选的简单压缩方式。 BMP格式&#xff1a; …

C++ | Leetcode C++题解之第398题随机数索引

题目&#xff1a; 题解&#xff1a; class Solution {vector<int> &nums; public:Solution(vector<int> &nums) : nums(nums) {}int pick(int target) {int ans;for (int i 0, cnt 0; i < nums.size(); i) {if (nums[i] target) {cnt; // 第 cnt 次…

[网络][CISCO]CISCO_华为网络设备端口镜像配置

CISCO 华为网络设备端口镜像配置大全 isco交换机通常支持2组镜像&#xff0c;4000系列有支持6组镜象的。支持所全端口镜像。 Cisco catylist2820 有2个菜单选项 先进入menu选项&#xff0c;enable port monitor 进入cli模式&#xff0c; en conf term interface fast0/…

软件测试工程师面试整理-测试工具

在软件测试过程中,使用合适的工具可以大大提高测试的效率和质量。根据不同的测试类型和需求,有许多专业的工具可供选择。以下是一些常用的软件测试工具,按不同类别进行分类: 1. 功能测试工具 ● Selenium ○ 用途:Web应用的自动化功能测试。 ○

SAP 工厂间的库存转移简介

SAP 工厂间的库存转移简介 库存转移概述业务场景前台操作库存转移概述 在 SAP 中,工厂间库存转移(Stock Transfer Between Plants)是指将物料从一个工厂转移到另一个工厂的过程。这种库存转移通常在同一公司代码下的不同工厂之间发生,但也可以在不同公司代码下进行。主要的…

SpringBoot 项目 Jar 包加密,防止反编译

文章目录 场景spring项目加密操作启动方式无密码启动有密码启动dockfile启动 反编译效果原文转载 场景 最近项目2B,要求部署到其他公司和机构的私有服务器上&#xff0c;但是又不想将源码泄露出去。要求对正式环境的启动包进行安全性处理&#xff0c;防止客户直接通过反编译工…

JVM——Java虚拟机内存初识(面经篇之JVM内存)

网上说的太详细了,真不利于我的初识和记忆&#xff0c; 例如&#xff1a;堆区的young&#xff0c; old&#xff0c;讲了一大堆&#xff0c;结果&#xff0c;我连这些区域是干什么的都不知道&#xff0c;存储什么的都不知道&#xff0c; 害得是我自己总结&#xff1a; 堆&#x…

wpf 字符串 与 变量名或函数名 相互转化:反射

在 WPF&#xff08;Windows Presentation Foundation&#xff09;中&#xff0c;通常需要将字符串与变量名或函数名相互转化时&#xff0c;使用反射或动态编程技术来实现。这主要是因为 C#&#xff08;WPF 使用的语言之一&#xff09;是强类型语言&#xff0c;变量名在编译时是…