springboot整合eureka、config搭建注册中心和配置中心

news2025/1/17 0:52:51

目录

一 、springboot整合eureka实现注册中心

二、springboot整合config实现配置中心

三、从配置中心拉取配置


这篇文章详细介绍怎么通过eureka和config分别搭建一个注册中心和配置中心的服务。

一 、springboot整合eureka实现注册中心

1、创建一个springboot项目,并命名为eureka

2、修改pom.xml,添加eureka-server的依赖

因为博主之前整合springcloud的springboot版本用的都是2.3.2.RELEASE,而springboot对应的springcloud版本为Hoxton.SR

<?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>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.2.RELEASE</version>
        <relativePath/>
    </parent>

    <groupId>com.example</groupId>
    <artifactId>eureka</artifactId>
    <version>0.0.1-SNAPSHOT</version>

    <properties>
        <java.version>1.8</java.version>
        <lombok.version>1.18.22</lombok.version>
        <eureka.version>1.4.4.RELEASE</eureka.version>
    </properties>

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

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

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka-server</artifactId>
            <version>${eureka.version}</version>
        </dependency>
    </dependencies>

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

3、修改配置文件

server:
  port: 9000

eureka:
  instance:
    hostname: localhost # eureka所在的服务器名
  client:
    fetch-registry: false
    register-with-eureka: false
    # eureka提供服务的地址
    service-url:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka

4、启动类上添加注解@EnableEurekaServer

package com.example.eureka;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

@EnableEurekaServer
@SpringBootApplication
public class EurekaApplication {
    private final static Logger logger = LoggerFactory.getLogger(EurekaApplication.class);

    public static void main(String[] args) {
        if (logger.isDebugEnabled()) {
            logger.debug("启动eureka注册中心......");
        }

        SpringApplication.run(EurekaApplication.class, args);
    }

}

5、启动项目

6、浏览器访问localhost:9000,如果能看到下面的界面,说明eureka配置完成了

 

二、springboot整合config实现配置中心

1、创建一个springboot项目,并命名为config

2、修改pom.xml,添加config-server的依赖

<?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>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.2.RELEASE</version>
        <relativePath/>
    </parent>

    <groupId>cn.edu.sgu.www</groupId>
    <artifactId>config</artifactId>
    <version>0.0.1-SNAPSHOT</version>

    <properties>
        <java.version>1.8</java.version>
        <eureka.version>1.4.4.RELEASE</eureka.version>
        <config.version>2.2.8.RELEASE</config.version>
    </properties>

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

            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-eureka-server</artifactId>
                <version>${eureka.version}</version>
            </dependency>

            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-config-server</artifactId>
                <version>${config.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

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

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

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-config-server</artifactId>
        </dependency>
    </dependencies>

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

4、修改配置文件,注册到euraka并添加配置中心的配置

这里的配置文件可以存到当前项目下,也可以存到git仓库,还能保存到远程的服务器。

server:
  port: 8888

# 注册到eureka
eureka:
  client:
    service-url:
      defaultZone: http://localhost:9000/eureka

spring:
  application:
    name: config-server
  cloud:
    config:
      server:
        # 本地
#        native:
#          searchLocations: classpath:/config #本地配置的路径 读取/resources/config下的配置
        # 远程git仓库
        git:
          search-paths: config  # 配置文件所在根目录
          uri: https://gitee.com/he-yunlin/repository.git # git仓库地址

 5、启动类上添加注解@EnableConfigServer和@EnableEurekaClient

package cn.edu.sgu.www.config;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.config.server.EnableConfigServer;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;

@EnableConfigServer
@EnableEurekaClient
@SpringBootApplication
public class ConfigApplication {
    private final static Logger logger = LoggerFactory.getLogger(ConfigApplication.class);

    public static void main(String[] args) {
        if (logger.isDebugEnabled()) {
            logger.debug("启动config配置中心......");
        }

        SpringApplication.run(ConfigApplication.class, args);
    }

}

5、启动项目

6、浏览器访问localhost:9000,查看服务config是否注册到了eureka上

三、从配置中心拉取配置

经过前面的两步,已经搭建好了配置中心,并且能够正确的注册到注册中心,接下来创建一个服务,从配置中心拉取配置。

1、创建一个springboot项目eureka-client

2、添加maven依赖

<?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>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.2.RELEASE</version>
        <relativePath/>
    </parent>

    <groupId>com.example</groupId>
    <artifactId>euraka-client</artifactId>
    <version>0.0.1-SNAPSHOT</version>

    <properties>
        <java.version>1.8</java.version>
        <eureka.version>1.4.4.RELEASE</eureka.version>
        <config.version>2.2.8.RELEASE</config.version>
    </properties>

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

            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-eureka</artifactId>
                <version>${eureka.version}</version>
            </dependency>

            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-config-client</artifactId>
                <version>${config.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

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

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

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-config-client</artifactId>
        </dependency>
    </dependencies>

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

3、修改配置文件

server:
  port: 9001

spring:
  application:
    name: eureka-client
  profiles:
    active: dev
  cloud:
    config:
      profile: dev          # 不加此属性直接获取eureka-client.yml,加了后符合config的名字规则eureka-client-dev.yml
      enabled: true
      name: eureka-client   # 配置中心Git仓库config文件夹里的文件名字
      label: master         # 默认分支master
      fail-fast: true       # 是否启动快速失败功能,功能开启则优先判断config server是否正常
      discovery:
        enabled: true
        service-id: config-server  #spring cloud 配置中心服务名

eureka:
  instance:
    hostname: eureka
  client:
    service-url:
      defaultZone: http://localhost:9000/eureka

4、创建一个git仓库,取名为repository,新建一个config包,在config包下新建一个eureka-client-dev.yml,配置项目的启动端口号

server:
  port: 9002

5、启动项目

如果最后项目启动的端口号不是9001,而是9002,说明成功拉取到了配置。

总结:通过手动配置了一下eureka和config,发现一个问题,spring cloud config的uri不能通过配置文件更改,具体原因不详,可能是版本的bug

好了,文章就分享到这里了,接下来将要学习consul

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/755455.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

编译zlib库给IOS平台用

打开zlib官方网: zlib Home Site 找到github仓库地址: 复制zlib的github地址 执行下面脚本克隆zlib库 git clone https://github.com/madler/zlib.git 克隆成功 zlib自带CMakeLists.txt 所以用CMake-GUI来生成 选择zlib源码目录及输出目录,输入下图的CMAKE参数

Winform实现简历生成器(Excel版)

要点 1.项目中到COM类型库中添加Excel和Word的引用 2.大概思路&#xff1a;创建工作簿对象->将Excel简历框架加载到此工作簿->获取工作表->根据位置填入信息->显示工作簿对象Visible为可见->释放工作簿 GitHub - zzp229/WinForm_CreateExcelResume: 通过界面交…

小红书Java后端一面,被问麻了

今天分享一篇小红书 2 年社招 Java 后端一面的面经&#xff0c;面试的风格是从一个知识一层一层深入问到底层。 从 Java IO&#xff0c;问到 socket 底层。从 Java 内存&#xff0c;问到操作系统内存。所以学习知识的时候&#xff0c;不要只看八股文&#xff0c;还是需要从点到…

【算法 -- LeetCode】(019)删除链表的倒数第 N 个结点

1、题目 给你一个链表&#xff0c;删除链表的倒数第 n 个结点&#xff0c;并且返回链表的头结点。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5], n 2 输出&#xff1a;[1,2,3,5] 示例 2&#xff1a; 输入&#xff1a;head [1], n 1 输出&#xff1a;[] 示例 3…

excel常用操作备忘

excel操作&#xff1a; 1、快速填充多列公式&#xff1a;选中多列后&#xff0c;按ctrlD填 充。 2、快速删除空行&#xff1a;全选行&#xff0c;按ctrlG&#xff0c;空值项前边打上钩&#xff0c;点确定&#xff0c;针对选中的空行&#xff0c;鼠标右击&#xff0c;点删除&…

20230710~20230714周报

本次周报主要用于巩固和总结在DL-FWI培训中学到的知识。 基础知识 全波形反演&#xff08;FWI&#xff1a;Full waveform inversion&#xff09;&#xff1a;通过检测到的地震数据直接推测地下结构。 速度模型&#xff1a;由于波在不同介质中的传播速度不同&#xff0c;所以可…

计算联合体大小的测试demo

两个规则&#xff1a; 1.联合体大小必须能容纳联合体中最大的成员变量2.通过规则1 计算出的联合体大小必须是联合体中占内存大小最大的成员类型的整数倍 #include<stdio.h>typedef union {char a[7];int b; }test_union_1;typedef union {char a[6];char b; }test_un…

氢辉能源|[4GW]质子交换膜产线投产发布会暨[3MW]PEM电解槽正式交付

2023年7月12日下午&#xff0c;氢辉能源&#xff08;深圳&#xff09;有限公司&#xff08;以下简称氢辉能源&#xff09;质子交换膜产线投产发布会暨12台50标方3MW电解槽交付仪式在深圳市龙岗区国际低碳城成功举办。 此外&#xff0c;氢辉能源与远景能源、润世华集团、宏洲新能…

005-NULL和NOT NULL

通过desc命令获取数据表结构&#xff0c;当NULL column 字段为YES时&#xff0c;表示列表字段可以为空&#xff08;可以不插入数据&#xff09;&#xff0c;如&#xff1a; 可以设置Null 列表字段不能为空&#xff08;字段后面添加 not null&#xff09;&#xff0c;如&#xf…

StringBuffer类 StringBuilder 类

StringBuffer类 介绍 StringBuffer是一个容器&#xff0c;代表可变的字符序列&#xff0c;可以对字符串内容进行增删。 StringBuffer是可变长度的。 实现了序列化接口&#xff0c;可实现串行化&#xff08;可以将内容保存至文件或者网络传输&#xff09;&#xff1a; Serial…

吴恩达机器学习2022-Jupyter-机器学习实例

1 可选实验: 特征工程和多项式回归 1.1 目标 在这个实验室里: 探索特征工程和多项式回归&#xff0c;它可以让你使用线性回归机制来适应非常复杂&#xff0c;甚至非常非线性的函数。 1.2 工具 您将利用在以前的实验中开发的函数以及matplotlib和NumPy。 2 特征工程与多项式…

Linux内核模块开发 第 9 章 谈及设备文件

The Linux Kernel Module Programming Guide Peter Jay Salzman, Michael Burian, Ori Pomerantz, Bob Mottram, Jim Huang译 断水客&#xff08;WaterCutter&#xff09;源 LKMPG 9 谈及设备文件 设备文件被用于表示物理设备。多数物理设备既被用于输入&#xff0c;也被用…

【使用机器学习和深度学习对城市声音进行分类】基于两种技术(ML和DL)对音频数据(城市声音)进行分类(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

OpenCV开发实战 --(C++/Python) 进行视频中的简单背景估计-附源码

在许多计算机视觉应用中,您可以使用的处理能力较低。在这种情况下,我们必须使用简单但有效的技术。 在这篇文章中,我们将介绍一种这样的技术,用于在相机静态且场景中存在一些移动物体时估计场景的背景。这种情况并不少见。例如,许多交通和监控摄像头都是固定固定的。 时间…

Python爬虫——urllib_请求对象定制

UA介绍&#xff1a; User Agent中文名为用户代理&#xff0c;j简称UA&#xff0c;它是一个特殊字符串头&#xff0c;使得服务器能够识别客户使用的操作系统及版本&#xff0c;cpu类型&#xff0c;浏览器及版本&#xff0c;浏览器内核&#xff0c;浏览器渲染引擎&#xff0c;浏览…

【编译之美】【4. 代码优化:为什么你的代码比他的更高效】

什么是代码优化 代码优化是编译器后端的两大工作之一&#xff0c;弄懂它&#xff0c;你就掌握了一大块后端技术。 代码优化的目标 代码优化的目标&#xff0c;是优化程序对计算机资源的使用。 代码优化的对象 大多数的代码优化都是在 IR 上做的&#xff0c;而不是在前一阶段…

wvp-GB28181-pro /ZLMediaKit 部署学习

前言&#xff1a; 请认真阅读作者提供的文档&#xff01;认真阅读&#xff01;认真阅读&#xff01;认真阅读&#xff01; 背景&#xff1a; 公司项目需要对接不同地方的监控设备&#xff08;海康、大华、火星等等未知设备&#xff09;。由于本人对于海康设备不太了解出现一大…

CAD Exchanger SDK 3.20.0 for Linux Crack

引入新格式 Autodesk Revit&#xff0c;支持 BIM 特定数据模型以及 CAD Exchanger 3.19.0 中的原生格式 CDXBIM 独立于 Revit 软件读取 RVT 文件&#xff0c;使用 BIM 特定数据模型探索 BIM 属性&#xff0c;并利用我们专有的 BIM 友好 CDXBIM 格式更快地加载大型模型。 BIM数…

运维自动化前三阶段

运维自动化前三阶段 纯手工阶段&#xff1a;手工操作重复地进行软件部署和运维&#xff1b; 脚本阶段&#xff1a;通过编写脚本、方便地进行软件部署和运维&#xff1b; 工具阶段&#xff1a;借助第三方工具高效、方便地进行软件部署和运维。 这几个阶段是随着运维知识、经验…

tcn介绍

tcn 介绍 背景 对于大多数深度学习从业者来说&#xff0c;序列建模是递归网络的代名词。 然而&#xff0c;最近的结果表明&#xff0c;卷积架构在音频合成和机器翻译等任务上可以优于递归网络。给定一个新的序列建模任务或数据集&#xff0c;应该使用哪种架构&#xff1f;我…