spring-cloud 2.0 微服务架构从入门到精通

时间:2021-02-03 00:38:09

目前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 接口认证
  • …………

三、项目架构

先看一下我的一个中小型的项目架构:

spring-cloud 2.0 微服务架构从入门到精通

说明:3个maven主项目

  1. king-business 业务模块 例如:基础信息,用户,订单等
  2. king-commonservice spring-cloud系统组件
  3. king-component 通用组件,例如:oauth2 认证组件,redis缓存等

king-util 为通用工具类(其他模块依赖即可,这里没有做成微服务)

此时,可能有人会有疑问,业务微服务的controller、service等为何不拆分成独立的微服务?

我是这样考虑的:

架构并不是千篇一律的,如果对于一个大型购物网站分布式架构,更细的拆分,会使每个微服务做更少的事情,性能的确会更高,调用更灵活,而对于一个中小型项目而言,这样的拆分已经足够了,这里,我是按业务拆分:比如,用户微服务、订单微服务等等

本文由:学什么技术好