热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

springcloudconfig分布式配置中心的高可用问题

本文给大家介绍springcloudconfig分布式配置中心的高可用问题,通过整合Eureka来实现配置中心的高可用,需要的朋友参考下本文

在前面的文章中,我们实现了配置文件统一管理的功能,但是我们可以发现,我们仅仅只用了一个server,如果当这个server挂掉的话,整个配置中心就会不可用,下面,我们就来解决配置中心的高可用问题。

下面我们通过整合Eureka来实现配置中心的高可用,因为作为架构内的配置管理,本身其实也是可以看作架构中的一个微服务,我们可以把config server也注册为服务,这样所有客户端就能以服务的方式进行访问。通过这种方法,只需要启动多个指向同一Gitlab仓库位置的config server端就能实现高可用了。

一、Config Server端加入Eureka

1、加入Eureka依赖

 
   org.springframework.cloud 
   spring-cloud-starter-eureka 
   

2、添加Eureka支持,将配置服务注册到Eureka上去

@EnableEurekaClient 

3、修改Server端的配置文件

加入Eureka注册的配置,bootstrap.yml

server: 
 port: 8889 
eureka: 
 client: 
 service-url: 
  defaultZone: http://localhost:8761/eureka 
 instance: 
 prefer-ip-address: true 
spring: 
 application: 
  name: foo 
 cloud: 
 config: 
  server: 
  git: 
   uri: https://gitlab.xxx.com/xxxxx/xxxxx.git  # 配置gitlab仓库的地址 
   search-paths: /config-repo # gitlab仓库地址下的相对地址,可以配置多个,用,分割。 
   username: your name  # gitlab仓库的账号 
   password: your password # gitlab仓库的密码 

启动Config Server

4、修改端口号,再启动一个Config Server

5、查看服务是否注册成功

二、Config 客户端加入Eureka

1、加入Eureka的pom依赖,同Config Server

2、修改Config客户端的配置文件

bootstrap.properties经过测试,此处客户端只能是bootstrap.properties,否则会一直连端口8888

server.port=8890 
spring.application.name=configserver 
spring.cloud.config.name=configserver 
spring.cloud.config.profile=dev 
spring.cloud.config.label=master 
# 开启Config服务发现支持 
spring.cloud.config.discovery.enabled=true 
# 此处需要设置成Config Server在Eureka上注册的服务名 
spring.cloud.config.discovery.service-id=foo 
# 指定服务发现中心 
eureka.client.service-url.defaultZOne=http://localhost:8761/eureka 

其中,通过eureka.client.service-url.defaultZone参数指定服务注册中心,用于服务的注册与发现,再将spring.cloud.config.discovery.enabled参数设置为true,开启通过服务来访问Config Server的功能,最后利用spring.cloud.config.discovery.serviceId参数来指定Config Server注册的服务名。这里的spring.application.name和spring.cloud.config.profile和前面博客中的意义一致。

3、在Application主类上添加Eureka支持,同Config Server一致

三、验证

1、查看Eureka Server上的服务

2、查看Config Server是否正常

在浏览器中分别输入:http://localhost:8888/configserver/dev/master,http://localhost:8889/configserver/dev/master,看是否有返回结果如下:

{ 
 
 "name": "configserver", 
 "profiles": [ 
  "dev" 
 ], 
 "label": "master", 
 "version": "8949024814dcb6d61f97dc49db7e9dadcfc724b1", 
 "state": null, 
 "propertySources": [ 
  { 
   "name": "https://gitlab.xxx.com/xxxxx/xxxxx/project/config-repo/configserver.properties", 
   "source": { 
    "name": "chhliuxyh", 
    "hello": "i'm the king of the world!!!", 
    "profile": "profile-default" 
   } 
  } 
 ] 
 
} 

3、查看客户端是否正常

在浏览器中输入http://localhost:8890/hello,看是否有如下返回

i'm the king of the world!!!

如果上面几步正常,则说明是ok的。

4、将8888端口对应的Config Server停掉,然后重新输入http://localhost:8890/hello,看是否ok!我们发现仍然是ok的,这样我们就完成了配置中心的高可用了!

 
 
 

总结

以上所述是小编给大家介绍的spring cloud config分布式配置中心的高可用实现方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


推荐阅读
  • 秒建一个后台管理系统?用这5个开源免费的Java项目就够了
    秒建一个后台管理系统?用这5个开源免费的Java项目就够了 ... [详细]
  • 从0到1搭建大数据平台
    从0到1搭建大数据平台 ... [详细]
  • 提升Android开发效率:Clean Code的最佳实践与应用
    在Android开发中,提高代码质量和开发效率是至关重要的。本文介绍了如何通过Clean Code的最佳实践来优化Android应用的开发流程。以SQLite数据库操作为例,详细探讨了如何编写高效、可维护的SQL查询语句,并将其结果封装为Java对象。通过遵循这些最佳实践,开发者可以显著提升代码的可读性和可维护性,从而加快开发速度并减少错误。 ... [详细]
  • REST与RPC:选择哪种API架构风格?
    在探讨REST与RPC这两种API架构风格的选择时,本文首先介绍了RPC(远程过程调用)的概念。RPC允许客户端通过网络调用远程服务器上的函数或方法,从而实现分布式系统的功能调用。相比之下,REST(Representational State Transfer)则基于资源的交互模型,通过HTTP协议进行数据传输和操作。本文将详细分析两种架构风格的特点、适用场景及其优缺点,帮助开发者根据具体需求做出合适的选择。 ... [详细]
  • 在CentOS 7上部署WebRTC网关Janus
    在CentOS 7上部署WebRTC网关Janus ... [详细]
  • 六个接私活的平台,技术在手,财富自由!值得推荐给每一位专业人士!
    本文将介绍六个适合专业人士接私活的平台,帮助技术人才实现财富自由。这些平台不仅提供了丰富的项目机会,还为用户搭建了高效的合作桥梁,是每位技术人士不容错过的资源。 ... [详细]
  • Flutter 开发中集成极光推送的详细步骤
    本文详细介绍了如何在 Flutter 项目中集成极光推送服务,包括配置和测试的具体步骤。 ... [详细]
  • 本文介绍了如何使用 Node.js 和 Express(4.x 及以上版本)构建高效的文件上传功能。通过引入 `multer` 中间件,可以轻松实现文件上传。首先,需要通过 `npm install multer` 安装该中间件。接着,在 Express 应用中配置 `multer`,以处理多部分表单数据。本文详细讲解了 `multer` 的基本用法和高级配置,帮助开发者快速搭建稳定可靠的文件上传服务。 ... [详细]
  • ### 优化后的摘要本学习指南旨在帮助读者全面掌握 Bootstrap 前端框架的核心知识点与实战技巧。内容涵盖基础入门、核心功能和高级应用。第一章通过一个简单的“Hello World”示例,介绍 Bootstrap 的基本用法和快速上手方法。第二章深入探讨 Bootstrap 与 JSP 集成的细节,揭示两者结合的优势和应用场景。第三章则进一步讲解 Bootstrap 的高级特性,如响应式设计和组件定制,为开发者提供全方位的技术支持。 ... [详细]
  • V8不仅是一款著名的八缸发动机,广泛应用于道奇Charger、宾利Continental GT和BossHoss摩托车中。自2008年以来,作为Chromium项目的一部分,V8 JavaScript引擎在性能优化和技术创新方面取得了显著进展。该引擎通过先进的编译技术和高效的垃圾回收机制,显著提升了JavaScript的执行效率,为现代Web应用提供了强大的支持。持续的优化和创新使得V8在处理复杂计算和大规模数据时表现更加出色,成为众多开发者和企业的首选。 ... [详细]
  • 利用ZFS和Gluster实现分布式存储系统的高效迁移与应用
    本文探讨了在Ubuntu 18.04系统中利用ZFS和Gluster文件系统实现分布式存储系统的高效迁移与应用。通过详细的技术分析和实践案例,展示了这两种文件系统在数据迁移、高可用性和性能优化方面的优势,为分布式存储系统的部署和管理提供了宝贵的参考。 ... [详细]
  • Cosmos生态系统为何迅速崛起,波卡作为跨链巨头应如何应对挑战?
    Cosmos生态系统为何迅速崛起,波卡作为跨链巨头应如何应对挑战? ... [详细]
  • 如何撰写PHP电商项目的实战经验? ... [详细]
  • Datepicker Localization for English (UK) Fails to Function Correctly ... [详细]
  • 本文深入探讨了Bootstrap网格布局系统的高级应用,重点解析了`.col-md-4`类的基本用法及其在响应式设计中的灵活运用。通过实例分析,详细阐述了如何利用该类实现多设备适配的页面布局,为开发者提供了宝贵的实践指导。 ... [详细]
author-avatar
奥奥奥尼瀚
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有