文档章节

springcloud配置中心服务化和高可用。包括动态获取配置更新

夜中孤影
 夜中孤影
发布于 05/09 15:31
字数 966
阅读 7
收藏 0

因为,我的配置中心的服务,是在之前的服务基础上面进行的,所有,现在需要的,就是修改对应的客户端的配置。

1.增加配置中心的pom配置

<?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>
   <parent>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-parent</artifactId>
      <version>2.1.4.RELEASE</version>
      <relativePath/> <!-- lookup parent from repository -->
   </parent>
   <groupId>com.example</groupId>
   <artifactId>democloudserver</artifactId>
   <version>0.0.1-SNAPSHOT</version>
   <name>democloudserver</name>
   <description>Demo project for Spring Boot</description>

   <properties>
      <java.version>1.8</java.version>
      <spring-cloud.version>Greenwich.SR1</spring-cloud.version>
   </properties>

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

      <!--Springclud 的配置中心-->
      <dependency>
         <groupId>org.springframework.cloud</groupId>
         <artifactId>spring-cloud-config-server</artifactId>
      </dependency>

      <dependency>
         <groupId>org.projectlombok</groupId>
         <artifactId>lombok</artifactId>
         <optional>true</optional>
      </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>

2.

###############注册eureka服务##############
spring.application.name=spring-cloud-producer
server.port=9011
eureka.client.serviceUrl.defaultZone=http://localhost:8000/eureka/


##############集成SpringClud的配置中心##########
spring.cloud.config.server.git.uri=https://gitee.com/strongFan/individualProject/
#spring.cloud.config.server.git.uri=https://gitee.com/strongFan/individualProject.git   这里获取的不是git的地址,请参考进行对比



#配置文件的文件夹名称
spring.cloud.config.server.git.searchPaths=config-repo
spring.cloud.config.server.git.username=xxxxxx
spring.cloud.config.server.git.password=xxxxxx
#开启git的pull功能
spring.cloud.config.server.git.force-pull=true

3.启动项的配置注解

package com.example.democloudserver;

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;

@EnableConfigServer  //开启SpringClud的配置中心
@SpringBootApplication
@EnableDiscoveryClient//启用服务注册与发现
public class DemocloudserverApplication {

   public static void main(String[] args) {
      SpringApplication.run(DemocloudserverApplication.class, args);
   }

}

启动该服务,在服务中心查看,已经显示该服务

 

客户端进行服务化,注册进入配置中心

1.pom增加配置中心客户端依赖

<?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>
   <parent>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-parent</artifactId>
      <version>2.1.4.RELEASE</version>
      <relativePath/> <!-- lookup parent from repository -->
   </parent>
   <groupId>com.example</groupId>
   <artifactId>service-feign</artifactId>
   <version>0.0.1-SNAPSHOT</version>
   <name>service-feign</name>
   <description>Demo project for Spring Boot</description>

   <properties>
      <java.version>1.8</java.version>
      <spring-cloud.version>Greenwich.SR1</spring-cloud.version>
   </properties>

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

      <dependency>
         <groupId>org.springframework.cloud</groupId>
         <artifactId>spring-cloud-starter-openfeign</artifactId>
      </dependency>

      <dependency>
         <groupId>org.projectlombok</groupId>
         <artifactId>lombok</artifactId>
         <optional>true</optional>
      </dependency>
      <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-test</artifactId>
         <scope>test</scope>
      </dependency>

      <!--熔断器视图监控依赖Hystrix Dashboard-->
      <dependency>
         <groupId>org.springframework.cloud</groupId>
         <artifactId>spring-cloud-starter-hystrix</artifactId>
      </dependency>
      <dependency>
         <groupId>org.springframework.cloud</groupId>
         <artifactId>spring-cloud-starter-hystrix-dashboard</artifactId>
      </dependency>
      <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-actuator</artifactId>
      </dependency>
      <!--配置中心客户端-->
      <dependency>
         <groupId>org.springframework.cloud</groupId>
         <artifactId>spring-cloud-starter-config</artifactId>
      </dependency>
      <!--开启更新机制,使客户端动态请求配置中心-->
      <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-actuator</artifactId>
      </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>

2.和上次一样,不同的是,bootstrap.properties 里面,新增几个配置

##########配置中心服务端获取############
spring.cloud.config.name=neo-config-dev
spring.cloud.config.profile=dev
#spring.cloud.config.uri=http://localhost:9011/
spring.cloud.config.label=master

############将其修改为调用配置服务###########
#开启Config服务发现支持
spring.cloud.config.discovery.enabled=true
#指定server端的name,也就是server端spring.application.name的值
spring.cloud.config.discovery.serviceId=spring-cloud-producer
#指向注册中心的地址
eureka.client.serviceUrl.defaultZone=http://localhost:8000/eureka/

#上面这些与spring-cloud相关的属性必须配置在bootstrap.properties中,config部分内容才能被正确加载。
#因为config的相关配置会先于application.properties,而bootstrap.properties的加载也是先于application.properties。

 

3. 项目启动项

package com.example.servicefeign;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;

@SpringBootApplication
@EnableDiscoveryClient//启用服务注册与发现
@EnableFeignClients//启用feign进行远程调用
public class ServiceFeignApplication {

   public static void main(String[] args) {
      SpringApplication.run(ServiceFeignApplication.class, args);
   }

}

启动,查看服务中心,已经成功了。

再次请求客户端的方法

本来,还准备配置配置中心的refresh  但是,配置了没生效,捣鼓了半天,就没管,先看后面的了。  后面看的时候,在关注下

本文转载自:http://www.ityouknow.com/spring-cloud.html

夜中孤影

夜中孤影

粉丝 5
博文 13
码字总数 433
作品 0
其它
私信 提问
SpringCloud学习系列之五-----配置中心(Config)和消息总线(Bus)完美使用版

前言 在上篇中介绍了SpringCloud Config的使用,本篇则介绍基于SpringCloud(基于SpringBoot2.x,.SpringCloud Finchley版)中的分布式配置中心(SpringCloud Config)的配置刷新和消息总线(Rabb...

虚无境
06/02
0
0
SpringCloud学习系列之四-----配置中心(Config)使用详解

前言 本篇主要介绍的是SpringCloud中的分布式配置中心(SpringCloud Config)的相关使用教程。 SpringCloud Config Config 介绍 Spring Cloud Config项目是一个解决分布式系统的配置管理方案。...

虚无境
06/01
0
0
SpringCloud--鸿鹄Cloud分布式微服务云系统

简介 鸿鹄云Cloud是基于SpringCloud来封装的,是一系列框架的有序集合。利用Spring Boot的开发模式简化了分布式系统基础设施的开发,如服务发现、注册、配置中心、消息总线、负载均衡、断路器...

itcloud
2018/07/25
0
0
Spring Cloud-honghu Cloud分布式微服务云系统

简介 鸿鹄云Cloud是基于SpringCloud来封装的,是一系列框架的有序集合。利用Spring Boot的开发模式简化了分布式系统基础设施的开发,如服务发现、注册、配置中心、消息总线、负载均衡、断路器...

itcloud
2018/04/25
0
0
Spring Cloud-Eureka Client 原理解析

SpringCloud-Spring Cloud Context SpringCloud-Eureka 服务注册 SpringCloud-Eureka 服务发现 Spring Cloud-Eureka Client 原理解析 SpringCloud-声明式服务调用 Feign SpringCloud-负载均衡......

glmapper
01/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

PHP程序员必看!进阶学习工作最全书籍指南作参考

【初阶】知识与入门 01. 《PHP与MySQL程序设计(第4版)》 http://item.jd.com/10701892.html 02. 《深入浅出MySQL 数据库开发 优化与管理维护 第2版》 http://item.jd.com/11381295.html 0...

ITCare
8分钟前
9
0
go监控方案(1) -- 概述

概述 为什么需要监控 在编写应用程序的时候,通常会记录日志以便事后分析,在很多情况下是产生了问题之后,再去查看日志,是一种事后的静态分析。 在很多时候,我们可能需要了解整个系统在当...

solate
8分钟前
2
0
华泰面试和优必选

优必选:1、根据题目写测试用例;2、写JAVA小程序(如数组排序,1-10的求和);3、LNIUx命令 华泰证券:1、根据题目写测试用例;2、用基本语法写一个PYthon程序;3、JMETER有哪些流程,...

颜丽
10分钟前
1
0
Spring Boot 配置多源的 RabbitMQ

简介 MQ 是开发中很平常的中间件,本文讲述的是怎么在一个Spring Boot项目中配置多源的RabbitMQ,这里不过多的讲解RabbitMQ的相关知识点。如果你也有遇到需要往多个RabbitMQ中发送消息的需求...

innerpeacez
10分钟前
0
0
破解版的「谷歌访问助手」

今天呢,我分享一个破解版的[谷歌访问插件];这款插件主有两个特点: 能够正常使用,绿色无广告,不会出现篡改主页等问题; 使用中比较稳定,性能较好; 下面介绍以插件的具体配置过程: 1,...

元歌
15分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部