SpringCloud(八)Spring Cloud Config(3)——与Eureka配合使用

前面的文章中,我们学习了eureka的使用示例,学习了Spring Cloud Config的使用示例。在实际场景中,我们搭建一个

Spring Cloud微服务可能只用到Eureka,但是绝不会搭建一个Spring Cloud微服务可能只用到Spring Cloud Config。所以今天我们来看看Spring Cloud Config 如何和Eureka配合使用。

项目源码托管地址:https://github.com/cddofficial/SpringCloudRepo

目录

1 Spring Cloud Config Server配合eureka使用

1.1 复制得到microservice-config-server-eureka微服务

1.2 修改microservice-config-server-eureka服务

1.2.1 修改pom文件

1.2.2 修改配置文件

1.2.3 修改启动类

1.3 测试

2 Spring Cloud Config Client配合eureka使用

2.1 复制得到microservice-config-client-eureka微服务

2.2 修改microservice-config-client-eureka微服务

2.2.1 修改pom文件

2.2.2 修改配置文件

2.2.3 修改启动类

2.3 测试


1 Spring Cloud Config Server配合eureka使用

1.1 复制得到microservice-config-server-eureka微服务

复制microservice-config-server微服务重命名为microservice-config-server-eureka(至于如何复制这里不再赘述,请看eureka——实战中的 “2.4.1 创建可乐微服务” 的 “复制得到eureka-client-coke),导入IDE工具中,导入后项目结构如下图:

1.2 修改microservice-config-server-eureka服务

1.2.1 修改pom文件

给pom文件添加eureka client依赖,如下图:

整个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 https://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.0.7.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
	
	<groupId>com.cdd.cloud</groupId>
	<artifactId>microservice-config-server-eureka</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>eureka-server-service-discover</name>
	<description>Demo project for Spring Boot</description>
 
	<properties>
		<java.version>1.8</java.version>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	</properties>
 
	<dependencies>
		<!-- eureka client依赖 -->
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
		</dependency>
		
		<!-- config server依赖 -->
		<dependency>
    		<groupId>org.springframework.cloud</groupId>
    		<artifactId>spring-cloud-config-server</artifactId>
 		</dependency>
 		
 		<!-- test依赖 -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>
	
	<!-- 引入spring cloud的依赖,不能少,主要用来管理Spring Cloud生态各组件的版本 -->
    <dependencyManagement>
	    <dependencies>
	      <dependency>
	        <groupId>org.springframework.cloud</groupId>
	        <artifactId>spring-cloud-dependencies</artifactId>
	        <version>Finchley.SR2</version>
	        <type>pom</type>
	        <scope>import</scope>
	      </dependency>
	    </dependencies>
  	</dependencyManagement>
 
	<!-- 添加spring-boot的maven插件,不能少,打jar包时得用 -->
	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>
 
</project>

1.2.2 修改配置文件

修改application.yml配置文件,修改两个地方:一是,配置应用程序名称,二是,把该服务注册到服务注册中心去,截图如下:

整个application.yml文件内容如下:

server:
  port: 7070
  
spring:
  application:
    name: microservice-config-server-eureka
  cloud:
    config:
      server:
        git:
          uri: https://github.com/cddofficial/cloud-config-git-repo

eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka/
  instance:
    prefer-ip-address: true  #显示真实ip,不是必须的
    instance-id: ${spring.application.name}:${spring.application.instance_id:${server.port}}  #实例id,如, 实力id:端口号        

1.2.3 修改启动类

给启动类上打@EnableEurekaClient注解,整个启动类代码如下:

package com.cdd.demo;
 
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.config.server.EnableConfigServer;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
 
@SpringBootApplication
@EnableEurekaClient     // 启用 eureak client
@EnableConfigServer		// 启用Config server
public class MicroserviceConfigServerApplication {
 
	public static void main(String[] args) {
		SpringApplication.run(MicroserviceConfigServerApplication.class, args);
	}
}

1.3 测试

启动服务注册中心eureka-server-service-discover,microservice-config-server-eureka。启动成功后,我们来看下服务注册列表,在浏览器中访问:http://localhost:8761/,响应页面如下,可见已经注册到服务注册中心了。

2 Spring Cloud Config Client配合eureka使用

2.1 复制得到microservice-config-client-eureka微服务

复制microservice-config-client项目重命名为microservice-config-client-eureka微服务(至于如何复制这里不再赘述,请看eureka——实战中的 “2.4.1 创建可乐微服务” 的 “复制得到eureka-client-coke),导入到IDE工具中,项目结构如下图所示:

2.2 修改microservice-config-client-eureka微服务

2.2.1 修改pom文件

给pom文件添加eureka client依赖,如下图:

整个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 https://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.0.7.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
	
	<groupId>com.cdd.cloud</groupId>
	<artifactId>microservice-config-client-eureka</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>eureka-server-service-discover</name>
	<description>Demo project for Spring Boot</description>
 
	<properties>
		<java.version>1.8</java.version>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	</properties>
 
	<dependencies>
		<!-- eureka client依赖 -->
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
		</dependency>
		
		<!-- config client所在的依赖 -->
		<dependency>
    		<groupId>org.springframework.cloud</groupId>
    		<artifactId>spring-cloud-starter-config</artifactId>
 		</dependency>
 		
 		<!-- web依赖 -->
 		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		
 		<!-- test依赖 -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>
	
	<!-- 引入spring cloud的依赖,不能少,主要用来管理Spring Cloud生态各组件的版本 -->
    <dependencyManagement>
	    <dependencies>
	      <dependency>
	        <groupId>org.springframework.cloud</groupId>
	        <artifactId>spring-cloud-dependencies</artifactId>
	        <version>Finchley.SR2</version>
	        <type>pom</type>
	        <scope>import</scope>
	      </dependency>
	    </dependencies>
  	</dependencyManagement>
 
	<!-- 添加spring-boot的maven插件,不能少,打jar包时得用 -->
	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>
 
</project>

2.2.2 修改配置文件

修改boostarp.yml文件,修改两处:一是,配置config client获取的属性配置来源(即,从那个Config Server获取配置信息);二是,把该服务注册到服务注册中心去。截图如下:

整个bootstrap.yml文件内容如下:

server:
  port: 7071
  
spring:
  application:
    name: foobar  #与远程配置文件名称有关,可与下面的profile值,拼成foobar-dev 
  cloud:
    config:
      enabled: true #Flag to say that remote configuration is enabled. Default true;
      discovery:
        service-id: microservice-config-server-eureka

      
eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka/
  instance:
    prefer-ip-address: true  #显示真实ip,不是必须的
    instance-id: ${spring.application.name}:${spring.application.instance_id:${server.port}}  #实例id,如, 实力id:端口号

2.2.3 修改启动类

在启动类上添加@EnableEurekaClient注解,整个启动类代码如下:

package com.cdd.demo;
 
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
 
@SpringBootApplication
@EnableEurekaClient     // 启用 eureak client
public class MicroserviceConfigClientApplication {
 
	public static void main(String[] args) {
		SpringApplication.run(MicroserviceConfigClientApplication.class, args);
	}
}

2.3 测试

启动服务注册中心服务eureka-server-service-discover,microservice-config-server-eureka服务,

microservice-config-client-eureka服务。
启动成功后,先看下服务注册列表,在浏览器中访问http://localhost:8761/,响应页面如下图:

可见microservice-config-server-eureka微服务,microservice-config-client-eureka(在配置文件中应用名称配置成foobar了)微服务都注册到服务注册中心了。

接下来在浏览器中访问http://localhost:7071/profile,响应页面如下:

获取到了默认配置,说明我们实战成功了。到这里Spring Cloud Config 配合eureka使用就说完了。当然这块的东西肯定还有很多,大家积极探索欢迎来交流。

我们的搭建Spring Cloud微服务框架系列文章到这里就全部写完了,文章中所有展示例子都是我亲自敲代码实战过的,保证正确无误,大家可以放心参照。有任何需要斧正的地方欢迎大家提出了,我们一起探讨解决!

发布了45 篇原创文章 · 获赞 28 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/weixin_41968788/article/details/103634805