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 条评论
登录 后参与评论

相关文章

来自专栏我和未来有约会

Silverlight第三方控件专题

这里我收集整理了目前网上silverlight第三方控件的专题,若果有所遗漏请告知我一下。 名称 简介 截图 telerik 商 RadC...

3985
来自专栏魂祭心

原 canvas绘制clock

4054
来自专栏Golang语言社区

【Golang语言社区】GO1.9 map并发安全测试

var m sync.Map //全局 func maintest() { // 第一个 YongHuomap := make(map[st...

4698
来自专栏落花落雨不落叶

canvas画简单电路图

60611
来自专栏Ceph对象存储方案

Luminous版本PG 分布调优

Luminous版本开始新增的balancer模块在PG分布优化方面效果非常明显,操作也非常简便,强烈推荐各位在集群上线之前进行这一操作,能够极大的提升整个集群...

3095
来自专栏张善友的专栏

Mix 10 上的asp.net mvc 2的相关Session

Beyond File | New Company: From Cheesy Sample to Social Platform Scott Hansel...

2547
来自专栏张善友的专栏

Miguel de Icaza 细说 Mix 07大会上的Silverlight和DLR

Mono之父Miguel de Icaza 详细报道微软Mix 07大会上的Silverlight和DLR ,上面还谈到了Mono and Silverligh...

2707
来自专栏跟着阿笨一起玩NET

c#实现打印功能

2692
来自专栏闻道于事

js登录滑动验证,不滑动无法登陆

js的判断这里是根据滑块的位置进行判断,应该是用一个flag判断 <%@ page language="java" contentType="text/html...

6758
来自专栏一个会写诗的程序员的博客

Spring Reactor 项目核心库Reactor Core

Non-Blocking Reactive Streams Foundation for the JVM both implementing a Reactiv...

2142

扫码关注云+社区