10、服务提供者provider如何使用配置中心config

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 今天看看如何实现服务提供者使用配置中心的配置文件。

前面的《配置中心》和《服务注册&服务提供者》这两篇分别讲解了配置中心和服务提供者,但是服务提供者使用的配置文件还是本地的,没有使用配置中心的配置文件。今天看看如何实现服务提供者使用配置中心的配置文件。

微信图片_20220501171005.png


1、 新建项目sc-eureka-client-provider-config,项目对应的pom.xml文件如下


<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>spring-cloud</groupId>
<artifactId>sc-eureka-client-provider-config</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>sc-eureka-client-provider-config</name>
<url>http://maven.apache.org</url>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.4.RELEASE</version>
</parent>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Finchley.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencies>
<!-- 说明是一个 eureka client -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<!-- spring boot实现Java Web服务 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!-- 把tomcat-jdbc连接池排除掉,这样spring-boot就会寻找是否有HikariCP可用 -->
<exclusions>
<exclusion>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-jdbc</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
</dependencies>
</project>


备注:可以看到pom.xml中引入了spring-cloud-starter-config,这个引入在《如何获取配置中心的配置》博文中说到。引入这个配置项说明只要在配置文件中做相应的配置就可以获取到配置中心的配置项。


2、 新建springboot启动类型ProviderConfigApplication.java


package sc.provider.config;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
@EnableEurekaClient
@SpringBootApplication
@MapperScan(basePackages="sc.provider.config.dao")
public class ProviderConfigApplication {
public static void main(String[] args) {
SpringApplication.run(ProviderConfigApplication.class, args);
}
}


3、 新建配置文件bootstrap.yml


server:
  port: 8500
eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:5001/eureka/
spring:
  application:
    name: sc-eureka-client-provider-config
  cloud:
    config:
      name: sc-eureka-client-provider-config
      label: master # 配置文件所在分支
      #uri: http://127.0.0.1:8100/  #配置服务中心
      profile: dev  # dev根据具体情况来修改
      #profile: prd  # dev根据具体情况来修改
      discovery:
        serviceId: sc-config-server #配置服务实例名称
        enabled: true  #开启配置服务发现


备注:配置文件用有如下配置项


微信图片_20220501171526.png


该配置项将会作为配置中心config server的配置文件bootstrap.yml中的search-paths的一个占位符{application}的值


微信图片_20220501171529.png


4、 其他项目文件如下图


微信图片_20220501171533.png


5、 修改配置中心sc-config-server的配置文件bootstrap.yml


#服务端口
server:
  port: 8100
#服务注册中心
eureka:
  client:
    registerWithEureka: true #是否将自己注册到Eureka服务中,默认为true
    fetchRegistry: true #是否从Eureka中获取注册信息,默认为true
    serviceUrl:
      defaultZone: http://localhost:5001/eureka/
  instance:
    prefer-ip-address: true #将自己的ip地址注册到Eureka服务中
    ipAddress: 127.0.0.1
spring:
  application:
    name: sc-config-server #服务名称
  cloud:
    config:
      label: master #配置文件所在的分支
      server:
        git:
          #uri: https://gitee.com/hjj520/spring-cloud-2.x.git #服务的git仓库地址
          uri: https://gitee.com/hjj520/spring-cloud-2.x #服务的git仓库地址
          #git仓库的用户名
          #username: huangjinjin
          #git仓库的密码
          #password: ********
          #search-paths: /config-repos/sc-consumer-config  #配置文件所在的目录
          #search-paths: /config-repos/sc-config-client
          #search-paths: /config-repos/sc-eureka-client-provider-config
          search-paths:  /config-repos/{application}

 

6、 git仓库新建如下内容,并提交到git仓库中


微信图片_20220501171536.png


applicaton-dev.ymlapplication-prd.yml的内容是一样的(dev代表开发环境,prd代表生产环境,实际项目中这两个文件一定是不一样的)

 

spring:
  datasource:
    driverClassName: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/sc?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8
    username: root
    password: root
    type: com.zaxxer.hikari.HikariDataSource
    hikari:
      minimum-idle: 5
      maximum-pool-size: 15
      auto-commit: true
      idle-timeout: 30000
      pool-name: DatebookHikariCP
      max-lifetime: 1800000
      connection-timeout: 30000
      connection-test-query: SELECT 1

 

7、 先分别启动注册中心sc-eureka-server和配置中心sc-config-server


 

8、 启动sc-eureka-client-provider-config项目在控制台可以看到如下输出


微信图片_20220501171539.png


说明项目已经通过配置中心获取git仓库的配置文件,如果看到如下输出说明启动成功


微信图片_20220501171542.png


9、 通过postman访问相关restful接口验证是否能正常访问


查询:


http://127.0.0.1:8500/user/getUser/4

微信图片_20220501171545.png

 

列表:


http://127.0.0.1:8500/user/listUser/


微信图片_20220501171548.png


添加:


http://127.0.0.1:8500/user/addUser

微信图片_20220501171551.png


更新:


http://127.0.0.1:8500/user/updateUser

微信图片_20220501171554.png


删除:


http://127.0.0.1:8500/user/deleteUser/7

微信图片_20220501171557.png

 


相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
5月前
|
算法 安全 Java
微服务(四)-config配置中心的配置加解密
微服务(四)-config配置中心的配置加解密
|
6月前
|
移动开发 JavaScript 前端开发
UniApp H5 跨域代理配置并使用(配置manifest.json、vue.config.js)
这篇文章介绍了在UniApp H5项目中处理跨域问题的两种方法:通过修改manifest.json文件配置h5设置,或在项目根目录创建vue.config.js文件进行代理配置,并提供了具体的配置代码示例。
UniApp H5 跨域代理配置并使用(配置manifest.json、vue.config.js)
|
4月前
|
JavaScript 前端开发 应用服务中间件
vue前端开发中,通过vue.config.js配置和nginx配置,实现多个入口文件的实现方法
vue前端开发中,通过vue.config.js配置和nginx配置,实现多个入口文件的实现方法
269 0
|
5月前
|
JavaScript
Vue3基础(19)___vite.config.js中配置路径别名
本文介绍了如何在Vue 3的Vite配置文件`vite.config.js`中设置路径别名,以及如何在页面中使用这些别名导入模块。
196 0
Vue3基础(19)___vite.config.js中配置路径别名
|
4月前
|
前端开发 JavaScript
vite vue3 config配置
【10月更文挑战第5天】
191 0
|
6月前
|
Web App开发 安全 JavaScript
【Azure 应用服务】App Service 通过配置web.config来添加请求返回的响应头(Response Header)
【Azure 应用服务】App Service 通过配置web.config来添加请求返回的响应头(Response Header)
105 0
|
6月前
|
缓存 NoSQL 网络协议
【Azure Redis 缓存】如何使得Azure Redis可以仅从内网访问? Config 及 Timeout参数配置
【Azure Redis 缓存】如何使得Azure Redis可以仅从内网访问? Config 及 Timeout参数配置
|
6月前
|
JSON 前端开发 JavaScript
vue.config.js配置详解
【8月更文挑战第16天】vue.config.js配置详解
260 1
vue.config.js配置详解
|
6月前
|
JavaScript Java Python
【Azure 应用服务】在Azure App Service for Windows 中部署Java/NodeJS/Python项目时,web.config的配置模板内容
【Azure 应用服务】在Azure App Service for Windows 中部署Java/NodeJS/Python项目时,web.config的配置模板内容
|
6月前
|
测试技术
Profile Config 多环境不同配置
Profile Config 多环境不同配置
44 0

热门文章

最新文章