需求:
实现在使用SpringCloud实现集群配置,实现启动消费服务端访问服务提供端所提供的资源
大致思路:
①在注册中心eurkaServer内,自己的yml配置信息内配置对方
②在服务提供者的yml内,注册多个注册中心(显示)
③在消费者的yml内,也注册多个注册中心(不显示)
正常情况之下,到目前我们只需要在不同的电脑上面按照上面的思路,提供多个服务即可,但现在我在一个电脑上面,进行尝试,因此使用端口号来区分不同的服务提供方,以下是实现的核心代码。
整体思路:
-
搭建整体结构
pom.xml:导入 SpringBoot和SpringCloud的版本依赖 -
搭建注册中心1
① pom.xml:导入SpringBoot的web和test支持、SpringCloud的服务端EurekaServer支持的版本
② application.yml配置:注册中心的端口号、注册的主机名(此处需要在host文件内配置127.0.0.1 eureka-7001.com,避免跳转不了)、配置其他注册中心(注意不要包含自己)
③EnrekaServerApplication:服务入口配置@EnableEurekaServer,表示此入口是注册中心的一个入口注册中心2的配置和注册中心1的配置思路完全一致,只需注意保证端口不要冲突
-
搭建服务提供端1
①pom.xml:SpringBoot的web和test依赖项、eureka客户端支持
②application.yml:服务提供端的端口号、服务提供的name(注意此处name只能使用中划线,如:USER-PROVIDER,不能使用下划线,因为需要在注册中心进行展示,底层代码要求)、服务注册到注册中心、显示客户端的真实ip
③UserServiceApplication:服务入口配置@EnableEurekaClient,表示此服务是注册中心eureka的客户端
④在controller内可以配置对应的资源,以供消费者进行访问服务提供端2的配置信息和服务提供端1的配置信息一致,只需注意端口号,不要冲突
-
搭建消费端1
①pom.xml:SpringBoot的web和test支持、eureka的客户端支持
②注入RestTemplate
③@EnableEurekaClient表示为客户端消费端2操作思路一致,注意端口不要冲突
(一)创建一个父的maven项目
因为idea中只显示一个项目,所以为了演示方便,创建一个父模块,其他的子模块在此基础上进行创建
以下是父模块的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>cn.lzj.springcloud</groupId>
<artifactId>springcloud_parent</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<modules>
<module>EurekaServer_7001</module>
<module>User_interface</module>
<module>User_provider_8001</module>
<module>User_consumer_9001</module>
<module>EurekaServer_7002</module>
<module>User_consumer_9002</module>
<module>User_provider_8002</module>
<module>User_consumer_feign_9003</module>
</modules>
<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>Finchley.SR1</spring-cloud.version>