Spring Cloud 之分布式配置基础应用
来源:互联网 发布:mac优酷没有弹幕 编辑:程序博客网 时间:2024/05/20 16:45
分布式配置基础应用
配置中心服务
spring-config-server
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>org.galsang.cloud</groupId> <artifactId>spring-config-server</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>spring-config-server</name> <description>配置中心服务</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.9.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> <spring-cloud.version>Edgware.RELEASE</spring-cloud.version> </properties> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-server</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring-cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build></project>
application-dev.yml
spring: profiles: dev cloud: inetutils: preferred-networks: - 192.168 config: server: git: uri: https://gitee.com/vimx86/SpringCloud-Learning/ # git 配置仓库地址 search-paths: galsang-z-docs/config-repo # 由于是公开git 仓库,故不使用账号密码# username:# password: # git管理配置 # /{application}/{profile}[/{label}] # /{application}-{profile}.yml # /{label}/{application}-{profile}.yml # /{application}-{profile}.properties # /{label}/{application}-{profile}.properties # http://www.galsang.org:9001/application-dev/dev/master # http://www.galsang.org:9001/application/dev/master # http://www.galsang.org:9001/application-dev.properties 默认使用master分支中的配置文件 # http://www.galsang.org:9001/dev/application-beta.properties 使用指定分支中的配置文件server: port: 9001 context-path: / display-name: www.galsang.org# 服务注册配置eureka:# 作为服务进行注册 client: register-with-eureka: true fetch-registry: true enabled: true service-url: defaultZone: http://www.galsang.org:9000/eureka/ instance: prefer-ip-address: true instance-id: ${spring.application.name}:${server.display-name}:${server.port} leaseRenewalIntervalInSeconds: 1 leaseExpirationDurationInSeconds: 2
SpringConfigServerApplication.java
package org.galsang.cloud;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;@SpringBootApplication@EnableConfigServer // 激活配置中心服务@EnableDiscoveryClient // 激活Eureka中的DiscoveryClient 服务发现public class SpringConfigServerApplication { public static void main(String[] args) { SpringApplication.run(SpringConfigServerApplication.class, args); }}
配置客户服务
spring-config-client
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>org.galsang.cloud</groupId> <artifactId>spring-config-client</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>spring-config-client</name> <description>配置客户服务</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.9.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> <spring-cloud.version>Edgware.RELEASE</spring-cloud.version> </properties> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-config</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring-cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
bootstrap.yml
spring: application: name: spring-config-client cloud: config: profile: dev # 环境 label: master # git 仓库分支 uri: http://www.galsang.org:9001/ # 配置中心地址server: port: 9002 context-path: / display-name: www.galsang.orgeureka: client: register-with-eureka: true fetch-registry: true enabled: true service-url: defaultZone: http://www.galsang.org:9000/eureka/ instance: prefer-ip-address: true instance-id: ${spring.application.name}:${server.display-name}:${server.port} leaseRenewalIntervalInSeconds: 1 leaseExpirationDurationInSeconds: 2
SpringConfigServerApplication.java
package org.galsang.cloud;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.cloud.client.discovery.EnableDiscoveryClient;@SpringBootApplication@EnableDiscoveryClientpublic class SpringConfigClientApplication { public static void main(String[] args) { SpringApplication.run(SpringConfigClientApplication.class, args); }}
TestConfigController.java
package org.galsang.cloud.controller;import org.springframework.beans.factory.annotation.Value;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;/** * Description:测试 使用 配置中心 配置文件的 接口 * <br /> Author: vimx86 */@RestControllerpublic class TestConfigController { @Value("${from}") private String from; @RequestMapping("/from") public String from() { return from; }}
效果预览
浏览器打开 http://www.galsang.org:9002/from
说明访问git仓库中的配置成功。
源码请移步: https://gitee.com/vimx86/SpringCloud-Learning
参考资料
- Spring Cloud基础教程
阅读全文
0 0
- Spring Cloud 之分布式配置基础应用
- spring cloud之分布式配置(七)
- Spring Cloud微服架构之分布式配置中心
- Spring Cloud微服架构之分布式配置中心(续)
- SpringCloud之分布式服务配置中心(Spring Cloud Config)
- Spring Cloud微服务(6)之spring cloud config分布式配置中心
- 08.Spring Cloud学习笔记之分布式配置中心Spring Cloud Config
- spring cloud 分布式项目 基础部分 2
- SpringCloud: 分布式配置中心(Spring Cloud Config)
- 分布式配置中心Spring Cloud Config初窥
- Spring Cloud 如何选择分布式配置中心
- Spring Cloud 之配置中心
- 微服务架构之spring cloud (一)分布式配置中心
- Spring Cloud 分布式解决方案
- Spring Cloud 之 基础学习资料
- spring cloud config整合gitlab搭建分布式的配置中心
- spring cloud config分布式配置中心的高可用
- spring cloud config整合gitlab搭建分布式的配置中心
- 【转载】tensorflow:control dependencies
- 【Ray Tracing in One Weekend】(ch5)法向量的可视化与多个球的出现
- ubuntu解决菜单栏和工具栏消失的方案
- 自学Qt之路——串口编程(使用自带Qt库)
- 【LeetCode】206. Reverse Linked List
- Spring Cloud 之分布式配置基础应用
- vue 时间戳转换为日期的方式
- HSSFWorkBooK用法
- matlab利用bar函数画不同颜色直方图
- 磁盘性能指标--IOPS、吞吐量
- JDK不同操作系统的FileSystem(unix-like)上篇
- IdentityHashMap
- c#利用委托跨线程调用UI控件完整使用方法
- mysql主从复制