• 第七篇:高可用配置中心(Spring Cloud Config)


    当服务实例很多时,都从配置中心读取文件,这时可以考虑将配置中心做成一个微服务,将其集群化,从而达到高可用

    本篇基上一篇的项目

    构建高可用配置中心

    首先创建一个注册中心eureka-server,pom依赖如下

    <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
            </dependency>

    编写配置文件application.yml

    server:
      port: 8889
    
    eureka:
      instance:
        hostname: localhost
      client:
        registerWithEureka: false
        fetchRegistry: false
        serviceUrl:
          defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

    在启动类开启eureka,使用@EnableEurekaServer注解

    改造config-server,引入spring-cloud-config依赖和eureka依赖。poom依赖如下

    <!--Web依赖-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
            <!--spring-cloud-config依赖-->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-config-server</artifactId>
            </dependency>
            <!---eureka-client-->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
            </dependency>

    编写配置文件application.properties

    spring.application.name=config-server
    server.port=8888
    
    # 配置git仓库地址
    spring.cloud.config.server.git.uri=https://github.com/forezp/SpringcloudConfig/
    # 配置仓库路径
    spring.cloud.config.server.git.searchPaths=respo
    # 配置仓库的分支
    spring.cloud.config.label=master
    # 如果Git仓库为公开仓库,可以不填写用户名和密码,如果是私有仓库需要填写
    # 访问git仓库的用户名
    #spring.cloud.config.server.git.username=
    # 访问git仓库的用户密码
    #spring.cloud.config.server.git.password=
    
    eureka.client.serviceUrl.defaultZone=http://localhost:8889/eureka/

    启动类上加上@EnableEurekaClient注解


    改造config-client,引入spring-cloud-config依赖和eureka依赖。pom依赖如下

     <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
            <!--spring-cloud-starter-->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-config</artifactId>
            </dependency>
            <!--eureka-client-->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
            </dependency>

    编写配置文件bootstrap.properties

    spring.application.name=config-client
    spring.cloud.config.label=master
    spring.cloud.config.profile=dev
    #spring.cloud.config.uri= http://localhost:8888/
    
    eureka.client.serviceUrl.defaultZone=http://localhost:8889/eureka/
    # 从配置中心读取文件
    spring.cloud.config.discovery.enabled=true
    # 置中心的servieId,即服务名
    # 读取配置文件不再写ip地址,而是服务名,这时如果配置服务部署多份,通过负载均衡,从而高可用
    spring.cloud.config.discovery.serviceId=config-server
    server.port=8881

    现在读取配置文件是服务名,不再写ip地址

    如果配置服务部署多份,通过负载均衡,从而高可用

    依次启动eureka-server,config-server,config-client,访问http://localhost:8881/test

    now is 100

    源码:https://gitee.com/niugit_admin/spring-cloud-finchley

  • 相关阅读:
    three.js引擎基础知识—摄像机、场景及渲染器
    javaScript执行环境、作用域链与闭包
    zclip笔记:解决zclip失效问题
    jQuery笔记:checkbox
    jenkins笔记:手动更新插件
    Maven笔记:
    MyBatis笔记:invalid bound statement (not found)
    spring jpa data笔记
    springMVC笔记:@ResponseBody
    PDF笔记:内嵌字体
  • 原文地址:https://www.cnblogs.com/niudaben/p/12437064.html
Copyright © 2020-2023  润新知