微服务:配置中心 篇

微服务的痛点:

  • 微服务本身是个分布式系统, 是复杂的
  • 分布式事务问题
  • 测试
  • 部署

升级部署问题的解决方案:配置中心【框架SpringCloudConfig】

SpringCloud自带的配置中心SCC工作原理:

SpringCloud Config包含2个模块:服务端、客户端。

其中的服务端是中心地址,管理外部的属性,这些属性是来自其他的应用的。客户端只有从server获取这些配置文件字段的。

案例小实操:

然后建立2个子工程:

第2 个也是相同操作。

创建完成后应该是:

父工程的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>com.yinlei</groupId>
    <artifactId>sccdemo</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>
    <modules>
        <module>scc-server</module>
        <module>scc-client</module>
    </modules>

<!--    springboot版本-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.4.RELEASE</version>
    </parent>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Greenwich.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

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

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

<!--    配置阿里云地址,提升访问速度-->
    <repositories>
        <repository>
            <id>maven-ali</id>
            <url>http://maven.aliyun.com/nexus/content/groups/public//</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
                <updatePolicy>always</updatePolicy>
                <checksumPolicy>fail</checksumPolicy>
            </snapshots>
        </repository>
    </repositories>

</project>

编写server端代码:

server端应该保留整个微服务架构里面所有的子系统的配置项。

先给server端的pom.xml

这里是从本地文件读取配置的。

spring cloud config可以从很多数据源读取配置信息的:数据库、git、文件等

然后运行服务端:

说明配置中心服务端这个节点已经正常的运行了!

编写客户端:

客户端的作用:去配置中心拉取配置

上面的profile:dev是指的:

然后运行服务端和客户端:

注意有个坑:

客户端的

不要写成application.yml,涉及到加载流程,否则获取不到url

启动时要观察日志输出。

发布了288 篇原创文章 · 获赞 40 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/qq_39969226/article/details/104115785