分布式微服务项目构建以及协作方法论
长话短说, 由于现在用户量大, 需要更大的并发量, 另外对于软件本身也需要有更丰富强大的功能才能够满足现在的市场. 所以现在构建项目一般都是用基于微服务思想的架构思想构建项目.
在Java领域, 以Spring Cloud 框架为首的微服务框架在众多软件设计架构中脱颖而出. 但是, 由于如果软件过于庞大,微服务一般都会根据业务种类进行团队的分工. 由于每个人的代码编写习惯和能力都不一样, 导致在对接的时候效率低, 浪费了大量的时间.
综上, 本文以Java为例, 介绍微服务项目的搭建, 以及微服务项目在公司中如何高效协作
.
1 微服务构建
从整体来说, 微服务纵向基本大体都是一样的, 如上图, 分为前端展示层(即用户使用的接口), 网络输入层(里面有一个负载均衡的概念,可以帮助流量平坦到服务器集群中,另外网关来过滤恶意的访问), 业务服务层(专门处理业务需求的模块,功能层次较高,比如打车,注册登录等), 能力服务层(是多种服务都需要完成一件事情而沉淀抽象出来的服务,比如获取验证码, 订单, 计算价格等), 存储层和具体的运行环境.
项目需要从需求业务中决定如何拆分微服务. 需要参见软件工程危机后总结出来如何提高软件质量的方法. 包括以下几个标准:
- 1 面向对象的思想
- 2 设计原则
- 3 设计模式
- 4 代码的规范
- 5 重构.
而设计原则是核心. 在设计原则中, 重点是单一职责, 高内聚原则, 低耦合原则, 粒度把控原则和集群软件中特有的AKF原则.
重点说以下AKF原则, 就是将整个软件分为三个方向进行扩充.
2 团队的协作方法
直接说答案, 就是面向接口编程. 前端和后端,以及后端业务和后端业务之间分工当中, 决定了总体需求后, 先对每个功能进行序列图的编写(原型设计之后).以下面发送验证码功能为例子, 这样团队中,前端就知道需要设计一个接口来发送手机号. 而后端api-passenger和service-verifycode微服务之间也直观明了.
之后就是针对这3个端进行接口的设计, 非常推荐使用APIFOX
这个软件, 它是一个专门面向接口设计的一个测试工具. 由于前端后端以及测试之间,往往使用的都是不同的调试工具,所以这个是导致浪费对接时间的主要原因. 就以发送验证码举例子.