服务治理中间件-Eureka

目录

简介

搭建Eureka服务

注册服务到Eureka


简介

Eureka是Spring团队开发的服务治理中间件,可以轻松在项目中,实现服务的注册与发现,相比于阿里巴巴的Nacos、Apache基金会的Zookeeper,更加契合Spring项目,缺点就是仅仅只有服务发现与治理功能。

搭建Eureka服务

在项目中,创建一个新的Module,可以通过IDEA快速创建

点击Create即可创建一个Module,同时引入Eureka依赖。

在启动类中,添加@EnableEurekaServer注解

java 复制代码
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

@SpringBootApplication
@EnableEurekaServer
public class ServerEurekaApplication {

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

}

在main文件中,创建资源文件夹resources,并创建application.yml文件,内容为

复制代码
server:
  # 配置服务端口
  port: 8081
eureka:
  client:
    service-url:
      # 配置eureka服务器地址
      defaultZone: http://127.0.0.1:${server.port}/eureka
    #是否需要将自己注册到注册中心(注册中心集群需要设置为true)
    register-with-eureka: false
    #是否需要搜索服务信息 因为自己是注册中心所以为false
    fetch-registry: false

启动Module后,浏览器输入

http://localhost:8081/

即可打开Eureka

注册服务到Eureka

对于某个服务,注册到Eureka的流程如下:

【1】在该服务的启动类中添加 @EnableEurekaClient注解

java 复制代码
@SpringBootApplication
@EnableEurekaClient
public class ServiceAApplication {

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

}

【2】在该服务的配置文件中,添加如下配置

java 复制代码
server:
  # 服务端口号
  port: 8082
spring:
  application:
    # 服务名称 - 服务之间使用名称进行通讯
    name: service-objcat-a
eureka:
  client:
    service-url:
      # 填写注册中心服务器地址
      defaultZone: http://localhost:8081/eureka
    # 是否需要将自己注册到注册中心
    register-with-eureka: true
    # 是否需要搜索服务信息
    fetch-registry: true
  instance:
    # 使用ip地址注册到注册中心
    prefer-ip-address: true
    # 注册中心列表中显示的状态参数
    instance-id: ${spring.cloud.client.ip-address}:${server.port}

效果如下图:下图包含了2个服务,其中服务A有两个实例

可以通过Eureka,为某个微服务,指定多个实例,Eureka会轮询多个实例中可以正常提供服务的实例,从而实现分流。

相关推荐
猫猫不是喵喵.2 天前
从0到1创建一个微服务项目
java·数据库·微服务·1024程序员节
htzyl2062 天前
别急着上微前端:从 6 个场景倒推 Module Federation 2.0 与 qiankun 2.x 的选型
前端·微服务
知守观2 天前
一个方法两个触发口:反编译 XXL-Job 后,我看清了 inner/job 子包的裸奔现状
java·spring boot·微服务
wz97542 天前
Docker 从 systemd 托管容器、overlay2 存储驱动到 Compose 多容器实战
spring cloud·docker·eureka
草莓熊Lotso3 天前
【C++ 基于微服务的即时通讯系统】文件存储子服务实战:UUID生成、文件IO封装与全接口单元测试
开发语言·网络·数据库·c++·微服务·架构·单元测试
雾时之林4 天前
国内Docker 镜像加速器配置
云原生·eureka
瑞克-桑切斯5 天前
ERP 企业生产管理系统部署手册
运维·docker·云原生·容器·eureka
wdyan2978 天前
带着小白学习-微服务-5 实战:配置中心-数据库连接
数据库·学习·微服务
胡写代码9 天前
把数据库连接搬进配置中心,服务起不来:spring.config.import 的 4 个必填项
spring cloud·微服务
利威尔xu12 天前
Go IM 源码实战(14):本地缓存快 3000 倍,失效却难 10 倍
后端·缓存·微服务·面试·golang