微服务--Eureka Server搭建

本文详细介绍了Spring Cloud Eureka在微服务架构中的作用,包括服务注册、发现及集群搭建过程。通过实例演示了如何使用Spring Boot搭建Eureka Server,并配置单机与集群模式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

注册中心


  • 微服务架构中,需要一个最基本的功能就是服务的注册和发现。
  • Eureka:这里是 Spring Cloud Eureka 的简称,是 Spring Cloud Netflix 组件之一。 用于搭建服务注册中心;实现服务治理,包括服务注册、服务发现和服务检测监控等。
    Eureka架构图
组成角色
  • Eureka Server :提供服务注册和发现等
  • Service Provider:服务提供者:自身注册到Eureka Server,供消费端调用
  • Service Consumer:服务消费方:从Eureka获取注册服务列表,从而能够消费服务

Eureka Server搭建


首先前提:搭建Spring boot工程,引入Spring Cloud工具集

maven引入eureka-server 包
    <dependencies>
        <!-- eureka server依赖包 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <!-- 低版本 -->
            <!-- <artifactId>spring-cloud-starter-eureka-server</artifactId> -->
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>

    </dependencies>
配置文件
spring.application.name=spring-cloud-eureka

server.port=8000
# 表示是否将自己注册到Eureka Server,默认为true。
eureka.client.register-with-eureka=false
# 表示是否从Eureka Server获取注册信息,默认为true。
eureka.client.fetch-registry=false
# 设置与Eureka Server交互的地址
eureka.client.serviceUrl.defaultZone=http://localhost:${server.port}/eureka/
配置启动类
  • 启动类增加@EnableEurekaServer 注解配置
@SpringBootApplication
@EnableEurekaServer
public class SpringCloudEurekaApplication {

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

}
启动服务

在这里插入图片描述

访问服务

在这里插入图片描述
在这里插入图片描述

Eureka Server集群


  • 其他配置同单机服务
  • 改动配置文件,将eureka.serviceUrl 互相引用。多台集群,就将其他的eureka.server地址配置进去,用逗号隔开
配置文件
########### 注册中心集群 ,多注册中心 #######################
# peer1
spring:
  application:
    name: spring-cloud-eureka
  profiles: peer1

server:
  port: 8000

eureka:
  instance:
    hostname: peer1
  client:
    serviceUrl:
      defaultZone: http://peer2:8001/eureka/,http://peer3:8002/eureka/

# --- 三横隔离配置文件
---
# peer2
spring:
  application:
    name: spring-cloud-eureka
  profiles: peer2

server:
  port: 8001

eureka:
  instance:
    hostname: peer2
  client:
    serviceUrl:
      defaultZone: http://peer1:8000/eureka/,http://peer3:8002/eureka/

---
# peer3
spring:
  application:
    name: spring-cloud-eureka
  profiles: peer3

server:
  port: 8002

eureka:
  instance:
    hostname: peer3
  client:
    serviceUrl:
      defaultZone: http://peer1:8000/eureka/,http://peer2:8001/eureka/
  • 上面例子中共用了一个yaml配置文件,也可以搭建多个服务,就有多个配置文件
  • yaml 中 “—” 服务号 将文件分割,不然会出现 属性名相同的错误
  • spring.profiles 相当于不同的配置文件的id,代表一个 — 中的配置
  • 利用这个属性可以在spring boot启动,或者java打包时指定不同的参数来适配不同的配置文件。
#打包
mvn clean package
# 分别以peer1和peeer2 配置信息启动eureka
java -jar eureka-server-1.0.jar --spring.profiles.active=peer1
java -jar eureka-server-1.0.jar --spring.profiles.active=peer2
java -jar eureka-server-1.0.jar --spring.profiles.active=peer3
  • 在本地搭建的时候,IP都是相同的,所以需要针对peer1、peer2、peer3在host中指向本机
127.0.0.1 peer1
127.0.0.1 peer2
127.0.0.1 peer3
配置启动
  • IDEA配置启动,因为是三个服务集群,则需要启动三个服务。例子用了同一个工程,所以启动需要指定不同的参数
    在这里插入图片描述
    在这里插入图片描述
启动
  • 抛出异常在这里插入图片描述
  • 原因是三个服务启动时,总有先后,当服务寻找另外服务时,没有找到;就找不到连接。
  • 这个异常可以先忽略,因为Eureka Server会持续连接,等待其他服务都启动好了。就能连接到其他服务了。
  • 启动完成
    在这里插入图片描述
访问服务

在这里插入图片描述
在这里插入图片描述

  • 集群部署完成。
  • 另外两台访问就指向其他两台。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值