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

目录

一 、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: 9000eureka:instance:hostname: localhost # eureka所在的服务器名client:fetch-registry: falseregister-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/eurekaspring:application:name: config-servercloud: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: 9001spring:application:name: eureka-clientprofiles:active: devcloud:config:profile: dev          # 不加此属性直接获取eureka-client.yml,加了后符合config的名字规则eureka-client-dev.ymlenabled: truename: eureka-client   # 配置中心Git仓库config文件夹里的文件名字label: master         # 默认分支masterfail-fast: true       # 是否启动快速失败功能,功能开启则优先判断config server是否正常discovery:enabled: trueservice-id: config-server  #spring cloud 配置中心服务名eureka:instance:hostname: eurekaclient: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.hqwc.cn/news/27700.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue3 兄弟子组件相互调用方法的实现思路及解决方法

需求背景&#xff1a; vue实际开发过程中&#xff0c;可能需要在某一个子组件调用另一个子组件的方法&#xff0c;从而实现业务需求。 例如以下的一个业务场景。 如上就涉及到到组件B需要调用组件A的form验证方法。 解决思路&#xff1a; 利用共同的父组件C&#xff0c;我…

Spark 4:Spark Core 共享变量

广播变量 # coding:utf8 import timefrom pyspark import SparkConf, SparkContext from pyspark.storagelevel import StorageLevelif __name__ __main__:conf SparkConf().setAppName("test").setMaster("local[*]")sc SparkContext(confconf)stu_inf…

ES6——Promise

promise 含义&#xff1a;异步编程解决方案 特点&#xff1a;1、状态不受外界影响&#xff0c;状态有三种&#xff1a;pending、fulfilled、rejected 2、状态不可逆&#xff0c;只能pending -> fulfilled、pending -> rejected 缺点&#xff1a;无法取消、不设置回调函…

mysql数字开头字符串排序

表结构 CREATE TABLE building (id bigint NOT NULL,name varchar(255) CHARACTER SET utf8mb3 COLLATE utf8_general_ci DEFAULT NULL COMMENT 名称,full_name varchar(255) CHARACTER SET utf8mb3 COLLATE utf8_general_ci DEFAULT NULL COMMENT 全称,PRIMARY KEY (id) USIN…

javascript 将json数据导出excel

<el-button type"primary" plain v-on:click"jsonToExcel();">导出</el-button>jsonToExcel() {const data this.AlarmData;let head "城市,站点,时间,A相电流(A),B相电流(A),C相电流(A),SO2压力(MPa),CO压力(MPa),NOX压力(MPa),A相电压…

总结930

之前本打算每天学12h&#xff0c;践行了一周&#xff0c;一天最多也就学11.5h,在时间利用上感觉已经趋于饱和的了。 这个时候&#xff0c;时间统计法应该能发挥它应有的作用了&#xff0c;但就算详细记录每日时间支出&#xff0c;也不能从根本上解决问题。 一味的进行时间上的…

基于Springboot的宠物店管理系统(源代码+数据库)087

基于Springboot的宠物店管理系统(源代码数据库)087 一、系统介绍 本系统分为管理员、店员两种角色 店员角色包含以下功能&#xff1a; 登录、宠物主人管理、宠物管理、宠物医疗管理、宠物销售管理、宠物寄养管理、宠物用品管理、宠物日常服务管理、宠物常见问题、个人中心、…

Appium Android ——利用 TestNG 并行执行用例

目录 前言&#xff1a; 一、测试类 二、连接两个 Android 设备或启动两个虚拟机 三、项目路径下新建两个 testng.xml 四、开启两个 appium server 五、导出依赖 六、执行测试 七、查看报告 前言&#xff1a; Appium是一个流行的移动应用自动化测试工具&#xff0c;…

RAID6故障导致分区打不开的服务器数据恢复案例

服务器数据恢复环境&#xff1a; 一台infortrend存储&#xff0c;有一组由12块硬盘组建的RAID6&#xff0c;RAID6的所有空间划分给一个LUN并映射到WINDOWS系统上&#xff0c;WINDOWS系统上划分了一个GPT分区。 服务器故障&分析&#xff1a; 存储无法访问&#xff0c;经过检…

【代码随想录13】前 K 个高频元素

题目 给定一个非空的整数数组&#xff0c;返回其中出现频率前 k 高的元素。 示例 1: 输入: nums [1,1,1,2,2,3], k 2输出: [1,2] 示例 2: 输入: nums [1], k 1输出: [1] 提示&#xff1a; 你可以假设给定的 k 总是合理的&#xff0c;且 1 ≤ k ≤ 数组中不相同的元素…

北京汽车:传统车厂向“用户服务”转型的新范本

更多技术交流、求职机会&#xff0c;欢迎关注字节跳动数据平台微信公众号&#xff0c;回复【1】进入官方交流群 摘要&#xff1a;用户决定价值 英国大文豪狄更斯曾在《双城记》中说&#xff1a;“这是最好的时代&#xff0c;也是最坏的时代”。大浪淘沙之下&#xff0c;汽车产业…

C#为什么不能成为大学编程入门的首选?

大学编程入门不以C#作为首选的原因有多个因素。虽然C#是一种功能强大的编程语言&#xff0c;但在大学编程入门阶段&#xff0c;通常会选择其他语言作为首选&#xff0c;以下是一些可能的原因&#xff1a; 我这里刚好有嵌入式、单片机、plc的资料需要可以私我或在评论区扣个6 …