搭建SpringCloud微服務框架:一、結構和各個組件
- 2020 年 5 月 29 日
- 筆記
- SpringCloud, 微服務, 搭建微服務框架
搭建微服務框架(結構和各個組件)
簡介
SQuid是基於Spring,SpringBoot,使用了SpringCloud下的組件進行構建,目的是想搭建一套可以快速開發部署,並且很好上手的一套微服務框架。
本文源地址:搭建微服務框架(結構和各個組件)
Github地址:SQuid
組件
- Spring-Cloud-Feign
- Spring-Security-OAuth
- Spring-Cloud-Gateway
- Spring-Cloud-Alibaba
中間件
- Redis
- Nacos
- Sentinel
資料庫持久層
- SpringDataJPA
- Mybatis-Plus
資料庫
- Mysql5.7 +
- Oracle
環境
- JDK1.8
- Maven3.2.5
- Idea
如果你的電腦上已經有安裝好上面的程式,那麼你可以打開git,輸入命令 [email protected]:yanzhenyidai/squid.git
將本項目克隆到本地運行。
不過也可以先看看後面各個組件的集成的說明,送上鏈接:
- SC服務註冊與發現
- 讀取Nacos的配置資訊
- 服務介面鑒權
- 服務網關處理
- 資料庫持久層-SpringDataJpa
- TODO:資料庫持久層-Mybatis-Plus
- TODO:服務熔斷和跟蹤-Sentinel
項目依賴
本次項目是在
spring-boot: 2.0.9.RELEASE
下搭建,所需依賴文件如下:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.9.RELEASE</version>
</parent>
<properties>
<spring-cloud-alibaba.version>2.1.0.RELEASE</spring-cloud-alibaba.version>
<spring-cloud-openfeign.version>2.2.0.RELEASE</spring-cloud-openfeign.version>
<spring-cloud.version>Finchley.SR2</spring-cloud.version>
<druid-starter.version>1.1.21</druid-starter.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>${druid-starter.version}</version>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${spring-cloud-alibaba.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-openfeign-dependencies</artifactId>
<version>${spring-cloud-openfeign.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
parent以 springboot
開始,原因為 springcloud是基於 springboot 的一套腳手架工具,在搭建本項目時遇到了不少的版本衝突的問題,可以看一下springboot和springcloud版本整理。
希望能對你有到幫助。