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

相关文章

来自专栏技术/开源

开源API测试工具 Hitchhiker v0.8 - 自动化测试结果统计

Hitchhiker 是一款开源的支持多人协作的 Restful Api 测试工具,支持自动化测试, 数据对比,压力测试,支持脚本定制请求,可以轻松部署到本地,...

1909
来自专栏专业duilib使用+业余界面开发

duilib的xml预览工具duilibpreview

2274
来自专栏walterlv - 吕毅的博客

在移动端打开 Google 的网页快照

2018-03-08 23:55

502
来自专栏嵌入式程序猿

今日我推荐:libModbus

我们曾在公众号里给大家讲过很多有关于Modbus的知识,还培训过Modbus驱动的开发和调试,今天我们给大家推荐一个常用的开源Modbus协议栈libmodbu...

3567
来自专栏EAWorld

容器云之K8s自动化安装方式的选择

目前kubernetes 已经发展到1.5的时代,但在这之前学习和使用kubernetes还是走了不少弯路,第一个问题就是安装,也许你会说安装很简单。照着官网或...

2729
来自专栏拭心的安卓进阶之路

Gradle for Android 系列:为什么 Gradle 这么火

Android 应用的构建过程 Android 应用程序的构建过程非常复杂,如图所示: ? 主要有以下几步: 主要的资源文件(layout, values 等)...

1818
来自专栏更流畅、简洁的软件开发方式

通用权限相关文档的下载【2009.9.7更新】

最新的下载地址:http://www.naturefw.com/nature/down.aspx 下面的地址都作废。       您可以在这里下载通用权限相关...

1779
来自专栏烙馅饼喽的技术分享

我的CMS开发记-4 介绍一下DotNetNuke的系统执行流程

       有朋友说应该写个大致结构出来。想想也有道理,那么我就来介绍一下Dotnetnuke的执行流程。基本上我这个就是照搬他的 基本思路     一个站点...

2618
来自专栏xiaoheike

嵌入式(Embedded)Neo4j数据库访问方法

应用中采用嵌入式Neo4j(Embedded Neo4j)数据库,插入数据后不知道如何访问。查询之后知道有Neoclipse这个可视化工具,最新版本是1.9.5...

442
来自专栏娱乐心理测试

使用Charles抓包并篡改返回数据

2879

扫描关注云+社区