乐趣区

搭建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,输入命令 git@github.com: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 版本整理。

希望能对你有到帮助。

退出移动版