SpringCloud - 第一天
簡介:
spring cloud 爲開發人員提供了快速構建分佈式系統的一些工具,包括配置管理、服務發現、斷路器、路由、微代理、事件總線、全局鎖、決策競選、分佈式會話等等。它運行環境簡單,可以在開發人員的電腦上跑。另外說明spring cloud是基於springboot的,所以需要開發中對springboot有一定的瞭解,如果不瞭解的話可以看這篇文章:2小時學會springboot。另外對於“微服務架構” 不瞭解的話,可以通過搜索引擎搜索“微服務架構”瞭解下
一、微服務架構概述
1. 單體架構
一個歸檔包(例如war格式)包含所有的應用程序,通常稱爲單體應用,以一個電影購票系統爲例:
2. 微服務
用中文的表述就是,微服務架構風格就是一種將一個單個應用程序開發爲一組小型服務的方法,每個服務運行在自己的進程中,服務間通信採用輕量級的通信機制。就像這樣:
3. 技術選型
- 開發框架: Spring Cloud
- 運行平臺: PC Server,阿里雲,雲計算平臺,Docker
- 常用架構:
二、Spring Cloud開發框架
- Spring Cloud是在SpringBoot的基礎上構建的,用於快速構建分佈式系統的通用模式的工具集,特點:
- 約定優於配置
- 隱藏了組件的複雜性
- 開箱即用,快速啓動
- 輕量級的組件、
- 組件豐富,功能齊全
- 靈活
- Spring Cloud組件
- 開發環境:
- JDK 1.8
- Spring Boot 1.5.9.RELEASE
- Spring Cloud
- 代碼IDE : IDEA
- Meavn 3.9
學習是有時間的成本的,這個成本就是時間和精力,降低學習成本的重要方法之一就是少踩坑!因此,建議與本教程使用相同的版本進行學習!
三、微服務註冊與發現
微服務構建的系統是分佈式系統,微服務之間通過網絡進行通信。我們使用服務消費者和服務調用者表示這種關係,關係如圖:
此處用到Eureka組件,本節不做概述,如果不知道,請看:網址
1. 編寫Eureka Server
- 首先創建一個maven工程:
右鍵工程->創建moder->選擇spring initialir
- 下一步選擇cloud discovery->eureka server,然後一直點擊下一步
- 編寫啓動類
@SpringBootApplication
@EnableEurekaServer
public class MicroserviceDiscoveryEurekaApplication {
public static void main(String[] args) {
SpringApplication.run(MicroserviceDiscoveryEurekaApplication.class, args);
}
}
- 配置文件application.yml中添加一下內容:
server:
port: 8761
eureka:
client:
registerWithEureka: false #表示將自己註冊Eureka Server
fetchRegistry: false #表示是否從EurekaServer獲取註冊信息
serviceUrl:
defaultZone: http://localhost:${server.port}/eureka/ #設置與Eureka Service交互的地址
- 啓動Eureka Server
訪問http://localhost:8761/,然後看到這個畫面
2. 將消費者註冊到Eureka Server
- 複製上一個工程,將ArtifactId改爲: microservice-provider-user
- 在配置文件application.yml中添加以下配置:
server:
port: 8000
spring:
application:
name: microservice-provider-user
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8761/eureka/ #設置與Eureka Service地址
- 編寫啓動類
@SpringBootApplication
@EnableEurekaClient
public class ProviderUserApplication {
public static void main(String[] args) {
SpringApplication.run(ProviderUserApplication.class, args);
}
}
3. 將服務調用者註冊到Eureka Server
- 複製上一個工程,將ArtifactId改爲: microservice-consumer-movie
- 在配置文件application.yml中添加以下配置:
server:
port: 8000
spring:
application:
name: microservice-consumer-movie
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8761/eureka/ #設置與Eureka Service地址
- 編寫啓動類
@SpringBootApplication
@EnableEurekaServer
public class ConsumerMovieApplication {
public static void main(String[] args) {
SpringApplication.run(ConsumerMovieApplication.class, args);
}
}
4. 啓動測試
- 啓動microservice-discovery-eureka
- 啓動microservice-provider-user
- 啓動microservice-consumer-movie
- 訪問http://localhost:8761
看到下面的界面,代表成功!