springcloud学习手册-实现Config server的高可用

一、GIT是什么?

Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。那目前市面上主流的GIT版本控制软件平台有哪些呢?目前市面上流程控制平台有:github、git@osc、Coding、gitLab

  • github 作开发的同事应该都听说过它,github是一个面向开源及私有软件项目的托管平台,于2008年4月10日正式上线,目前注册用户有三百多万,一些知名开源项目如Rails、jQuery、python 都在上面托管,所以程序员都应该去这个网站去看看,下载些别人的代码,学习下。
  • git@osc 中国人自己的开源软件,开源中国,又叫码云。主要也是为开发者提供稳定、高效、安全的云端软件开发协作平台 。个人或企业,可用它实现代码托管、项目管理、协作开发等等。
  • coding Coding.net 是一个面向开发者的云端开发平台,提供代码托管、代码质量分析、在线 WebIDE、项目管理等。
  • gitLab 乌班图操作系统下一款用于仓库管理的大名鼎鼎软件。

总结:其实不管是什么样的GIT软件,它最重要的功能作用就是用于版本控制。 所以对于config server 来说基于git来仓库管理是可靠的。

二、MQ怎么高可用?

RabbitMQ是用erlang开发的,集群非常方便,因为erlang天生就是一门分布式语言,但其本身并不支持负载均衡。Rabbit模式大概分为以下三种:单一模式、普通模式、镜像模式。如何实现mq高用可那就需要普通模式即集群模式来进行实现:

上述图里是3个RabbitMQ运行在同一主机上,分别用不同的服务端口。当然我们的生产实际里,多个RabbitMQ肯定是运行在不同的物理服务器上,否则就失去了高可用的意义。

三、如何构建springcloud Config 高可用?

一般情况下 Config server是配合Eureka server使用的。这样可以达到一种可靠的可用状态。这种情况下,只需要将多个config server节点注册到Eureka server,就可以实现config server的高可用状态。如下边的结构图所示:

主要步骤如下:

第一步:Config Server端加入Eureka

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-starter-eureka</artifactId>

</dependency>

第二步:添加Eureka支持,将配置服务注册到Eureka上去。并且配置属性文档,加入必要属性

  • port 服务端口
  • name 服务名称
  • GIT配置 ,如配置uri(仓库位置)、searchPaths(仓库路径下的相对搜索位置,可以配置多个)、username(访问GIT仓库的用户名) 、password(访问GIT仓库的密码),因为config要基于git使用的,所以这里也配置了git的一些属性。

四、验证配置中心是否可用。

服务端我们已经配置创建完成,那怎么验证一下是否可用呢。

第一步:根据GIT配置的仓库位置,在下面创建一下config-repo目录作为配置仓库。并创建4个配置文件表示不同的环境。其中设置from属性为每个配置文件分别设置了不同的值。

第二步:通过如下格式进行访问

第三步:返回JSON结果

可以看到多了个version版本号属性,它对应 的是git上的commit 号。证明git已经管理起来了配置文件这些信息。也说明了git仓库已经对环境配置进行了版本管理,这样用户就可以通过客户端(config 客户端)来方便地访问这些配置内容了。

五、总结

通过面向服务的配置方式,config 完成服务配置的维护,解决了对路由映射实例的维护问题。配置服务器默认采用git来存储配置信息,这样就有助于对环境配置进行版本管理,并且可以通过git客户端工具来方便的管理和访问配置内容。同时Config server是配合Eureka server使用的,这样可以达到一种可靠的可用状态。

声明:文章属于个人原创,转载请注明文章出处

原文发布于微信公众号 - 全华班(quanhuaban)

原文发表时间:2018-01-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏架构师之路

极限优化:php巧用tcp长连接

上一期,和大家分享了YouTube系统架构,本期将和大家分享一个大并发下php使用tcp长连接访问后端的优化方法。 php巧用TCP长连接优化 一、面向人群 如...

4434
来自专栏沈玉琛的专栏

当 MySQL 连接池遇上事务(二):消失的记录

ySQL连接池是一个很好的设计,通过将大量短连接转化为少量的长连接,从而提高整个系统的吞吐率。但是当跟事务一起使用时,如果使用方式不恰当时,就会发生一些奇怪的事...

4193
来自专栏北京马哥教育

十个免费的 Web 压力测试工具

本文列举了是十个免费工具,可以用来进行Web的负载/压力测试的。这样你就可以知道你的服务器以及你的WEB应用能够扛得住多少的并发量,以及网站性能。 0. Gr...

6526
来自专栏finleyMa

说下browserslist

browserslist 是一个开源项目 见到有些package.json里会有如下的配置参数

2551
来自专栏ytkah

中文全文检索讯搜xunsearch安装

Xunsearch (迅搜)是一套免费开源的专业中文全文检索解决方案,简单易用而且 功能强大、性能卓越能轻松处理海量数据的全文检索。它包含后端索引、搜索服务程序...

1363
来自专栏北京马哥教育

10 个迅速提升你 Git 水平的提示

在这篇文章中,我们试图探索怎样有效的管理你的时间和充分的使用Git提供的功能。 注:本文中,一些命令包含了方括号中的部分内容(例如:git add -p [fi...

2764
来自专栏月色的自留地

mac电脑进行可见光通信实验要点

1056
来自专栏FreeBuf

AWS攻防 | 利用DNS技术突破AWS隔离网络限制进行数据渗漏

AWS客户可以使用默认虚拟私有云(VPC)中的DNS架构,发往AWS管理设施的流量同样也会经过亚马逊域名服务器(AmazonProvidedDNS),但是,这种...

2535
来自专栏情情说

RabbitMQ实战:消息通信模式和最佳实践

通过前2篇的介绍,了解了消息通信的主要元素和交互过程,以及如何运行和管理RabbitMQ,这篇将站在开发模式的角度理解「面向消息通信」带来的好处,以及在各种场景...

5155
来自专栏云计算教程系列

DokuWiki引擎

DokuWiki 是一个使用,用途多样的开源 Wiki 软件,并且不需要数据库。它因简洁易读的语法受到用户的喜爱。而容易维护、备份和整合则使它成为管理员的最爱。...

1342

扫码关注云+社区