目前spring-cloud的最新版本是基于 spring-boot 2.x,由于2.x 在 2.x的基础上有了很大的架构变化,包括很多1.x的类和方法在2.x 中不是被修改,就是废弃,当然还包括其本身存在的bug,导致很多想使用和正在使用2.x版本的程序员寸步难行。
很巧本人也是在使用2.x版本搭建微服务架构,其中也遇到不少的坑,于是想分享一个从头至尾的项目实战文章,本人非技术大牛,难免存在错误,大家可以即时沟通,以共同提高。
二、组件介绍
由于本人架构还未搭建完成,所以只能是完成一个,写一篇文章,当然也要考虑工作时间的安排(最近实在是忙,有几个项目同时开工),先来介绍一下目前已有的组件:
- eureka 注册中心
- rabbion/feign 客户端调用
- config server 配置中心统一管理
- Hystric 断路器
- zuul 网关
- redis 缓存
- oauth2 + jwt + redis 接口认证
- …………
三、项目架构
先看一下我的一个中小型的项目架构:
说明:3个maven主项目
- king-business 业务模块 例如:基础信息,用户,订单等
- king-commonservice spring-cloud系统组件
- king-component 通用组件,例如:oauth2 认证组件,redis缓存等
king-util 为通用工具类(其他模块依赖即可,这里没有做成微服务)
此时,可能有人会有疑问,业务微服务的controller、service等为何不拆分成独立的微服务?
我是这样考虑的:
架构并不是千篇一律的,如果对于一个大型购物网站分布式架构,更细的拆分,会使每个微服务做更少的事情,性能的确会更高,调用更灵活,而对于一个中小型项目而言,这样的拆分已经足够了,这里,我是按业务拆分:比如,用户微服务、订单微服务等等
本文由:学什么技术好网