当前位置: 首页 > article >正文

SpringCloud面试题----服务注册和发现是什么意思?Spring Cloud如何实现

服务注册和发现的含义

服务注册

在微服务架构中,一个系统通常由多个服务组成。服务注册是指服务实例将自身的信息(如服务名称、IP 地址、端口号、提供的接口等)注册到一个集中的服务注册中心的过程。通过服务注册,服务实例能够让其他服务知道自己的存在和位置。例如,一个订单服务启动后,将自己的相关信息注册到服务注册中心,这样其他需要调用订单服务的服务就可以从注册中心获取到订单服务的具体信息。

服务发现

服务发现是指服务消费者从服务注册中心获取服务提供者信息的过程。当一个服务需要调用另一个服务时,它可以向服务注册中心查询目标服务的实例列表,然后根据一定的策略(如负载均衡策略)选择一个合适的服务实例进行调用。比如,商品服务需要调用订单服务时,它会从服务注册中心获取订单服务的可用实例列表,然后选择一个实例来发起请求。

Spring Cloud 实现服务注册和发现

Spring Cloud 提供了多种实现服务注册和发现的组件,下面以 Eureka 和 Consul 为例进行介绍。

使用 Eureka 实现服务注册和发现

Eureka 是 Netflix 开源的服务注册与发现组件,Spring Cloud 对其进行了封装,使其能够方便地集成到 Spring Boot 应用中。

1. 创建 Eureka 服务器

首先,创建一个 Spring Boot 项目,并添加以下依赖:

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

在主应用类上添加 @EnableEurekaServer 注解,将其标记为 Eureka 服务器:

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);
    }
}

在 application.properties 或 application.yml 中进行配置:

server.port=8761
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false

上述配置将 Eureka 服务器的端口设置为 8761,并禁止它将自己注册到自己的服务列表中。

2. 创建服务提供者

创建一个 Spring Boot 项目,添加以下依赖:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <

http://www.kler.cn/a/555002.html

相关文章:

  • 推荐一款AI大模型托管平台-OpenWebUI
  • Debezium 与 Apache Kafka 的集成方式
  • EasyPoi系列之通用导入接口设计
  • 如何用ClassFinal加密JAR保护知识产权!
  • Spring中事务的传播行为方式
  • 如何看nginx.conf文件?
  • vue3学习1
  • ubuntu 执行 sudo apt-get update 报错
  • Spring扩展点实战-动态线程池
  • Rust编程语言入门教程 (七)函数与控制流
  • 在 Centos7 上部署 ASP.NET 8.0 + YOLOv11 的踩坑实录
  • Web 后端 请求与响应
  • Spring Boot 集成 RabbitMQ 并实现消息确认机制
  • 3月营销日历:开启春日盛宴,绽放生活魅力
  • 浅谈网络 | 容器网络之Cilium
  • 设计模式之适配模式是什么?以及在Spring AOP中的拦截器链的使用源码解析。
  • C# 十六进制字符串转换为十进制
  • 解决 `pip is configured with locations that require TLS/SSL` 错误
  • 10-R数组
  • 如何调用 DeepSeek API:详细教程与示例