用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字

fresh    -  云代码空间

——

java springboot b2b2c shop 多用户商城系统源码 (二): 配置管理

2019-01-28|362阅||

摘要:java springboot b2b2c shop 多用户商城系统源码 (二): 配置管理

使用Config Server,您可以在所有环境中管理应用程序的外部属性。客户端和服务器上的概念映射与Spring Environment和PropertySource抽象相同,因此它们与Spring应用程序非常契合,但可以与任何以任何语言运行的应用程序一起使用。随着应用程序通过从开发人员到测试和生产的部署流程,您可以管理这些环境之间的配置,并确定应用程序具有迁移时需要运行的一切。服务器存储后端的默认实现使用git,因此它轻松支持标签版本的配置环境,以及可以访问用于管理内容的各种工具。很容易添加替代实现,并使用Spring配置将其插入

以上是Spring Cloud官网对配置服务的描述, 简单阐述一下我的理解。比如我们要搭建一个网站,需要配置数据库连接,指定数据库服务器的IP地址,数据库名称,用户名和口令等信息。通常的方法, 我们可以在一个配置文件中定义这些信息,或者开发一个页面专门配置这些东西。只有一个web服务器的时候, 很方便。

但假如需要搭建同多台服务器时,当然可以每台服务器做同样配置,但维护和同步会很麻烦。我理解的配置服务至少有两种不同场景:

1)多个客户使用同一配置: 比如,多台服务器组成的集群,假如后端使用同一数据库,那么每台服务器都是用相同的配置。

2)不同客户使用不同的配置: 比如典型的场景是,开发,测试,生产使用相同的系统,但使用不同的数据库

如果有个统一的根本配置,是不是就很方便,一个可行的办法是,把这些配置文件放到一个共享存储(比如网络共享盘)中。这样只需要在共享存储修改一个或多个配置文件就可以了。但共享文件的方式受到具体布署环境的限制,很多时候很难达到多台Web服务器共享同一个存储硬盘。

共享盘的缺点是资源定位比较困难,Spring Cloud的解决方案是, 将这些配置文件放到版本管理服务器里面,Spring Cloud缺省配置使用GIT中。所有Web服务均从GIT中获取这些配置文件。由于GIT服务器与具体Web服务器之间不需要共享存储, 只要网络可达就行,从而可以实现Web服务于配置信息的存放位置的解耦。

Spring Cloud统一控制应用和GIT服务的交互,应用只需要按照Spring Cloud的规范配置GIT的URL即可。 使用GIT后,场景2和场景1的区别仅仅是,场景2中不同的client使用不同版本的配置文件,但应用但访问的文件看起来是会是同一个。Spring Cloud的配置服务结构入下图

其中关键字hello的值“Hello World”,就是我们要输出的内容。

一. 创建config Server

 1.  创建Config Server, maven工程里面配置spring-cloud-config-server

<dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-config-server</artifactId>
</dependency>

完整配置如下:

 pom.xml

2. 创建Config Server,它也是一个Spring Boot应用,@EnableConfigServer注解说明了一个Config Server。同样我们使用@EnableEurekaClient将它注册到服务中心。

复制代码
 1 package springcloud.helloworld.config.server; 2 
 3 import org.springframework.boot.SpringApplication; 4 import org.springframework.boot.autoconfigure.SpringBootApplication; 5 import org.springframework.cloud.config.server.EnableConfigServer; 6 import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; 7 
 8 @EnableEurekaServer 9 @EnableConfigServer 10 @SpringBootApplication 11 public class ConfigServerApplication { 12 public static void main(String[] args) { 13         SpringApplication.run(ConfigServerApplication.class, args); 14 } 15 }
复制代码

3. Config server的配置文件appication.yml , 注意配置文件的url是GIT服务器的仓库地址, searchPaths配置文件所在的文件夹在仓库中的路径, 在server端不需要指定具体配置文件名, 因为具体的配置文件是什么有应用(也就是client)决定。

复制代码
eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka/ server:
  port: 8888 spring:
  cloud:
    config:
      server:
        git:
          uri: https://git.oschina.net/chrywhy/test searchPaths: spring-cloud/helloworldConfig
  application:
    name: config-server
复制代码

4. 启动config server后,访问http://localhost:8888/abc/xyz, 可见如下响应。这个是输出是并没有包括具体配置文件的内容, 这个响应说明,config server可以正常访问我们配置在application.yml中的GIT服务

 

这个URL是啥意思, 需要解释一下。我们从输出就可以看到 abc 就是application的名字,xyz是profile的名字, 注意这里的abc, xyz均是随便输入的名字, 并不需要真实存在,config server这个REST接口返回的只是应用名为abc, profile名为xyz时,GIT配置环境的结构。

config server提供的REST接口,Spring Cloud官方文档提供了几个可选URL可以是如下几个:

/{application}/{profile}[/{label}]
/{application}-{profile}.yml
/{label}/{application}-{profile}.yml
/{application}-{profile}.properties
/{label}/{application}-{profile}.properties
比如 第三个格式,如果我们在GIT版本库中有一个配置文件 spring-cloud/helloworldConfig/config-client-dev.properties. 那么访问http://localhost:8888/config-client-dev.properties就可以显示配置文件内容。这个例子中, application的名字是"config-client"(也是下面我们即将创建的client), profile名字是dev, 文件后缀是.propertie

本例由于配置了eureka服务中心,所以这个config server作为一个eureka client注册到了 eureka server中, 可以从http://localhost:8761看到我们启动的config server, 如果不需要注册到服务中心, 也可把这个配置去掉

  • 源码结构

  • Spring Cloud大型企业分布式微服务云构建的B2B2C电子商务平台源码请加企鹅求求:yuncode.net

顶 0踩 0收藏
文章评论
    发表评论

    个人资料

    • 昵称: fresh
    • 等级: 高级设计师
    • 积分: 5300
    • 代码: 0 个
    • 文章: 221 篇
    • 随想: 0 条
    • 访问: 3 次
    • 关注

    人气代码

      标签

      java(76)api(3)教程(25)Spring(41)cache(1)+(3)springmvc(2)mybatis(4)(十)(1)(十一)(1)Cloud(31)Boot(10)源码(7)简介(1)-(29)项目构建过程(3)关于Spring(2)Cloud的核心特性(1)整合spring(8)cloud云服务架构(9)cloud架构(1)HongHu(1)Cloud云架构(10)登出流程(3)(1)Spring+(1)Commons(1)普通抽象(1)项目过程构建(3)commonserv(1)common-ser(1)commonserv(1)SSO单点登录应用认(1)Cloud分布式微服(1)(1)Eureka(1)云架构代码结构构建(3)分享Spring(3)Cloud大型互联网(1)common-ser(1)SpringClou(1)Cloud--Hon(1)Cloud分布式微服(1)springclou(1)Eureka服务器搭(1)SSO单点登录之OA(1)SSO单点登录之OA(1)Cloud-hong(1)Cloud分布式微服(1)Cloud微服务分布(1)Cloud分布式微服(1)Config客户端使(1)Cloud微服务架构(1)Config环境库(2)Cloud分布式微服(1)Cloud--Hon(1)Cloud分布式微服(1)SSO单点登录之OA(1)SSO单点登录之OA(1)SSO单点登录之OA(1)SSO单点登录之OA(1)根据token获取用(1)commonserv(1)Cloud微服务分布(1)mybatis分布式(1)mybatis分布式(1)mybatis分布式(1)4.2.2以上版本和(1)mybatis分布式(1)mybatis分布式(1)Cloud引导应用程(1)Cloud--Hon(1)Cloud分布式微服(1)Cloud大型互联网(1)Cloud-hong(1)Cloud分布式微服(1)SpringBoot(81)common-ser(1)Cloud分布式微服(1)Cloud企业微服务(1)Cloud自定义引导(1)企业级(26)(一)(1)(二)(1)(三)(1)cloud项目(2)(五)(1)(九)整合sprin(1)commonserv(1)SSO单点登录之OA(1)SSO单点登录之OA(1)(十二)(1)SSO单点登录之OA(1)B2B2C(64)关于SpringCl(1)Cloud构建分布式(1)SpringClou(1)mybatis电子商(1)(九)Java(2)o2o多用户商城(21)(十)Java(1)(十三)java(3)b2b2c多用户商城(6)(十四)Java(2)(十五)Java(1)(十六)Java(1)b2b2c多用户商城(1)SSO单点登录之OA(1)springclou(1)springclou(1)springclou(1)springclou(1)springclou(1)springclou(1)(十七)Java(1)springclou(1)springclou(1)springclou(1)springclou(1)B2B2C多租户电子(1)SpringClou(1)SpringClou(1)项目构建过程(七)(1)(八)Java(1)Config)(8)ssm(17)企业级java(14)shop(22)springclou(1)多用户商城系统源码((1)springclou(1)多用户商城系统源码(9)(十二)java(2)多用户商城系统源码-(3)Sleuth)(2)Springclou(1)分布式、微服务、云架(1)多用户商城系统源码((1)springclou(1)B2B2C多租户电子(1)springclou(1)(三):服务提供与调(1)SpringClou(1)springclou(1)企业云架构commo(1)springclou(1)common-ser(1)springclou(1)commonserv(1)springclou(1)springclou(1)springclou(1)springclou(1)springclou(1)(十一)JAVA(1)b2b2c多用户商城(1)b2b2c多用户商城(1)SSO单点登录之OA(1)springclou(1)springclou(1)配置自动刷新(1)beatlsql(1)多用户商城系统(2)(八)springb(1)多用户商城系统源码((1)b2bc商城系统开源(1)(十)用spring(2)Restdocs创建(1)springboot(1)springboot(1)微服务java_b2(1)(十三)spring(1)springboot(1)(十四)在sprin(1)springclou(1)(二)Spring(3)Boot配置文件详解(5)整合JPA(3)企业分布式微服务云S(1)(五)路由网关(zu(1)b2bc商城系统开源(1)springboot(1)springclou(1)b2b2c多用户商城(1)springclou(1)(九)服务链路追踪((1)b2bc商城系统开源(1)b2b2c多用户商城(1)b2bc商城系统开源(1)Dashboard)(1)springclou(1)b2b2c多用户商城(1)b2bc商城系统开源(1)多用户商城系统源码((1)微服务java_b2(1)b2b2c多用户商城(1)SSO单点登录之OA(1)Springboot(1)Springclou(1)多级分销Spring(1)多级分销Spring(1)(二)java(1)springboot(1)springclou(1)(五)JAVA(1)b2b2c多用户商城(1)Dashboard和(1)(六)企业分布式微服(1)分布式配置中心(Sp(1)(六)(1)Java多用户商城系(1)Java版本多用户B(1)B2B2C源码电子商(1)-(五)路由网关(z(1)Springclou(1)Springboot(1)mybatis电子商(1)b2b2c多用户商城(1)b2bc商城系统开源(1)多用户商城系统源码((1)多用户商城系统(三)(1)SpringBoot(1)高可用的分布式配置中(1)微服务java_b2(1)springclou(1)b2b2c多用户商城(1)springboot(1)b2b2c多用户商城(1)springclou(1)springboot(1)b2b2c多用户商城(1)b2bc商城系统开源(1)(九)服务链路追踪((1)SpringBoot(1)多用户商城系统(八)(1)Springboot(1)springclou(1)springclou(1)多级分销Spring(1)多级分销Spring(1)(十一)docker(1)b2bc商城系统开源(1)springclou(1)b2b2c多用户商城(1)多级分销Spring(1)整合企业架构的技术点(1)springclou(1)springclou(1)b2b2c多用户商城(1)springclou(1)b2b2c多用户商城(1)springclou(1)springclou(1)springclou(1)springclou(1)springclou(1)b2b2c多用户商城(1)springclou(1)b2bc商城系统开源(1)springclou(1)b2b2c多用户商城(1)b2bc商城系统开源(1)b2b2c多用户商城(1)springclou(1)b2bc商城系统开源(1)(四)SpringB(1)多用户商城系统源码((1)微服务java_b2(1)(十)高可用的服务注(1)企业分布式微服务云S(1)(十一)docker(1)多用户商城系统-(七(1)springclou(1)Springclou(1)Springclou(1)b2bc商城系统开源(1)多用户商城系统源码-(1)b2b2c多用户商城(1)b2bc商城系统开源(1)多用户商城系统源码-(1)多用户商城系统-(九(1)多用户商城系统源码-(1)springboot(1)b2b2c多用户商城(1)b2b2c多用户商城(1)多用户商城系统源码((1)(九)springb(1)b2bc商城系统开源(1)教程(十五)Spri(1)(十六)用restT(1)企业SpringBo(1)教程(五)sprin(1)企业(1)教程(六)sprin(1)企业分布式微服务云S(1)(一)服务的注册与发(1)(十六)用restT(1)Cloud微服务架构(1)(六)整合sprin(1)企业云架构commo(1)(七)整合sprin(1)common-ser(1)(八)整合sprin(1)commonserv(1)(十四)在sprin(1)(十五)Spring(1)(十六)用restT(1)(十七)上传文件(1)(十八)定时任务(S(1)Tasks)(1)(十九)(1)验证表单信息(1)(二十)处理表单提交(1)SpringClou(1)服务的注册与发现(E(1)SpringClou(1)服务消费者(rest(1)SpringClou(1)服务消费者(Feig(1)SpringClou(1)(四)(1)断路器(Hystri(1)SpringClou(1)(五)路由网关(zu(1)SpringClou(1)(七)(3)高可用的分布式配置中(1)SpringClou(1)高可用的分布式配置中(1)(一)微服务分布式云(1)(二)微服务分布式云(1)cloud整合企业架(1)(三)微服务分布式云(1)cloud集成项目简(1)(四)微服务分布式云(1)企业分布式微服务云架(1)(五)微服务分布式云(1)(五)微服务分布式云(1)SpringClou(1)分布式配置中心(Sp(1)SpringClou(1)高可用的分布式配置中(1)(一)构建第一个Sp(1)(三)SpringB(1)(四)SpringB(1)(九)springb(1)Restdocs创建(1)

      最新提问

        站长推荐