Spring Cloud微服务项目搭建系列文章(一):基础说明
本系列文章主要是讲一下本人在开发前期的构建项目的一些过程,如果有什么不对的地方,欢迎留言指出。
项目介绍
项目源码地址:源码地址
项目基本结构图如下:
这里会从最基础的创建项目开始说起,到最后整个项目的成型。先简单的的说下项目中运用的技术点和相关的版本。
开发工具:IntelliJ IDEA
JDK版本:1.8
数据库:MySql5.7
缓存:redis
MQ:RabbitMq
Spring Boot :2.1.12.RELEASE
Spring Cloud:Greenwich.SR5
私服:nexus3(存储相关私有jar和阿里云相关jar)
ORM:mybatis3
注册中心:nacos
配置中心:nacos
权限控制:Spring Security+Oauth2
网关:Spring Cloud gateway
文件服务器:阿里云OSS
.....
服务说明
项目架构的演变:
单体架构
垂直架构
面向服务的架构
微服务架构
简单的微服务架构图
技术选择
现在比较流行的微服务的框架就是2个大的体系
- Spring Cloud
- Dubbo
dubbo出现的比较早了,期本身是基于netty的rpc实现的典型代表,也可以说是netty使用的一种典型案例,在服务治理方面有着期独特的优势。
Spring Cloud发展迅速,有全面完善的解决方案。
两者做了个简单的对比,不是非常完善,可以参考的看下。
服务注册中心 |
Zookeeper |
Spring Cloud Netflix Eureka |
服务调用方式 |
RPC |
REST API |
服务监控 |
Dubbo-monitor |
Spring Boot Admin |
断路器 |
不完善 |
Spring Cloud Netflix Hystrix |
服务网关 |
无 |
Spring Cloud Netflix Zuul |
分布式配置 |
无 |
Spring Cloud Config |
服务跟踪 |
无 |
Spring Cloud Sleuth+ZIPKIN |
消息总线 |
无 |
Spring Cloud Bus |
数据流 |
无 |
Spring Cloud Stream |
批量任务 |
无 |
Spring Cloud Task |