在寫這一系列的文章以前,以爲頗有必要闡述一下什麼是Spring Cloud。不像Spring(Spring Framework),大致上可以理解爲它是一個管理bean的容器。也不想SpringBoot,能夠理解爲它是增強版的Spring,集成了SSM和其它一些框架,而且大量支持和推薦註解開發。web
可是對於Spring Cloud,它是一個微服務架構的框架,它不是單獨的某個項目,是多個項目的集成。也就是說若是想學習Spring Cloud,其實是在學習多個有關微服務的項目。spring
所謂微服務呢,就是把本來一站式解決的業務拆分紅具體的某個模塊,每一個模塊只作一個事情,而後還順便衍生出了統一管理這些服務的模塊,以及服務的保護措施等模塊。歸結起來就是5個核心,服務發現(註冊)、負載均衡、斷路器、服務網關和分佈式配置。apache
在幾個星期前,當我想建一個模塊的時候,可能會選擇採用Spring Initializer
來建立,可是最近以爲仍是直接創建一個新模塊比較舒服。每一個人的習慣都不同,本身怎麼舒服怎麼來。架構
下面就演示一下如何利用maven建立一個module
負載均衡
修改模塊名就能夠建立想要的模塊,這樣的好處是可以集成父模塊中導入的依賴,相比於Spring Initializer
會簡單多了,由於後者須要手動配置模塊的父子關係才能夠(或者懂怎麼搞的小夥伴也能夠留言一手)。框架
爲了更好的學習,首先創建了一個總的工程,一樣是用了maven來創建一個項目,創建完後結構以下所示maven
接下來要作的就是把整個src目錄給刪掉,由於後續也用不到它;其次就是修改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.cutey.none</groupId> <artifactId>springcloud-demo</artifactId> <packaging>pom</packaging> <version>1.0-SNAPSHOT</version> <properties> <maven.compiler.source>8</maven.compiler.source> <maven.compiler.target>8</maven.compiler.target> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>2.3.0.RELEASE</version> </dependency> </dependencies> <dependencyManagement> <dependencies> <!--spring boot 2.3.0--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>2.3.0.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> <!--spring cloud Hoxton.SR11--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Hoxton.SR11</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> </project>
各位小夥伴須要修改的第7和第8行的groupId
和artifactId
。這樣對於必須用的依賴,能夠在根模塊中,也就是該pom文件聲明便可。好比上面的spring-boot-starter-web
在全部的子模塊中都有整個依賴。spring-boot
甚至若是足夠懶,那你徹底能夠把全部的依賴都寫在父模塊中,這樣後續創建子模塊的過程當中就能夠無論pom文件了。微服務