微服务SpringCloudAlibaba-开篇

这个项目是做什么的?

其实是想做一个微服务架构的脚手架,只关注架构设计,不实现具体业务。大概涉及一下几点:

  1. 技术选型
  2. 二次封装
  3. 代码分层
  4. 统一异常处理
  5. 统一响应风格
  6. 统一MQ
  7. 统一熔断、提示、日志存储
  8. 分布式事务
  9. 链路追踪
  10. Oath2?
  11. 网关(流控、降级、削峰、认证?)
  12. API接口文档
  13. restful 接口规范

为什么要做这个项目?

现在微服务大致分为三种:

  1. SpringCloud: Eureka、Feign、Hystrix…:全套生态,但是restful调用方式略弱于RPC,且部分组件已不再维护
  2. Dubbo、Zookeeper : RPC调用,但非完整生态,需要东拼西凑出一套完整的微服务生态。
  3. SpringCloudAlibaba: Nacos、Sentinel、Seata、Dubbo: 完整生态且更新正常,但是当前正在上升期尚未稳定,感觉前景还不错。

目的其实为了整和出一个可拔插式的项目架构,允许后期变更,SpringCloudAlibaba构建一个完整的微服务生态,且兼容RPC和restful风格的调用方式。