一、场景
在使用微服务的时候不免存在服务之间的调用。
- 比如:用户模块的微服务需要获取订单模块微服务的数据,此时可以在用户模块直接通过http方式调用订单模块的接口获取数据(个人感觉so恶心),也可以采用在订单模块创建一个消费者,用户模块通过订单模块消费者调用订单模块接口数据。
本案例项目如下
base-use
--base-eureka
--use-api
--use-provide
--use-consumer
--use-consumer-pro
模块说明:
- base-eureka:注册中心
- use-api:模块接口api定义
- use-provide:服务提供者(理解为场景下:订单模块服务提供者)
- use-consumer:服务消费者(理解为场景下:订单模块消费者)
- use-consumer-pro:消费者使用者(理解为场景下:用户模块)
二、项目搭建
1、基础项目搭建
1.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>
<groupId>base.use</groupId>
<artifactId>base-use</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<modules>
<module>base-eureka</module>
<module>use-api</module>
<module>use-provide</module>
<module>use-consumer</module>
<module>use-consumer-pro</module>
</modules>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.3.RELEASE</version>
<relativePath/>
</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>Dalston.RELEASE</spring-cloud.version>
</properties>
<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>
</project>
2、base-eureka模块搭建</