微服务架构设计实践
微服务架构体系
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.测试收益
终!!!
评论