源碼地址: https://gitee.com/bingqilinpe...
經過前三篇文章,用大白話介紹了微服務和SpringCloud以及服務治理相關的概念,從這篇開始SpringCloud代碼的開發。java
SpringCloud全部的demo都會採用 多模塊開發 的方式,經過父項目約束整個項目全部Module的版本,若是你不知道什麼是 多模塊開發,請閱讀個人文章:SpringBoot 多模塊開發 https://mp.weixin.qq.com/s/CD...
父項目最大的做用就是約束版本,全部的步驟請嚴格按照教程進行,會有全面的截圖
1.在IDEA中建立一個maven項目(project)git
2.修改pom文件web
SpringCloud版本選擇:Finchley.SR2,SpringBoot版本選擇:2.0.3.RELEASE面試
pom文件以下:spring
<?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> <!--Finchley 版本的SpringCloud 依賴2.0.X的SpringBoot --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.3.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.lby</groupId> <artifactId>cloud-demo-20f</artifactId> <version>1.0-SNAPSHOT</version> <!-- 父級項目 使用pom--> <packaging>pom</packaging> <properties> <java.version>1.8</java.version> <!-- 定義SpringCloud的版本號--> <spring-cloud.version>Finchley.SR2</spring-cloud.version> </properties> <!-- 約束整個項目的SpringCloud版本--> <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> <!-- 插件配置--> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
1.基於Project建立一個新的Moduleapache
至於骨架,不選擇任何骨架,maven仍是Spring Initializr主要看我的習慣,我選擇maven。app
2.修改eureka-server-8801項目的pom文件maven
觀察pom文件能夠發現,eureka-server-8801項目已經自動繼承了父項目
![]()
註冊中心的完整pom配置:spring-boot
<?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"> <!-- 經過maven方式建立的項目,能夠看到已經自動的繼承了父項目,因此咱們 只須要配置依賴就能夠了 --> <parent> <artifactId>cloud-demo-20f</artifactId> <groupId>com.lby</groupId> <version>1.0-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>eureka-server-8801</artifactId> <dependencies> <!-- 導入註冊中心的依賴--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency> </dependencies> </project>
3.建立SpringBoot的啓動類,添加註解微服務
代碼以下:
package com.lby; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; /** * @author luxiaoyang * @create 2020-03-29-16:16 * @SpringBootApplication 聲明當前類爲SpringBoot的啓動類 * @EnableEurekaServer 聲明當前項目爲註冊中心 */ @SpringBootApplication @EnableEurekaServer public class EurekaServer8801 { public static void main(String[] args) { SpringApplication.run(EurekaServer8801.class,args); } }
4.建立配置文件,寫入註冊中心的配置
server: port: 8801 eureka: client: # 在默認設置下,該服務註冊中心也會將本身做爲客戶端來嘗試註冊它本身,因此咱們須要禁用它的客戶端註冊行爲 # 由於當前服務就是註冊中心 不須要向任何人註冊 # eureka.client. register-with-eureka:因爲該應用爲註冊中心,因此設置爲false,表明不向註冊中心註冊本身 registerWithEureka: false # eureka. client . fetch-registry:因爲註冊中心的職責就是維護服務實例,它並不須要去檢索服務,因此也設置爲false。 # 不主動發現別人 fetchRegistry: false # 聲明註冊中心的地址 serviceUrl: defaultZone: http://localhost:8801/eureka/
經過以上四步 就完成註冊中心的搭建
5.啓動項目,訪問http://localhost:8801能夠訪問註冊中心的管理頁面
No application available 目前沒有客戶端註冊到註冊中心
不用關閉註冊中心,接下來建立一個客戶端,讓客戶端註冊到註冊中心上
建立客戶端的步驟和註冊中心相似
- 建立項目結構
- 修改pom
- 修改啓動類
- 修改配置文件
1.建立客戶端項目 eureka-client-8803
2.修改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"> <parent> <artifactId>cloud-demo-20f</artifactId> <groupId>com.lby</groupId> <version>1.0-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>eureka-client-8803</artifactId> <dependencies> <!-- Eureka 客戶端的依賴--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> <!-- web的依賴--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- 測試的依賴--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> </project>
3.建立啓動類
package com.lby; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.EnableEurekaClient; /** * @EnableDiscoveryClient 聲明當前項目爲一個 Eureka客戶端 能夠被發現的客戶端 * @EnableEurekaClient 聲明當前項目爲一個 Eureka客戶端 * * 區別: * @EnableEurekaClient 只能向 Eureka 註冊中心註冊 * @EnableDiscoveryClient 除了向 Eureka 註冊中心註冊 能夠向其餘的註冊中心註冊 zookeeper consul */ @SpringBootApplication @EnableEurekaClient public class EurekaClient8803 { public static void main(String[] args) { SpringApplication.run(EurekaClient8803.class,args); } }
4.建立並修改配置文件
經過上面的四步,就完成一個Eureka 客戶端的搭建
5.啓動項目 觀察註冊中心的監控頁面 看一看有沒有服務註冊到註冊中心
確保註冊中心和客戶端都啓動了
打開註冊中心的網址http://localhost:8803 能夠看到
經過以上步驟就完成了最基本的註冊中心和客戶端的開發
源碼地址: https://gitee.com/bingqilinpe...
經過SpringCloud作微服務開發,無論是註冊中心,仍是客戶端,仍是網關等,SpringCloud幾乎全部的組件都是四板斧:
恭喜你完成了本章的學習,爲你鼓掌!若是本文對你有幫助,請幫忙點贊,評論,轉發,這對做者很重要,謝謝。
要掌握SpringCloud更多的用法,請持續關注本系列教程。
歡迎關注本人公衆號:鹿老師的Java筆記,將在長期更新Java技術圖文教程和視頻教程,Java學習經驗,Java面試經驗以及Java實戰開發經驗。