微服务架构设计实践

微服务架构体系
1.架构图及技术栈
 
 2.微服务介绍
源代码地址: https://github.com/ittarvin/micro-services
2.1.项目代码管理目录结构
 
 项目采用 Maven 进行项目代码管理。
2.1.1.代码结构介绍
- zjcw-gateway 
服务网关服务
- zjcw-${占位符}-micro-services 
按模块划分的微服务
- zjcw-notifcation 
通知服务(短信,钉钉,推送等)
- zjcw-statistics 
定时任务执行服务
- zjcw-oauth(待定) 
微服务的安全体系
- zjcw-plugin 
插件管理
- zjcw-utils 
公共工具类
3.服务网关(Gateway)
Gateway 作为更底层的微服务网关,通常是作为外部 Nginx 网关和内部微服务系统之间的桥梁,起了这么一个承上启下的作用。
3.1.简介
网关服务基于 Spring Cloud Gateway 实现。实现功能包括 请求路由,服务负载,请求降级等。(文档)
3.1.2.扩展
- 实现基于 Apollo 的路由动态配置更新 。 
- 集成车旺链路追踪(Zipkin)。 
4.业务微服务(zjcw-${}-micro-services)
4.1.微服务应用分层
 
 Controler 业务请求控制层【不包括业务逻辑】Service 服务层【与 domain 共同实现业务逻辑,主要担任 domain 层的业务协调工作】Domain 层负责关键业务计算 Proxy 服务代理与其他服务的交互(如:Fegin Client)DAO 数据库持久层(Mybatis)
4.2.微服务应用测试
4.2.1.测试覆盖原则
 
 - 单元测试(UT) 
  
使用技术:Junit,Spring Mock MVC,Mpckito
- 集成测试(IT) 
  
主要针对外部依赖进行测试。
- 组件测试(CT) 
  
内部 Mock AND 外部 Mock 内部:Spring MockBean,外部工具 WireMock外部: hoverfly将外部依赖进行 Mock
- 端到端(End-to-End Test) 
API 测试工具 Rest-assured
- 契约测试(不推荐) 
国内应用较少
4.2.2.测试收益
终!!!











 
    
评论