一 架构图
二 架构解读
1 该架构图从整体上分四层
微服务架构层、应用层、中间件和第三方服务层,持续集成层。
2 微服务架构层
主要用到的技术是 Spring Cloud 和 Spring cloud Alibaba。它们主要用于管理各微服务,使各微服务之间能正常通信,常会用到 nacos 注册中心、nacos配置中心和 sentinel。
3 应用层
应用的核心业务会集中在这一层,这一层的客户是最终用户,他们访问浏览器或APP,产生的消息经过防火墙过滤,CDN 加速,来到服务器最前端 Nginx 集群。Nginx根据不同的路由策略,将消息路由到指定的前端服务器,前端服务器产生的消息经过 Spring Gateway 再次路由达到后端应用控制器,控制器按照业务需求去实现最终用户需要的各种功能。
这一层两个重要角色是前端开发人员和后端开发人员。
前端服务器代码一般是前端开发人员开发,目前常用到技术是vue、element ui、html、js、css等。他们的主要任务是以最完美的方式将页面展示给用户看。
后端代码一般是 Java 开发人员,他们利用自己掌握的各种 java 技术,去实现业务需求,他们会将各业务模块分解成微服务,微服务之间通过 Feign 进行相互调用。这期间会访问数据和文件,这时候就会用到各种中间件和第三方服务。他们的主要任务是以最高效的代码完成系统的业务逻辑和业务功能。
4 中间件和第三方服务层
常用的中间件有消息中间件 RabbitMQ、数据库中间件 Mysql 以及 Redis。如果想存储文件或图片,还可以用到第三方文件系统,例如 aliyun oss。如果要发短信,可以用 aliyun 短信平台。当然这里只列出了几种,还有很多类似这样的平台或中间件,使用套路大同小异。如果对这些技术不是太懂,到官网或网上学习一下,就能掌握这些中间件或第三方服务的使用用法。
5 持续集成层
这一层主要角色是开发人员和运维人员。
开发人员将代码上传到代码仓库,比如 github、码云或 SVN 等。运维人员利用 docker、k8s 和 jenkins 等技术将代码编译成最终运行程序部署成测试环境,预发布环境,正式环境供开发人员、测试人员以及最终用户去使用。