SpringCoud第二天

上传人:油条 文档编号:1458358 上传时间:2017-06-21 格式:DOC 页数:6 大小:126.50KB
返回 下载 相关 举报
SpringCoud第二天_第1页
第1页 / 共6页
SpringCoud第二天_第2页
第2页 / 共6页
SpringCoud第二天_第3页
第3页 / 共6页
SpringCoud第二天_第4页
第4页 / 共6页
SpringCoud第二天_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《SpringCoud第二天》由会员分享,可在线阅读,更多相关《SpringCoud第二天(6页珍藏版)》请在金锄头文库上搜索。

1、7 天学会 spring cloud 系列 之创建配置管理服务器及实现分布式配置管理应用。本文涉及到的项目: 开源项目:http:/ cloud-config-repo:配置文件存放的文件夹 cloud-simple-service:一个使用 mybatis 的数据库应用分布式配置管理应该是分布式系统和微服务应用的第一步。想象一下如果你有几十个服务或应用需要配置,而且每个服务还分为开发、测试、生产等不同维度的配置,那工作量是相当大的,而且还容易出错。如果能把各个应用的配置信息集中管理起来,使用一套机制或系统来管理,那么将极大的提高系统开发的生产效率,同时也会提高系统开发环境和生产环境运行的一致

2、性。在传统开发中我们往往需要自己开发“配置管理服务器”,你可以使用redis、ldap、zookeeper、db 等来存放统一配置信息,然后开发一个管理界面来进行管理。传统的做法没什么问题,和 spring cloud 所提供的配置管理方案相比,就是前者需要自己开发,而后者直接简单使用现成的组件即可。当然还有很重要的一点,spring 配置管理模块由于是 spring boot 核心来实现的,因此做了大量的工作,可以把一些启动参数进行外部配置,这在传统的方案中是很难办到的,因为涉及到要改写第三方组件的问题,难度很大。比如 web 应用的绑定端口,传统应用只能在 tomcat 配置文件里改,而

3、spring cloud 却可以放到远程,类似的还有数据库连接、安全框架配置等。要使用 spring cloud 分布式配置文件总体上分为 3 个大的步骤,首选你需要创建存放配置文件的仓库,然后创建一个配置文件服务器,该服务器将配置文件信息转化为 rest 接口数据,然后创建一个应用服务,该服务演示使用分布式配置文件信息。1)创建配置文件存放仓库Spring cloud 使用 git 或 svn 存放配置文件,默认情况下使用 git,因此你需要安装 git 私服或者直接使用互联网上的 github 或者 git.oschina,这里推荐使用 git.oschina。本文示例使用的是git.os

4、china,创建好 git 工程后,也就是文章开头所提到的工程,在此工程再创建一个文件夹cloud-config-repo 来存放配置文件。然后创建两个配置文件: cloud-config-dev.properties cloud-config-test.properties这两个文件分别对应开发环境和测试环境所需要的配置信息,配置信息如下:mysqldb.datasource.url=jdbc:mysql:/10.0.12.170:3306/test?useUnicode=true&characterEncoding=utf-8mysqldb.datasource.username=csst

5、mysqldb.datasource.password=csstlogging.level.org.springframework.web:DEBUG配置信息提供了数据库连接参数等,这是因为后面的应用服务中使用到了数据库。2)创建 spring cloud 配置服务器配置文件仓库创建好了后,就需要创建配置管理服务器,如前所述该服务器只是将配置文件转换为 rest 接口服务,不做其它用途。这个服务器的功能也是 spring cloud 提供的,所以我们只需要引入相关 jar 包,稍微设置一下即可。创建该服务应用,你需要首选创建一个空的 maven工程:然后在这个工程中增加一个类,命名为:Conf

6、igServerApplication,代码如下:SpringBootApplicationEnableConfigServerpublic class ConfigServerApplication public static void main(String args) SpringApplication.run(ConfigServerApplication.class, args);可以看到,我们只需要用EnableConfigServer 激活该应用为配置文件服务器即可。如此以来该应用启动后就会完成前面提到的功能,即:读取远程配置文件,转换为 rest 接口服务。当然,需要配置远程配

7、置文件读取路径,在 application.properties 中:server.port=8888spring.cloud.config.server.git.uri=https:/ server.port 是配置当前 web 应用绑定 8888 端口,git.uri 指定配置文件所在的 git 工程路径,searchPaths 表示将搜索该文件夹下的配置文件(我们的配置文件放在 spring-cloud-7simple 这个工程的 cloud-config-repo 文件夹下)。最后,还需要在 pom 文件中增加配置服务器的相关依赖:org.springframework.cloud s

8、pring-cloud-config-server如此以来,配置文件服务器就建立好了,可以直接启动了,服务端口是 8888,应用只需要绑定改服务器的 uri 和端口号就可以拿到配置信息了。3) 创建一个服务使用该远程配置现在可以创建一个服务使用该远程配置了,你可以在远程配置中定义一个简单的自定义信息,比如:my.message=helloword然后使用前面我们提到的 spring boot helloworld 应用来读取这个信息。当然,限于篇幅我们直接使用比较复杂的一个服务来演示这个配置管理器的使用,这个服务需要用到数据库访问,数据库访问层我们使用的是 mybaits,数据表只有一个,DD

9、L 如下:CREATE TABLE user (id varchar(50) NOT NULL DEFAULT ,username varchar(50) DEFAULT NULL,PRIMARY KEY (id) ENGINE=InnoDB DEFAULT CHARSET=utf8;创建好数据表后,回到我们的应用服务:该服务使用 DataSourceProperties 封装了 mybatis 加载配置信息。要拿到远程配置信息,需要设置配置管理服务器地址,该配置设置在:bootstrap.properties该配置文件信息如下:spring.cloud.config.uri=http:/12

10、7.0.0.1:$config.port:8888spring.cloud.config.name=cloud-configspring.cloud.config.profile=$config.profile:dev其中 config.uri 指定远程加载配置信息的地址,就是前面我们刚建立的配置管理服务器的地址,绑定端口 8888,其中 config.port:8888,表示如果在命令行提供了 config.port 参数,我们就用这个端口,否则就用 8888 端口。config.name 表示配置文件名称,查看我们前面创建配置文件,是这个名称:cloud-config-dev.proper

11、ties可以分成两部分: application- profile.properties所以我们配置 config.name 为 cloud-config,config.profile 为 dev,其中 dev 表示开发配置文件,配置文件仓库里还有一个测试环境的配置文件,切换该配置文件只需要将 dev 改为 test 即可,当然这个参数也可以由启动时命令行传入,如:java -jar cloud-simple-service-1.0.0.jar -config.profile =test此时应用就会加载测试环境下的配置信息。补充:上面例子中有很多地方缺失了,并且是基于 git 的,下面不全这些

12、缺失的部分,以及基于svn 的 方式首先是 server 端的 pom.xml 文件,上面例子中只是给出了核心的代码,却把基本的代码省略掉了,所以如果我们完全按照上面的描述,直接将org.springframework.cloudspring-cloud-config-server这段代码贴到 pom.xml 文件中就完事的话,那么在 run 这个 server 的时候就会报错了,因为还缺少了一些基本的 jar,那么完整的代码如下所示:org.springframework.cloudspring-cloud-starter-configorg.springframework.cloudspr

13、ing-cloud-starter-eurekaorg.springframework.cloudspring-cloud-config-serverorg.springframework.cloudspring-cloud-starter-eureka-serverorg.tmatesoft.svnkitsvnkit可以看到,除了上面例子中给出的代码外,还多了一些 start 的包,这些是 cloud 的基本包,必须有(ps:有了 start-config 还是否需要下面的 start-config-server 还有待验证,暂时先都加上)另外可以注意到,除了 cloud-config-se

14、rver 相关的代码外,还有一个 svn 的代码,这个就是接下来我们要讲的,基于 svn 方式基于的包了,所以在这里也一并贴上了。但是 SpringCloud 默认是基于 git 的,我们要基于 svn 的话,除了导入 svn 相关的依赖包以外,在 application.properties 配置文件中,还必须加上一段代码 spring.profiles.active=subversion,这段代码就告诉 SpringCloud,我们的 server 是基于 svn 的另外,svn 地址的申明也需要改变一下。如下所示:spring.cloud.config.server.svn.uri=ht

15、tp:/ 是用来代替 git.searchPaths 的,如果没有这个配置,会报错 (ConfigFileRepo是存放数据库配置文件的项目名,config-file-repo 是该项目下的一个文件夹,数据库配置文件就放在这个文件夹下面)(ps:我在这个 server 中用到了两个配置文件,一个是 application.properties,另一个是bootstrap.properties,至于能不能只用一个配置文件,有待验证)application.properties 配置信息如下:server.port=8888spring.cloud.config.server.svn.uri=http:/

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 其它文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号