Cloud微服务入门【3】--配置管理服务

来源:互联网 发布:linux培训ujiuye 编辑:程序博客网 时间:2024/06/06 02:12

1 简介

Spring Cloud Config提供从服务器到客户端的外部化配置服务。通常而言,在分布式系统中,各个服务的配置都是各自为政,相互之间没有联系。如果要更新某些服务配置,则需要将这些服务的的属性文件修改后重启服务。对于一个庞大的分布式系统,逐一修改系统中的每台服务器是很麻烦的。

利用Spring Cloud Config服务,你会创建一个配置管理中心,这个中心的职责就是根据其他应用服务器请求的参数传回服务属性配置参数(例如连接的数据库的url,用户名和密码等)。

分布式系统中的外部化配置提供服务器和客户端支持。使用Config Server,您可以集中管理所有环境中应用程序的外部属性。客户端和服务器上的概念都与Spring Environment和PropertySource抽象相同,因此它们非常适合Spring应用程序,但可以与任何语言运行的应用程序一起使用。当应用程序通过从开发环境到测试环境和生产环境的部署管道时,您可以管理这些环境之间的配置,并确保应用程序在迁移时需要运行所需的一切。服务器存储后端的默认实现使用git,因此它很容易支持配置环境的标记版本,以及可以通过各种工具来访问内容。很容易添加替代实现,并用Spring配置插入它们。[①]

Spring Cloud Config会有如下这些特征

l  实现HTTP或基于资源的API外部配置

l  加密和解密属性值

使用@EnableConfigServer实现简单的嵌入

 

2 Git服务端

Git服务分为两种,一种是使用网络上提供的git服务平台(例如https://git.oschina.net/),另一种是建立私有Git服务器。本文考虑的是未连接互联网的情况下,spring cloud配置管理服务的搭建,所以下面描述的是Git私服的安装配置。

由于Git私服采用java开发,所以安装Git私服之前应该安装jdk,并且配置好环境变量,这些过程不再赘述。

步骤 1 安装jdk,并配置环境变量

 

2.1 安装msysgit

Msysgitwindows版本的git环境

步骤 2 下载地址:http://code.google.com/p/msysgit/

步骤 3 安装,修改路径为C:\Git

图2‑1

注:

A.   这里安装Git-1.9.5-preview20141217.exe

B.    为了避免路径问题,安装目录最好没有空格和中文(如c:\git\

步骤 4 其它的一路默认下去即可

图2‑2

步骤 5 添加路径GIT_HOMEC:\Git

步骤 6 设置下系统路径增加 ;%GIT_HOME%\bin;%GIT_HOME%\libexec\git-core;

 

2.2 安装GitBlit (如果采用github或gitchina的代码平台提供git服务,该部分可略去)

2.2.1 简介

Gitblit是用java写的git服务端网站(类似github),以http/https方式提供git服务,可进行用户权限控制,跟踪、统计,直观、简单、强大、易用。

官方网站:http://gitblit.com/

下载完毕后解压到一个目录(如d:\gitblit\

2.2.2 提供http服务

步骤 7 安装JDK并配置系统环境(如与上文有重复可忽略)

步骤 8 解压gitblit-1.6.2,找到data\gitblit.properties文件修改端口参数,

server.httpPort =9090                 # http服务端口

端口可自定义

步骤 9 修改server.httpBindInterface= localhost       # http 绑定的地址(域名或ip)

步骤 10 运行gitblit.cmd即可,即可创建git网站

步骤 11 可打开浏览器查看:http://localhost:9090

图2‑3

 

 

 

步骤 12 登录,管理员账户密码均为admin,请改掉!

进入后可设置代码库(respository),用户(user),团队(team

默认的git仓库都建在data/git/文件夹内

步骤 13 创建用户

 

 

 

图2‑4

 

 

 

图2‑5

 

图2‑6

记住用户名密码

更详细的操作可查看docs/文件夹内的文档

创建仓库后,在C:\gitblit-1.6.2\data\git会有新生成的仓库

5)可用git命令进行操作,如:

Git clonehttp://admin@localhost:8080/git/test.git

2.2.3 提供https服务

Gitblit可提供https服务,可在公网上提供安全访问渠道,可有效的鉴权、防窃听和防篡改。详细步骤可参照http://gitblit.com/setup.html。以下为简要说明:

(1) 修改配置

此时不要停止gitblit.cmd

步骤 14修改/data/gitblit.properties文件,如

Server.httpPort= 9090                   #设置为0的话会关闭http服务

Server.httpsPort=8443                #设置https服务端口

Server.httpsBindInterface= xxx.com        # https服务绑定的主机地址(域名或IP

这里可写成localhost

Server.certificateAlias= xxx.com          # https ca证书绑定的主机地址(域名或IP

这里可写成localhost

Server.requireClientCertificates= true     #客户端要访问必须强制使用https协议

修改后的样子如下所示:

图2‑7

(2)创建https ssl证书

步骤 15 运行authority.cmd,进入Gitblit certificates authority授权设置窗口:

(3) 录入CA证书基本信息

步骤 16 点击按钮,弹出CA证书基本信息的录入窗口(该窗口在首次运行的时候也会弹出,填写一次就可以了)

填写后结果如下

Site name里面写该主机的ip地址或域名

(4) 创建主机CA证书(用于声明该主机的身份)

步骤 17 点击按钮,弹出创建主机CA证书的窗口,录入保存。

填写完完成后

步骤 18 输入密码gitblit

图2‑8

弹出成功窗

 

 

(5) 创建用户个人证书(用于声明该用户的身份)

步骤 19 选中某个用户,点击右侧的new certificate按钮

中文版是这样的

步骤 20 输入密码,这个密码与用户密码可以不同

图2‑9

成功结果如下

 

步骤 21 查看证书

这两步操作完成后,可在/data/ certs/目录下看到生成的证书

可直接将里面的zip压缩包发给团队成员安装。

3)用电子邮件将证书发送给团队成员(可选步骤)

设置邮件服务器信息:

若有需要,可修改邮件模版文件

在之前的CA证书窗口中选择用户,点击按钮将证书包发邮件给用户

 

4)重新启动 gitblit.cmd

步骤 22 重新启动 gitblit.cmd

客户端安装压缩包内的.p12证书后,即可以https方式(iechrome)访问网站:https://www.xxx.com:8443/

更详尽的客户端使用说明请参考后继章节。

 

 

3 Git客户端

3.1 安装msysgit

步骤 23 下载地址:http://code.google.com/p/msysgit/

 

步骤 24 安装,修改路径为C:\Git

图3‑1

注:

C.   这里安装Git-1.9.5-preview20141217.exe

D.   为了避免路径问题,安装目录最好没有空格和中文(如c:\git\

步骤 25 其它的一路默认下去即可

图3‑2

步骤 26 添加路径GIT_HOMEC:\Git

步骤 27 设置下系统路径增加 ;%GIT_HOME%\bin;%GIT_HOME%\libexec\git-core;

 

 

Msysgitwindows版本的git环境

下载地址:http://code.google.com/p/msysgit/

安装注意:

1为了避免路径问题,安装目录最好没有空格和中文(如c:\git\)。

2)可不用集成资源管理器菜单,因为后面的tortoisegit还会集成。

3)其它的一路默认下去即可

最好设置下系统路径:

path C:\ Git\bin;C:\Git\libexec\git-core;%PATH%

3.2 安装HTTPS SSL客户端证书 (如果采用github或gitchina的代码平台提供git服务,该部分可略去)

3.2.1 查看管理员发给你的证书包

里面有若干的证书文件(假设用户名为cjh,且保存在d:\gitclient\_keys\ssl\cjh\目录下):

cjh.p12 包含了私钥和公钥和CA证书(供浏览器用)

cjh.pem 包含了私钥和公钥和CA证书(供git客户端用)

-------------------------------------------------------------------------------------

cjh.cer 私钥

ca.cer 服务器端公钥证书

README.TXT 安装指导

3.2.2 安装.p12证书

.p12证书是供浏览器用的。双击安装.p12文件,一路默认,会提示你输入保护密码(问管理员)。安装完毕后可用IEchrome访问服务端网站,firefoxp12安装请看安装指导。结束后可在internet选型->内容->证书内找到两个证书:

步骤 28 解压管理员发来的zip包,这里是admin01.zip

步骤 29 双击安装.p12文件,一路默认,密码是上一章证书设置的密码

(1)受信任的根证书颁发机构: git.xxx.comCA证书,用于标志该网站的身份

(2)个人证书:客户端用该证书连接git.xxx.comhttps服务。

步骤 30 查看证书安装情况,在internet选型->内容->证书内找到两个证书

 

图3‑3

 

图3‑4

 

 

 

安装p12证书后,即可访问GIT服务器端网站,如https://git.xxx.com:8443/

 

3.2.3 配置pem证书

该证书是git客户端用的。

步骤 31 打开cmd命令行,敲入下面命令

openssl rsa -in"[存放pem的路径]\admin01\admin01.pem"-out "[存放key的路径,自定义的] \admin01\admin01.key"

示意:

openssl rsa -in"C:\admin01\admin01.pem" -out "C:\admin01\admin01.key"

步骤 32 输入这个命令后,会提示输入phrase,这里输入123456,密码是自定义的

步骤 33 输入下面命令

git config--global http.sslcert "C:\admin01\admin01.pem"

步骤 34 输入下面命令

git config--global http.sslkey "C:\admin01\admin01.key"

步骤 35 输入下面命令

git config--global http.sslVerify false

git config--global --list

设置.pem证书成功后就可以用git访问服务器https git服务了

4 Spring Cloud Config服务

SpringCloud Config Server本质上也是一个Spring Bootweb项目,只需要添加对应的parent,然后加入相关的依赖就可以启动这个工程了。[②]

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-config-server</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
</dependency>

 

 

Maven对于初学者来说有一定难度。另外,对于不能连接互联网的环境,采用maven配置公司的私服也同样困难。本文则采用maven下载相应的jar包,然后创建Java工程

步骤 36      Maven下载,安装并配置

Maven下载,安装并配置百度一下就可以了,只要保证最后命令行输入mvn –version能显示如下结果就行

图4‑1

步骤 37 新建文件夹D:\mvn,然后再再该目录下新建pom.xml,其中pom.xml的内容如下

<?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>org.demo</groupId>

       <artifactId>eureka</artifactId>

       <version>0.0.1-SNAPSHOT</version>

      

       <dependencies> 

              <dependency>

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

                     <artifactId>spring-cloud-config-server</artifactId>

              </dependency>

              <dependency>

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

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

              </dependency>

              <dependency>

                     <groupId>org.springframework.boot</groupId>

                     <artifactId>spring-boot-starter-test</artifactId>

                     <scope>test</scope>

              </dependency>

</dependencies>

 

</project>

 

步骤 38 在该目录下新建getJar.bat文件,该文件添加callmvn -f pom.xml dependency:copy-dependencies

接下来要创建Java工程,我们的springboot已经封装了Tomcat,所以不需要创建Java的web工程,而是采用Java Project代替

步骤 39 打开Eclipse,【File】—【New】—【JavaProject】,输入项目名,配置jdk等,完成之后点击【next】直至【finish】结束

步骤 40 新建资源文件夹(sourcefolder)命名config和文件夹(folder)命名为lib,如下图所示

图4‑2

步骤 41 将上面maven获取的jar包拷贝到lib文件夹下,jar包的位置是target/dependency/下

注:jar包拷贝到lib下要构建,右击build-build path

步骤 42 右击项目,新建package,命名cloud.config.server,并在该package下建立ConfigServerApplication.java,其中代码如下

/**

 * spring cloud config server

 * @author lzhoumail@126.com

 */

package cloud.config.server;

 

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.EnableAutoConfiguration;

import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

import org.springframework.cloud.config.server.EnableConfigServer;

import org.springframework.context.annotation.Configuration;

 

@Configuration

@EnableAutoConfiguration

@EnableDiscoveryClient

@EnableConfigServer

public class ConfigServerApplication {

 

    public static void main(String[] args) {

        SpringApplication.run(ConfigServerApplication.class, args);

    }

}

步骤 43 在config下新建application.properties文件,文件添加

server.port=8888

spring.cloud.config.server.git.uri=git私服服务版本库地址】

spring.cloud.config.server.git.searchPaths=cloud-config-repo

#eureka.client.serviceUrl.defaultZone=http\://localhost\:8761/eureka/

spring.application.name=cloud-config-server

#$ curl localhost:8888/env

步骤 44 创建git版本库,然后在git版本库地址下的cloud-config-repo中加入配置文件,配置文件在附件cloud-config-repo中

步骤 45 运行ConfigServerApplication,启动服务

 

5 服务验证

获取git上的资源信息遵循如下规则,可以打开浏览器一一试验:

1.     /{application}/{profile}[/{label}]

2.     /{application}-{profile}.yml

3.     /{label}/{application}-{profile}.yml

4.     /{application}-{profile}.properties

5.      /{label}/{application}-{profile}.properties

 

  • application:表示应用名称,在client中通过spring.config.name配置
  • profile:表示获取指定环境下配置,例如开发环境、测试环境、生产环境 默认值default,实际开发中可以是 dev、test、demo、production等
  • label: git标签,默认值master

步骤 46 打开浏览器,输入http://127.0.0.1/cloud-config-dev.yml

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

参考资料:



[①] http://cloud.spring.io/spring-cloud-config/#quick-start

[②] http://www.jianshu.com/p/69dea19abf04

0 0
原创粉丝点击