温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
  • 忘记密码?
登录注册×
获取短信验证码
其他方式登录
点击 登录注册 即表示同意 《亿速云用户服务条款》
  • 服务器
  • 数据库
  • 开发技术
  • 网络安全
  • 互联网科技
登 录 注册有礼
最新更新 网站标签 地图导航
产品
  • 首页 > 
  • 教程 > 
  • 互联网科技 > 
  • 软件技术 > 
  • SpringCloud分布式微服务云架构 第七篇: 高可用的分布式配置中心(Config)

SpringCloud分布式微服务云架构 第七篇: 高可用的分布式配置中心(Config)

发布时间:2020-08-07 01:51:38 来源:ITPUB博客 阅读:205 作者:gung123 栏目: 软件技术

上一篇文章讲述了一个服务如何从配置中心读取文件,配置中心如何从远程git读取配置文件,当服务实例很多时,

都从配置中心读取文件,这时可以考虑将配置中心做成一个微服务,将其集群化,从而达到高可用,架构图如下:

SpringCloud分布式微服务云架构 第七篇: 高可用的分布式配置中心(Config)

一、准备工作

继续使用上一篇文章的工程,了解springcloud架构可以加求求:三五三六二四七二五九创建一个eureka-server工程,

用作服务注册中心。

在其pom.xml文件引入Eureka的起步依赖spring-cloud-starter-netflix- eureka-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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.forezp</groupId>
	<artifactId>config-server</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>jar</packaging>
	<name>config-server</name>
	<description>Demo project for Spring Boot</description>
	<parent>
		<groupId>com.forezp</groupId>
		<artifactId>sc-f-chapter7</artifactId>
		<version>0.0.1-SNAPSHOT</version>
	</parent>
	<dependencies>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</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>

在配置文件application.yml上,指定服务端口为8889,加上作为服务注册中心的基本配置,代码如下:

server:
  port: 8889
eureka:
  instance:
    hostname: localhost
  client:
    registerWithEureka: false
    fetchRegistry: false
    serviceUrl:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

入口类:

@EnableEurekaServer
@SpringBootApplication
public class EurekaServerApplication {
	public static void main(String[] args) {
		SpringApplication.run(EurekaServerApplication.class, args);
	}
}

二、改造config-server
在其pom.xml文件加上EurekaClient的起步依赖spring-cloud-starter-netflix-eureka-client,代码如下:

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

配置文件application.yml,指定服务注册地址为 http://localhost:8889/eureka/,其他配置同上一篇文章,完整的配置如下:

spring.application.name=config-server
server.port=8888
spring.cloud.config.server.git.uri=https://github.com/forezp/SpringcloudConfig/
spring.cloud.config.server.git.searchPaths=respo
spring.cloud.config.label=master
spring.cloud.config.server.git.username= your username
spring.cloud.config.server.git.password= your password
eureka.client.serviceUrl.defaultZone=http://localhost:8889/eureka/

最后需要在程序的启动类Application加上@EnableEureka的注解。

三、改造config-client

将其注册微到服务注册中心,作为Eureka客户端,需要pom文件加上起步依赖spring-cloud-starter-netflix-eureka-client,代码如下:

<dependencies>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-config</artifactId>
		</dependency>
		<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-client</artifactId>
		</dependency>
	</dependencies>

配置文件bootstrap.properties,注意是bootstrap。加上服务注册地址为 http://localhost:8889/eureka/

spring.application.name=config-client
spring.cloud.config.label=master
spring.cloud.config.profile=dev
#spring.cloud.config.uri= http://localhost:8888/
eureka.client.serviceUrl.defaultZone=http://localhost:8889/eureka/
spring.cloud.config.discovery.enabled=true
spring.cloud.config.discovery.serviceId=config-server
server.port=8881

spring.cloud.config.discovery.enabled 是从配置中心读取文件。

spring.cloud.config.discovery.serviceId 配置中心的servieId,即服务名。

这时发现,在读取配置文件不再写ip地址,而是服务名,这时如果配置服务部署多份,通过 负载均衡,从而高可用。

依次启动eureka-servr,config-server,config-client

访问网址:http://localhost:8889/

SpringCloud分布式微服务云架构 第七篇: 高可用的分布式配置中心(Config)

访问http://localhost:8881/hi,浏览器显示:

foo version 3

向AI问一下细节
推荐阅读:
  1. phalcon + nginx 混合模式配置
  2. SpringCloud之配置中心Config

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

config 中心 分布
  • 上一篇新闻:
    CSipSimple最新版本(二)--添加视频功能
  • 下一篇新闻:
    POI原生导入读取EXCEL方法

猜你喜欢

  • 是否可以在生产环境中使用Alma Linux
  • Alma Linux是否支持不同的桌面环境
  • docker日记中grep的用法是什么
  • Alma Linux是否提供自动化部署和配置工具
  • 怎么将docker中的日志拷贝到本地
  • Alma Linux是否支持容器编排工具
  • c#中operator的使用方法是什么
  • java中operator方法的作用是什么
  • abstract在Java中的作用是什么
  • Java中的main方法有什么作用
最新资讯
  • Elixir中的数据持久化策略和ORM库有哪些
  • 如何在Elixir中利用Microservices架构优化系统设计
  • 在Elixir中实现Blockchain技术的基础架构和应用示例
  • 解释Elixir中的代码热替换机制及其在生产环境中的应用
  • Elixir项目中使用Docker容器进行本地开发的最佳实践是什么
  • 如何在Elixir中构建可扩展的实时数据分析和处理系统
  • Elixir中的P2P通信模型实现方法有哪些
  • 在Elixir中如何针对不同用户角色实现细粒度的访问控制
  • 针对Elixir应用的渗透测试和安全漏洞审查流程是怎样的
  • Elixir如何实现灾难恢复计划和数据备份策略
相关推荐
  • python configParser 模块
  • Spring Cloud Config 入门
  • 210支持nfs方式挂载文件系统的内核配置
  • 【NH笔记一】.config配置介绍
  • SpringCloud学习系列之五-----配置中心(Config)和消息总线(Bus)完美使用版
  • SpringCloud学习系列之四-----配置中心(Config)使用详解
  • 跟我学Spring Cloud(Finchley版)-21-Config-配置属性加解密
  • HTTP 错误 500.19 - Internal Server Error
  • MongoDB中怎么修复config配置节点
  • 怎么进行Spring Cloud Config目录遍历漏洞CVE-2019-3799的预警

相关标签

configure configmap configmgr prerequis chkconfig ifconfig configuration kubeconfig web.config ldconfig vue.config.js servletconfig ifconfig命令 spring cloud config configparse webpack.config.js @configurationproperties autoconfiguration javaconfig config.js app.config
AI

聚圣源寰宇浏览器官网朝花夕拾主要内容男孩起名带木字手机测网速加盟麦当劳要多少钱电器店起名大全英文品牌起名方法手机电视赛文奥特曼国语版宋词 起名12星座大全火姓起名大全男孩黄姓男孩起名字大全免费鸿运起名网女孩石姓起名大全姓邵的起名字王玥波雍正剑侠图炙手可热的蚂蚁庄园答案最新转学申请书起名李金什么冬之蝉ova汉阳动物园龙血沸腾战寒爵b-2邵氏武侠电影店铺起名打分免费测评admire小微直播淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻让美丽中国“从细节出发”清明节放假3天调休1天男孩疑遭霸凌 家长讨说法被踢出群国产伟哥去年销售近13亿网友建议重庆地铁不准乘客携带菜筐雅江山火三名扑火人员牺牲系谣言代拍被何赛飞拿着魔杖追着打月嫂回应掌掴婴儿是在赶虫子山西高速一大巴发生事故 已致13死高中生被打伤下体休学 邯郸通报李梦为奥运任务婉拒WNBA邀请19岁小伙救下5人后溺亡 多方发声王树国3次鞠躬告别西交大师生单亲妈妈陷入热恋 14岁儿子报警315晚会后胖东来又人满为患了倪萍分享减重40斤方法王楚钦登顶三项第一今日春分两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?周杰伦一审败诉网易房客欠租失踪 房东直发愁男子持台球杆殴打2名女店员被抓男子被猫抓伤后确诊“猫抓病”“重生之我在北大当嫡校长”槽头肉企业被曝光前生意红火男孩8年未见母亲被告知被遗忘恒大被罚41.75亿到底怎么缴网友洛杉矶偶遇贾玲杨倩无缘巴黎奥运张立群任西安交通大学校长黑马情侣提车了西双版纳热带植物园回应蜉蝣大爆发妈妈回应孩子在校撞护栏坠楼考生莫言也上北大硕士复试名单了韩国首次吊销离岗医生执照奥巴马现身唐宁街 黑色着装引猜测沈阳一轿车冲入人行道致3死2伤阿根廷将发行1万与2万面值的纸币外国人感慨凌晨的中国很安全男子被流浪猫绊倒 投喂者赔24万手机成瘾是影响睡眠质量重要因素春分“立蛋”成功率更高?胖东来员工每周单休无小长假“开封王婆”爆火:促成四五十对专家建议不必谈骨泥色变浙江一高校内汽车冲撞行人 多人受伤许家印被限制高消费

聚圣源 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化