精华内容
下载资源
问答
  • Spring Cloud Hoxton 版本微服务项目搭建 admin 监控客户端 前言 在上一篇文章博主已经讲解了admin 管理中心服务项目如何创建,不会的话可以前往学习,传送门:Spring Cloud Hoxton 版本微服务项目搭建 admin 监控...

    Spring Cloud Hoxton 版本微服务项目搭建 admin 监控客户端


    前言

    在上一篇文章博主已经讲解了admin 管理中心服务项目如何创建,不会的话可以前往学习,传送门:Spring Cloud Hoxton 版本微服务项目搭建 admin 监控管理中心

    本篇用来讲解–Spring Cloud Hoxton 版本微服务项目搭建 admin 监控客户端


    正题

    引入 Admin-Server 2.2.1 依赖:

    <!-- Admin 2.2.1 版本客户端引入依赖 -->
            <dependency>
                <groupId>de.codecentric</groupId>
                <artifactId>spring-boot-admin-starter-client</artifactId>
                <version>2.2.1</version>
            </dependency>
    

    pom.xml 配置如下:(这里用了注册中心做客户端,注册中心传送门:Spring Cloud Hoxton 版本微服务项目搭建eureka注册中心

    <?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <parent>
            <groupId>com.cyj</groupId>
            <artifactId>Family</artifactId>
            <version>1.0-SNAPSHOT</version>
        </parent>
        <groupId>com.cyj</groupId>
        <artifactId>eureka-center</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <packaging>jar</packaging>
        <name>eureka-center</name>
        <url>https://repo.spring.io/milestone</url>
        <description>CYJ:SpringCloud Eureka Master 注册中心</description>
    
        <dependencies>
    
            <!-- SpringCloud Eureka 注册中心依赖 -->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
            </dependency>
    
            <!-- SpringCloud Hystrix 微服务容错监控组件:断路器,依赖隔离,服务降级,服务监控 依赖 -->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
            </dependency>
    
            <!-- 权限控制依赖 -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-security</artifactId>
            </dependency>
    
            <!-- Admin 2.2.1 版本客户端引入依赖 -->
            <dependency>
                <groupId>de.codecentric</groupId>
                <artifactId>spring-boot-admin-starter-client</artifactId>
                <version>2.2.1</version>
            </dependency>
    
        </dependencies>
    
        <!-- SpringCloud 所有子项目 版本集中管理.MS:统一所有SpringCloud依赖项目的版本 依赖 -->
        <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-dependencies</artifactId>
                    <!-- SpringBoot 2.2.x 以上版本这样配置 -->
                    <version>${spring-cloud.version}</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
            </dependencies>
        </dependencyManagement>
    
        <build>
            <plugins>
                <!-- SpringBoot 项目打jar包的Maven插件 -->
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
            <!-- SpringBoot项目打包jar名称 -->
            <finalName>eureka-center</finalName>
        </build>
    
        <!-- SpringCloud 官方远程仓库.MS:部分本地仓库和镜像仓库没有SpringCloud子项目依赖。 -->
        <repositories>
            <repository>
                <id>spring-milestones</id>
                <name>Spring Milestones</name>
                <url>https://repo.spring.io/milestone</url>
                <snapshots>
                    <enabled>false</enabled>
                </snapshots>
            </repository>
        </repositories>
    
    </project>
    

    启动项如下:

    package com.cyj.admincenter;
    
    import de.codecentric.boot.admin.server.config.EnableAdminServer;
    import lombok.extern.slf4j.Slf4j;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
    import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
    
    /**
     * 启动类
     *
     * @author Chenyongjia
     * @Description: AdminCenterApplication
     * @ClassName: Application.java
     * @Date 2019年12月30日 晚上20:29:06
     * @Email 867647213@qq.com
     */
    @Slf4j
    @EnableAdminServer
    @EnableEurekaClient
    @EnableDiscoveryClient
    @SpringBootApplication
    public class AdminCenterApplication {
    
        public static void main(String[] args) {
            log.info("=======》启动 Admin 管理项目ing......");
            SpringApplication.run(AdminCenterApplication.class, args);
            log.info("=======》启动 Admin 管理项目成功......");
        }
    
    }
    

    yml 配置文件如下:

    新增配置:

    eureka:
      instance:
        # 每隔5s发送一次心跳
        lease-renewal-interval-in-seconds: 5
        # 告知服务端10秒还未收到心跳的话,就将该服务移除列表
        lease-expiration-duration-in-seconds: 10
        # 健康检查路径
        health-check-url-path: /actuator/health
    
    # Admin 管理配置
    management:
      endpoints:
        web:
          exposure:
            include: '*'
      endpoint:
        health:
          show-details: always
    

    完整配置:

    server:
      #项目端口号
      port: 8888
      tomcat:
        max-connections: 200
        max-threads: 300
        min-spare-threads: 0
        uri-encoding: UTF-8
    
    logging:
      pattern:
        console: "%d - %msg%n"
      #path: D:\Logback-Test\             #日志输出到指定文件夹下默认名为spring.log
      file: D:\Logback-Test\wordimg.log  #日志输出到指定文件
      #level: debug   #指定级别
      level:         #指定输出某个类的日志
        com.cnooc.wordimg.LoggerTest2: debug
    
    spring:
      application:
        name: eureka-server
      # 设置查看注册中心的登录用户以及他的角色
      security:
        user:
          name: admin
          password: 867647213
          roles: ROLEALL
      # 注册到Admin管理中心
      boot:
        admin:
          client:
            url: http://localhost:6010
    
    # Admin 管理配置
    management:
      endpoints:
        web:
          exposure:
            include: '*'
      endpoint:
        health:
          show-details: always
    
    eureka:
      #eureka实例定义
      instance:
        #eureka实例主机名称
        hostname: master
        #表示eureka client发送心跳给server端的频率。如果在leaseExpirationDurationInSeconds后,server端没有收到client的心跳,
        #则将摘除该instance。
        #除此之外,如果该instance实现了HealthCheckCallback,并决定让自己unavailable的话,则该instance也不会接收到流量。
        lease-renewal-interval-in-seconds: 5
      #客户端进行Eureka注册的配置
      client:
        #关闭eureka的客户端行为:注册服务
        registerWithEureka: false
        #关闭eureka的客户端行为:订阅服务
        fetchRegistry: false
        serviceUrl:
          #eureka注册中心地址
          defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
          #defaultZone: http://backup:8889/eureka/,http://slave:8890/eureka/
      server:
        # 关闭自我保护机制,防止失效的服务也被一直访问 (Spring Cloud默认该配置是 true)
        enable-self-preservation: false
        # 每隔10s扫描服务列表,该配置可以修改检查失效服务的时间,每隔10s检查失效服务,并移除列表 (Spring Cloud默认该配置是 60s)
        eviction-interval-timer-in-ms: 5000
    

    启动项目:

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述
    监控节点性能

    在这里插入图片描述


    最后

    • 更多参考精彩博文请看这里:《陈永佳的博客》

    • 喜欢博主的小伙伴可以加个关注、点个赞哦,持续更新嘿嘿!

    展开全文
  • Spring Cloud Hoxton 版本微服务项目搭建 config 配置中心客户端 前言 在上一篇文章博主已经讲解了项目如何创建,不会的话可以前往学习,传送门:Spring Cloud Hoxton 版本微服务项目搭建eureka注册中心 以及 ...

    Spring Cloud Hoxton 版本微服务项目搭建 config 配置中心客户端


    前言

    在上一篇文章博主已经讲解了项目如何创建,不会的话可以前往学习,传送门:Spring Cloud Hoxton 版本微服务项目搭建eureka注册中心 以及 Spring Cloud Hoxton 版本微服务项目搭建 admin 监控管理中心 以及 Spring Cloud Hoxton 版本微服务项目搭建 config 配置中心客户端。

    本篇用来讲解–Spring Cloud Hoxton 版本微服务项目搭建 config 配置中心!


    创建config-client模块

    我们创建一个config-client模块来从config-server获取配置。

    在pom.xml中添加相关依赖

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

    bootstrap.yml 中进行配置中进行配置

    配置客户端启动时,它将通过配置服务器(通过引导配置属性spring.cloud.config.uri)绑定,并使用远程属性源初始化 Spring Environment。需要使用配置中心的客户端应用程序需要 bootstrap.yml 配置。bootstrap.yml 会在 application.yml 之前被加载。

    eureka:
      instance:
        # 每隔5s发送一次心跳
        lease-renewal-interval-in-seconds: 5
        # 告知服务端10秒还未收到心跳的话,就将该服务移除列表
        lease-expiration-duration-in-seconds: 10
        # 健康检查路径
        # health-check-url-path: /actuator/health
      client:
        registry-fetch-interval-seconds: 5 # 默认为30秒
        serviceUrl:
          #eureka注册中心地址
          defaultZone: http://localhost:8888/eureka/
          #defaultZone: http://localhost:8888/eureka/,http://localhost:8889/eureka/,http://localhost:8890/eureka/
    
    # Admin 管理配置
    management:
      endpoints:
        web:
          exposure:
            # 开启了 'refresh' 端点
            include: '*'
      endpoint:
        health:
          show-details: always
    
    server:
      #项目端口号
      port: 4010
      tomcat:
        max-connections: 200
        max-threads: 300
        min-spare-threads: 0
        uri-encoding: UTF-8
    
    spring:
      application:
        #服务名称,随便写
        name: resource-center
      profiles:
        active: master
      cloud:
        # config客户端配置
        config:
          # 分支名称
          label: master
          # 启用配置后缀名称
          profile: dev
          # 配置文件名称
          name: config
          # 配置中心地址(子项目地址)
          uri: http://localhost:9010
          # 用于向配置中心进行安全认证,需要和配置中心的安全认证账户密码一致
          username: root
          password: 123456
    
    hystrix:
      metrics:
        enabled: true
        polling-interval-ms: 2000
    

    添加ConfigClientController类用于获取配置

    package com.cyj.resourcecenter.controller;
    
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    /**
     * @Description: 配置中心配置控制器
     * @BelongsProject: Family
     * @BelongsPackage: com.cyj.configcenter.controller
     * @Author: ChenYongJia
     * @CreateTime: 2020-01-02 11:58
     * @Email: chen87647213@163.com
     * @Version: 1.0
     */
    @RestController
    public class ConfigClientController {
    
        @Value("${config.info}")
        private String configInfo;
    
        @GetMapping("/configInfo")
        public String getConfigInfo() {
            return configInfo;
        }
    
    }
    

    从配置中心获取配置

    访问 http://localhost:4010/configInfo,可以获取到dev分支下dev环境的配置;

    config info for dev(master)
    

    在这里插入图片描述

    获取子目录下的配置

    我们不仅可以把每个项目的配置放在不同的Git仓库存储,也可以在一个Git仓库中存储多个项目的配置,此时就会用到在子目录中搜索配置信息的配置。

    首先我们需要在 config-center 配置中心中添加相关配置,用于搜索子目录中的配置,这里我们用到了 application 占位符,表示对于不同的应用,我们从对应应用名称的子目录中搜索配置,比如config子目录中的配置对应config应用;

    spring:
      cloud:
        config:
          server:
            git: 
              search-paths: '{application}'
    

    访问http://localhost:4010/configInfo进行测试,可以发现获取的是config子目录下的配置信息。

    config info for config dir dev(master)
    

    刷新配置

    当Git仓库中的配置信息更改后,我们可以通过SpringBoot Actuator的refresh端点来刷新客户端配置信息,以下更改都需要在config-client中进行。

    在pom.xml中添加Actuator的依赖:

    <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    

    在bootstrap.yml中开启refresh端点:

    management:
      endpoints:
        web:
          exposure:
            include: 'refresh'
    

    在ConfigClientController类添加@RefreshScope注解用于刷新配置:

    package com.cyj.resourcecenter.controller;
    
    import lombok.extern.slf4j.Slf4j;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.cloud.context.config.annotation.RefreshScope;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    import javax.annotation.Resource;
    
    /**
     * @Description: 配置中心配置控制器
     * @BelongsProject: Family
     * @BelongsPackage: com.cyj.configcenter.controller
     * @Author: ChenYongJia
     * @CreateTime: 2020-01-02 11:58
     * @Email: chen87647213@163.com
     * @Version: 1.0
     */
    @Slf4j
    @RefreshScope // 用于刷新配置
    @RestController
    public class ConfigClientController {
    
        @Resource
        @Value("${config.info}")
        private String configInfo;
    
        @GetMapping("/configInfo")
        public String getConfigInfo() {
            log.info("configInfo=================>"+configInfo);
            return configInfo;
        }
    
    }
    

    重新启动config-client后,调用refresh端点进行配置刷新:

    使用post请求 http://localhost:4010/actuator/refresh

    在这里插入图片描述

    访问http://localhost:9001/configInfo进行测试,可以发现配置信息已经刷新。

    update config info for config dir dev(master)
    

    其更多操作自己尝试一下!后面博主会给一些使用分享。(上一篇带有开启安全认证)


    最后

    • 更多参考精彩博文请看这里:《陈永佳的博客》

    • 喜欢博主的小伙伴可以加个关注、点个赞哦,持续更新嘿嘿!

    展开全文
  • Spring Cloud Hoxton 版本微服务项目搭建 admin 监控管理中心 前言 在上一篇文章博主已经讲解了项目如何创建,不会的话可以前往学习,传送门:Spring Cloud Hoxton 版本微服务项目搭建eureka注册中心 。 本篇用来...

    Spring Cloud Hoxton 版本微服务项目搭建 admin 监控管理中心


    前言

    在上一篇文章博主已经讲解了项目如何创建,不会的话可以前往学习,传送门:Spring Cloud Hoxton 版本微服务项目搭建eureka注册中心

    本篇用来讲解–Spring Cloud Hoxton 版本微服务项目搭建 admin 监控管理中心!


    正题

    引入 Admin-Server 2.2.1 依赖:

    <!--Admin-Server 2.2.1 版本支持中文展示 -->
            <dependency>
                <groupId>de.codecentric</groupId>
                <artifactId>spring-boot-admin-starter-server</artifactId>
                <version>2.2.1</version>
            </dependency>
    

    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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <parent>
            <groupId>com.cyj</groupId>
            <artifactId>Family</artifactId>
            <version>1.0-SNAPSHOT</version>
        </parent>
        <groupId>com.cyj</groupId>
        <artifactId>admin-center</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <packaging>jar</packaging>
        <name>admin-center</name>
        <description>CYJ:Spring Cloud Admin 服务中心</description>
    
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
            </dependency>
    
            <!-- SpringCloud Hystrix 微服务容错监控组件:断路器,依赖隔离,服务降级,服务监控 依赖 -->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
            </dependency>
    
            <!--Admin-Server 2.2.1 版本支持中文展示 -->
            <dependency>
                <groupId>de.codecentric</groupId>
                <artifactId>spring-boot-admin-starter-server</artifactId>
                <version>2.2.1</version>
            </dependency>
    
        </dependencies>
    
        <!-- SpringCloud 所有子项目 版本集中管理.MS:统一所有SpringCloud依赖项目的版本 依赖 -->
        <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-dependencies</artifactId>
                    <!-- SpringBoot 2.2.x 以上版本这样配置 -->
                    <version>${spring-cloud.version}</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
            </dependencies>
        </dependencyManagement>
    
        <build>
            <plugins>
                <!-- SpringBoot 项目打jar包的Maven插件 -->
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
            <!-- SpringBoot项目打包jar名称 -->
            <finalName>admin-center</finalName>
        </build>
    
        <!-- SpringCloud 官方远程仓库.MS:部分本地仓库和镜像仓库没有SpringCloud子项目依赖。 -->
        <repositories>
            <repository>
                <id>spring-milestones</id>
                <name>Spring Milestones</name>
                <url>https://repo.spring.io/milestone</url>
                <snapshots>
                    <enabled>false</enabled>
                </snapshots>
            </repository>
        </repositories>
    
    </project>
    

    启动项配置如下:

    package com.cyj.admincenter;
    
    import de.codecentric.boot.admin.server.config.EnableAdminServer;
    import lombok.extern.slf4j.Slf4j;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
    
    /**
     * 启动类
     *
     * @author Chenyongjia
     * @Description: AdminCenterApplication
     * @ClassName: Application.java
     * @Date 2019年12月30日 晚上20:29:06
     * @Email 867647213@qq.com
     */
    @Slf4j
    @EnableAdminServer
    @EnableEurekaClient
    @SpringBootApplication
    public class AdminCenterApplication {
    
        public static void main(String[] args) {
            log.info("=======》启动 Admin 管理项目ing......");
            SpringApplication.run(AdminCenterApplication.class, args);
            log.info("=======》启动 Admin 管理项目成功......");
        }
    
    }
    
    

    yml 配置文件如下:

    eureka:
      instance:
        # 每隔5s发送一次心跳
        lease-renewal-interval-in-seconds: 5
        # 告知服务端10秒还未收到心跳的话,就将该服务移除列表
        lease-expiration-duration-in-seconds: 10
      client:
        registry-fetch-interval-seconds: 5 # 默认为30秒
        serviceUrl:
          #eureka注册中心地址
          defaultZone: http://localhost:8888/eureka/
          #defaultZone: http://localhost:8888/eureka/,http://localhost:8889/eureka/,http://localhost:8890/eureka/
    
    server:
      #项目端口号
      port: 6010
      tomcat:
        max-connections: 200
        max-threads: 300
        min-spare-threads: 0
        uri-encoding: UTF-8
    
    
    spring:
      application:
        #服务名称,随便写
        name: admin-center
    
    hystrix:
      metrics:
        enabled: true
        polling-interval-ms: 2000
    
    
    logging:
      pattern:
        console: "%d - %msg%n"
      #path: D:\Logback-Test\             #日志输出到指定文件夹下默认名为spring.log
      file: D:\Logback-Test\wordimg.log  #日志输出到指定文件
      #level: debug   #指定级别
      level:         #指定输出某个类的日志
        com.cnooc.wordimg.LoggerTest2: debug
    
    

    启动项目:

    在这里插入图片描述

    界面展示:(箭头所指位置可以切换语言,为Admin 2.2.1 版本新特性,传送门:SpringBootAdmin2.2.0发布,支持最新SpringBoot-Cloud,新增中文展示!

    在这里插入图片描述


    最后

    • 更多参考精彩博文请看这里:《陈永佳的博客》

    • 喜欢博主的小伙伴可以加个关注、点个赞哦,持续更新嘿嘿!

    展开全文
  • Spring Cloud Hoxton 版本微服务项目搭建 config 配置中心 前言 在上一篇文章博主已经讲解了项目如何创建,不会的话可以前往学习,传送门:Spring Cloud Hoxton 版本微服务项目搭建eureka注册中心 以及 Spring ...

    Spring Cloud Hoxton 版本微服务项目搭建 config 配置中心


    前言

    在上一篇文章博主已经讲解了项目如何创建,不会的话可以前往学习,传送门:Spring Cloud Hoxton 版本微服务项目搭建eureka注册中心 以及 Spring Cloud Hoxton 版本微服务项目搭建 admin 监控管理中心

    **本篇用来讲解–Spring Cloud Hoxton 版本微服务项目搭建 config 配置中心!
    **


    摘要

    Spring Cloud Config 可以为微服务架构中的应用提供集中化的外部配置支持,它分为服务端和客户端两个部分,本文将对其用法进行详细介绍。


    Spring Cloud Config 简介

    Spring Cloud Config 分为服务端和客户端两个部分。服务端被称为分布式配置中心,它是个独立的应用,可以从配置仓库获取配置信息并提供给客户端使用。客户端可以通过配置中心来获取配置信息,在启动时加载配置。
    Spring Cloud Config 的配置中心默认采用Git来存储配置信息,所以天然就支持配置信息的版本管理,并且可以使用Git客户端来方便地管理和访问配置信息。


    在Git仓库中准备配置信息

    由于Spring Cloud Config 需要一个存储配置信息的Git仓库,这里我们先在Git仓库中添加好配置文件再演示其功能,Git仓库地址为:https://github.com/chenxiban/SpringCloud-Config.git


    配置仓库目录结构

    在这里插入图片描述


    master分支下的配置信息

    config-dev.yml:

    config:
      info: "config info for dev(master)"
    

    config-test.yml:

    config:
      info: "config info for test(master)"
    

    config-prod.yml:

    config:
      info: "config info for prod(master)"
    

    dev分支下的配置信息

    config-dev.yml:

    config:
      info: "config info for dev(dev)"
    

    config-test.yml:

    config:
      info: "config info for test(dev)"
    

    config-prod.yml:

    config:
      info: "config info for prod(dev)"
    

    创建config-server模块

    这里我们创建一个 config-center 模块来演示Spring Cloud Config 作为配置中心的功能(如何创建项目请自行查看注册中心篇有介绍)。

    在pom.xml中添加相关依赖

        <!-- 配置中心服务端依赖 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-config-server</artifactId>
        </dependency>
    
        <!-- 注册中心客户端依赖 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
    
        <!-- 权限控制依赖 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>
    
        <!-- Admin 2.2.1 版本客户端引入依赖 -->
        <dependency>
            <groupId>de.codecentric</groupId>
            <artifactId>spring-boot-admin-starter-client</artifactId>
        </dependency>
    
    </dependencies>
    
    
    **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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <parent>
            <groupId>com.cyj</groupId>
            <artifactId>Family</artifactId>
            <version>1.0-SNAPSHOT</version>
        </parent>
        <groupId>com.cyj</groupId>
        <artifactId>config-center</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <packaging>jar</packaging>
        <name>config-center</name>
        <description>CYJ:SpringCloud config center 配置中心</description>
    
        <dependencies>
    
            <!-- 配置中心服务端依赖 -->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-config-server</artifactId>
            </dependency>
    
            <!-- 注册中心客户端依赖 -->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
            </dependency>
    
            <!-- 权限控制依赖 -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-security</artifactId>
            </dependency>
    
            <!-- Admin 2.2.1 版本客户端引入依赖 -->
            <dependency>
                <groupId>de.codecentric</groupId>
                <artifactId>spring-boot-admin-starter-client</artifactId>
            </dependency>
    
        </dependencies>
    
        <!-- SpringCloud 所有子项目 版本集中管理.MS:统一所有SpringCloud依赖项目的版本 依赖 -->
        <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-dependencies</artifactId>
                    <!-- SpringBoot 2.2.x 以上版本这样配置 -->
                    <version>${spring-cloud.version}</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
            </dependencies>
        </dependencyManagement>
    
        <build>
            <plugins>
                <!-- SpringBoot 项目打jar包的Maven插件 -->
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
            <!-- SpringBoot项目打包jar名称 -->
            <finalName>config-center</finalName>
        </build>
    
        <!-- SpringCloud 官方远程仓库.MS:部分本地仓库和镜像仓库没有SpringCloud子项目依赖。 -->
        <repositories>
            <repository>
                <id>spring-milestones</id>
                <name>Spring Milestones</name>
                <url>https://repo.spring.io/milestone</url>
                <snapshots>
                    <enabled>false</enabled>
                </snapshots>
            </repository>
        </repositories>
    
    </project>
    

    启动项如下:

    package com.cyj.configcenter;
    
    import lombok.extern.slf4j.Slf4j;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
    import org.springframework.cloud.config.server.EnableConfigServer;
    import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
    
    /**
     * 启动类
     *
     * @author Chenyongjia
     * @Description: ConfigCenterApplication
     * @ClassName: Application.java
     * @Date 2020年01月02日 晚上7:29:06
     * @Email 867647213@qq.com
     */
    @Slf4j
    @EnableConfigServer
    @EnableEurekaClient
    @SpringBootApplication
    public class ConfigCenterApplication {
    
        public static void main(String[] args) {
            log.info("=======》启动 config-center 配置中心项目ing......");
            SpringApplication.run(ConfigCenterApplication.class, args);
            log.info("=======》启动 config-center 配置中心成功......");
        }
    
    }
    

    yml 配置文件如下:

    eureka:
      instance:
        # 每隔5s发送一次心跳
        lease-renewal-interval-in-seconds: 5
        # 告知服务端10秒还未收到心跳的话,就将该服务移除列表
        lease-expiration-duration-in-seconds: 10
        # 健康检查路径
        # health-check-url-path: /actuator/health
      client:
        registry-fetch-interval-seconds: 5 # 默认为30秒
        serviceUrl:
          #eureka注册中心地址
          defaultZone: http://localhost:8888/eureka/
          #defaultZone: http://localhost:8888/eureka/,http://localhost:8889/eureka/,http://localhost:8890/eureka/
    
    # Admin 管理配置
    management:
      endpoints:
        web:
          exposure:
            include: '*'
      endpoint:
        health:
          show-details: always
    
    server:
      #项目端口号
      port: 9010
      tomcat:
        max-connections: 200
        max-threads: 300
        min-spare-threads: 0
        uri-encoding: UTF-8
    
    spring:
      application:
        #服务名称,随便写
        name: config-center
      cloud:
        config:
          server:
            git:
              # 配置存储配置信息的Git仓库
              uri: https://github.com/chenxiban/SpringCloud-Config.git
              # github账户名
              username: xxx
              # github密码
              password: xxx
              # 开启启动时直接从git获取配置
              clone-on-start: true
              # 获取子目录下的配置
      		  # search-paths: '{application}'
      # 用于开启配置中心的安全认证,需要客户端认证
      security:
        user:
          # 配置用户名和密码
          name: root
          password: 123456
    

    启动项目:获取配置文件信息的访问格式

    # 获取配置信息
    /{label}/{application}-{profile}
    # 获取配置文件信息
    /{label}/{application}-{profile}.yml
    

    占位符相关解释

    • application:代表应用名称,默认为配置文件中的spring.application.name,如果配置了spring.cloud.config.name,则为该名称;
    • label:代表分支名称,对应配置文件中的spring.cloud.config.label;
    • profile:代表环境名称,对应配置文件中的spring.cloud.config.profile。

    获取配置信息演示

    访问 http://localhost:9010/master/config-dev 来获取master分支上dev环境的配置信息;

    在这里插入图片描述

    其他的配置信息自己尝试访问一下!下一篇讲解配置中心客户端搭建。


    最后

    • 更多参考精彩博文请看这里:《陈永佳的博客》

    • 喜欢博主的小伙伴可以加个关注、点个赞哦,持续更新嘿嘿!

    展开全文
  • 这是一个入门问题,做微服务项目,首先就是要搭建 Project,代码采用什么样的形式来组织,这是我们面临的第一个问题。在传统的项目中,我们经常需要搭建聚合工程,这样可以方便的对项目进行分模块管理,降低维护难度...
  • Spring Cloud Hoxton 版本微服务项目搭建 config 配置中心集群搭建 前言 之前的文章讲解了配置中心的搭建,今天来讲一讲config-sever集群搭建。 config-sever集群搭建 在微服务架构中,所有服务都从配置中心...
  • 微服务项目搭建过程

    2021-03-28 01:14:15
    项目搭建 一、创建父工程 通常我都是基于maven构建一个简单父POM工程,简单说白了这个父工程没啥模块功能,主要是依赖的版本控制和依赖管理。而后边一些列的功能模块,都基于这个父工程进行创建,而这一个个的功能...
  • Spring boot与Spring clound 微服务项目搭建流程 文章目录Spring boot与Spring clound 微服务项目搭建流程一、创建父级parent提供基础jar包二、创建common为项目提供公用jar包、实体类、工具类等三、创建server...
  • Spring Cloud Hoxton 版本微服务项目搭建eureka 前言 距离Spring Boot 2.2.0的发布已经有一个半月左右时间,由于与之匹配的Spring Cloud版本一直没有Release,所以在这期间碰到的问题都是由于Spring Boot和Spring ...
  • 微服务项目搭建 在之前已经搭建好了eureka模块,现在是要做一个模块注册在eureka上。 前面的步骤不在介绍,file->new->project,建立一个springboot项目,之后点击下一步,在选择控件的时候,除了一些SQL...
  • 微服务项目搭建

    2020-08-02 12:56:31
    搭建微服务、通用Mapper实现零sql、分页、公共异常处理

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,438
精华内容 1,775
关键字:

微服务项目搭建