在上一篇文章中,我们从理论上理解了 Eureka 注册中心的作用——它是微服务架构的“智能通讯录”。今天,我们将理论付诸实践,通过动手搭建一个 Eureka Server,亲眼见证微服务是如何在这个“总机”里注册和管理的。

别担心,这个过程比你想象的要简单得多,只需要三步走!

一、项目准备:站在巨人的肩膀上

在开始之前,请确保你的父工程(Parent Project)已经正确管理了 Spring Cloud 的版本依赖。

为什么这很重要?
Spring Cloud 是一个庞大的生态集合,包含了几十个组件。如果每个子模块都自己指定版本,很容易出现版本冲突(比如 Eureka 是 2.1 版本,而 Feign 是 2.0 版本)。

最佳实践
在父工程的 pom.xml 中,通过 <dependencyManagement> 统一管理 Spring Cloud 的版本(例如 Hoxton.SR10)。这样,我们在创建子模块时,就不需要再指定版本号了,直接引用即可。

二、三步搭建 Eureka Server

我们将创建一个名为 eureka-server 的 Maven 模块,作为我们的服务注册中心。

1. 引入依赖
在 eureka-server 模块的 pom.xml 中,我们需要引入 Eureka Server 的核心启动器。

<dependencies>
    <!-- 引入 Eureka Server 依赖 -->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
    </dependency>
</dependencies>

注意:这里我们没有写 <version> 标签,因为版本已经在父工程中统一管理了。

2. 开启服务
编写启动类,这是 Spring Boot 应用的标准入口。但这里有一个特殊的注解,它是整个注册中心的“开关”。

@SpringBootApplication
@EnableEurekaServer // 核心注解:开启 Eureka Server 功能
public class EurekaApplication {
    public static void main(String[] args) {
        SpringApplication.run(EurekaApplication.class, args);
    }
}

关键点@EnableEurekaServer 注解告诉 Spring Boot,“我不是一个普通的微服务,我是用来给别人注册的服务注册中心”。

3. 编写配置文件
在 application.yml 中配置服务的基本信息。

server:
  port: 10086 # 注册中心通常使用固定端口,方便记忆

spring:
  application:
    name: eureka-server # 服务名称,在管理界面显示

eureka:
  client:
    service-url:
      defaultZone: http://127.0.0.1:10086/eureka/ # 指定注册中心地址

这里有一个有趣的细节
细心的你可能发现了,Eureka Server 自身也是一个微服务,它配置了 defaultZone 指向自己。这意味着 Eureka Server 启动后,也会尝试将自己注册到注册中心里。在单机开发模式下,这完全没问题;但在生产环境的高可用集群中,我们需要配置它指向其他 Eureka 节点,而不是自己。

三、运行与验证:见证奇迹的时刻

完成上述配置后,启动 EurekaApplication

打开浏览器,访问 http://localhost:10086,你将看到 Eureka 的官方管理控制台。

控制台解读

  • 系统状态:页面顶部显示了当前服务器的环境信息、最后更新时间等。
  • DS Replicas:显示当前的副本节点。单机模式下,这里显示的是 localhost
  • Instances currently registered with Eureka:这是最核心的区域!目前下面是空的,因为我们还没有启动任何业务微服务。

当你后续启动订单服务或用户服务时,刷新这个页面,你会看到它们出现在列表中,状态显示为 UP(绿色),代表服务健康可用。如果某个服务宕机,状态会变为 DOWN(红色),或者在一定时间后被自动剔除。

四、知识小结与考点提炼

为了方便大家复习,我们将核心知识点整理如下:

知识点核心内容考试/面试重点难度系数
Eureka Server 搭建1. 引依赖
2. 加注解 @EnableEurekaServer
3. 配 application.yml
理解 @EnableEurekaServer 的自动装配原理⭐⭐
服务注册流程微服务启动 -> 向 defaultZone 发送注册请求 -> 注册表更新defaultZone 的配置格式及集群写法(逗号分隔)⭐⭐⭐
版本管理父工程使用 dependencyManagement 统一管理 Spring Cloud 版本避免子模块版本冲突,理解 BOM (Bill of Materials) 概念⭐⭐
管理界面解读查看实例状态 (UP/DOWN)、服务名、IP 端口能够区分 Windows 计算机名与 IP 地址的显示差异⭐⭐

总结
搭建 Eureka Server 是微服务开发的第一步。虽然代码量很少,但它承载了整个系统的服务治理重任。现在,我们的“总机”已经架设完毕,接下来,就让我们把订单服务和用户服务接入进来吧!

更多推荐