(六)整合spring cloud云服务架构 - 企业云架构common-service代码结构分析
当前的分布式微服务云架构平台使用Maven构建,所以common-service的通用服务按照maven构建独立的系统服务,结构如下:
particle-commonservice: spring cloud 系统服务根项目,所有服务项目的根依赖。
particle-commonservice-admin: spring cloud/boot的微服务管理、监控平台(里面会集成很多的组件服务项目)
particle-commonservice-apigateway:API网关通用服务项目,所有的请求首先会经过这个网关。有点类似于前端控制器模式,也有点类似于 Facade模式。由于所有的请求会先经过这个 api 网关,所以可以在这里做权限控制,安全,负载均衡,请求分发,监控等等。以下的一张图片是从网上找的,方便大家理解:
particle-commonservice-cache:针对于分布式缓存提供服务化项目,封装分布式缓存redis等。
particle-commonservice-config: 提供独立的微服务配置管理项目项目。配置管理工具包,让你可以把配置放到远程服务器,集中化管理集群配置,目前支持本地存储、Git以及Subversion。
particle-commonservice-erueka: 提供独立的微服务服务发现、注册管理平台。云端服务发现,一个基于 REST 的服务,用于定位服务,以实现云端中间层服务发现和故障转移。
particle-commonservice-mq: 提供独立的消息中间件服务平台。包括对流行的阿里rocketmq、rabbit mq、kafka分布式消息中间件的服务管理(这里集成了多种方案,供使用者选择)。
particle-commonservice-sso: 提供统一用户登录、认证单点登录平台。使用第三方OAuth2.0的解决方案,通过组织在资源拥有者和HTTP服务商之间的被批准的交互动作代表用户,允许第三方应用代表用户获得访问的权限。同时为Web应用,桌面应用和手机提供统一认证登录服务。
particle-commonservice-turbine:是聚合服务器发送事件流数据的一个工具,用来监控集群下hystrix的metrics情况,提供独立的服务项目。
particle-commonservice-zipkin:提供独立的服务项目,为SpringCloud应用实现了一种分布式追踪解决方案。分布式跟踪系统数据流主要分为三个步骤:采集、发送和落盘分析,Zipkin官网给出的设计图,方便大家理解:
从现在开始,我这边会将近期研发的spring cloud微服务云架构的搭建过程和精髓记录下来,帮助更多有兴趣研发spring cloud框架的朋友,大家来一起探讨spring cloud架构的搭建过程及如何运用于企业项目。