Springboot 项目 整合 eureka

一、eureka 的概念

  • Spring Cloud Eureka 是一个基于 REST 的服务,并且提供了基于 Java 的客户端组件,能够非常方便地将服务注册到 Spring Cloud Eureka 中进行统一管理,eureka包含两个组件:Eureka Server 和Eureka Client
  • Eureka Server提供服务注册服务,各个节点启动后,会在Eureka Server中进行注册,这样EurekaServer中的服务注册表中将会存储所有可用服务节点的信息,服务节点的信息可以在界面中直观的看到。
  • Eureka Client是一个java客户端,用于简化与Eureka Server的交互,客户端同时也就是一个内置的、使用轮询(round-robin)负载算法的负载均衡器。
    在这里插入图片描述

二、eureka 的搭建

1.创建一个父项目

File ==>> New ==>> Project

在这里插入图片描述

Spring Initializr ==>> 选择SDK ==>>点击Next
在这里插入图片描述
在这里插入图片描述

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

注意:pom.xml 中的父依赖版本号是2.3.4 (因为我用这个版本会报错,所以把他改为2.0.1)

修改前:

在这里插入图片描述

修改后:

在这里插入图片描述

修改SpringCloud 的版本号为Finchley.SR1

在这里插入图片描述

父项目中pom 文件所有的 jar

 <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.1.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example.springboot_eureka_demo</groupId>
    <artifactId>springboot_eureka_demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>springboot_eureka_demo</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
        <spring-cloud.version>Hoxton.SR8</spring-cloud.version>
    </properties>

    <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-server</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Finchley.SR1</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

2.创建子项目——注册中心 eureka

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
修改子项目eureka 的pom 文件 添加 eureka依赖和could依赖

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

  <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Finchley.SR1</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
 </dependencyManagement>

修改配置 文件properties 为yml 配置文件并添加如下配置

server:
  port: 5060
  servlet:
    context-path: /eureka
spring:
  application:
    name: eureka-server
eureka:
  client:
    fetch-registry: false
    #表示是否向eureka注册服务,即在自己的eureka中注册自己,默认为true,此处应该设置为false;
    register-with-eureka: true
    service-url:
      defaultZone:  http://localhost:5060/eureka/eureka
  instance:
    hostname: localhost
  server:
    enable-self-preservation: false
    eviction-interval-timer-in-ms: 10000


在启动文件上添加 @EnableEurekaServer 注解

在这里插入图片描述

运行eureka 项目 访问: http://localhost:5060/eureka/ 出现以下界面表示eureka项目搭建成功

在这里插入图片描述

3.创建子项目——生成者 producer

3.1 创建步骤如上 eureka项目创建步骤
3.2 项目结构
在这里插入图片描述
修改 producer 项目的 pom 文件 父依赖

修改前:
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.1.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

修改后:
    <parent>
        <groupId>com.example.springboot_eureka_demo</groupId>
        <artifactId>springboot_eureka_demo</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

pom 文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>com.example.springboot_eureka_demo</groupId>
        <artifactId>springboot_eureka_demo</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example.springboot_producer</groupId>
    <artifactId>springboot_producer</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>springboot_producer</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

        <!--  添加springboot fegin依赖,product项目即可以作为生产者,又可以作为消费者-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

修改配置 文件properties 为yml 配置文件并添加如下配置

spring:
  application:
    name: product
server:
  port: 7002
  servlet:
    context-path: /product
eureka:
  client:
    service-url:
      defaultZone: http://localhost:5060/eureka/eureka

3.3 创建一个controller
在这里插入图片描述

在启动上加上@EnableEurekaClient注解

在这里插入图片描述

运行启动类,访问: http://localhost:5060/eureka/ 出现以下界面说明生产者服务成功注册到eureka项目上

在这里插入图片描述

4.创建子项目——消费者 consumer

4.1 创建步骤如上 producer 创建目录
4.2 项目结构如下:
在这里插入图片描述
4.3 修改父依赖

原来为:
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.1.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

修改后为:
    <parent>
        <groupId>com.example.springboot_eureka_demo</groupId>
        <artifactId>springboot_eureka_demo</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

再添加openfeign 的jar
    <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
    </dependency>

修改配置 文件properties 为yml 配置文件并添加如下配置

server:
  servlet:
    #  定义项目的访问访问路径
    context-path: /consumer
    #定义端口号
  port: 7001
spring:
  application:
    #定义应用名称,即服务名称
    name: consumer
eureka:
  client:
    service-url:
      defaultZone: http://localhost:5060/eureka/eureka

在启动类中添加 @EnableEurekaClient和@EnableFeignClients

在这里插入图片描述

运行启动类 并访问:http://localhost:5060/eureka/ 出现以下界面说明生产者服务成功注册到eureka项目上
在这里插入图片描述

访问生成者服务:http://localhost:7002/product/producer

在这里插入图片描述

访问消费者服务:http://localhost:7001/consumer/getConsu

在这里插入图片描述


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_46032603/article/details/108774805