簡介 簡單來說,springcloud的就是由一組springboot應用(服務)組成,相互之間通過REST等方式進行通信。 兩個springboot應用,其中一個作為服務提供者,一個作為服務消費者,我認為這就構成了一個最簡單的springcloud應用,之後其他的工具都是為這兩個應用來服務的。 我 ...
簡介
簡單來說,springcloud的就是由一組springboot應用(服務)組成,相互之間通過REST等方式進行通信。
兩個springboot應用,其中一個作為服務提供者,一個作為服務消費者,我認為這就構成了一個最簡單的springcloud應用,之後其他的工具都是為這兩個應用來服務的。
我們來看下,官方給的架構圖,可以看出,核心就是microservices,其他都是為了保證microservices正常運轉的工具。
架構圖
既然是最簡單的入門教程,那麼其他概念什麼的就不說了,下麵咱們現在就直奔主題,先開個頭,之後的豐富可以在入門之後再細細研究。
Let's go code now !
為了省事,我們先構建一個父項目,一個pom應用,主要用來對依賴統一管理。下麵是我的一個父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>com.microservice.springcloud</groupId>
<artifactId>springcloudparent</artifactId>
<version>1.0</version>
<!-- 這裡打包形式為pom -->
<packaging>pom</packaging>
<!-- 一些屬性設置-->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<!-- 基本其他應用都需要用到web依賴,就添加父pom里-->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<!-- 重點來了,添加cloud及springboot的依賴管理-->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Greenwich.SR2</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.1.7.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<finalName>microservice</finalName>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<delimiters>
<delimit>$</delimit>
</delimiters>
</configuration>
</plugin>
</plugins>
</build>
</project>
其他的應用都是作為moudles存在的(Intellij IDEA工具,其他自己換算把)。