本系列文章主要是讲一下本人在开发前期的构建项目的一些过程,如果有什么不对的地方,欢迎留言指出。
项目介绍
项目源码地址:源码地址
项目基本结构图如下:
这里会从最基础的创建项目开始说起,到最后整个项目的成型。先简单的的说下项目中运用的技术点和相关的版本。
开发工具: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 |