项目使用 Crossbar.io
进行通信,流程大概如下
流程图中的每个块状区域都是 Crossbar
的一个组件,都可以独立运行。所有通信全部通过 Crossbar
中注册的路由来进行通信。
- Frontend Component
- Crossbar Server
- Backend Component
- MongoDB Component
- S3 Component
由于关联服务较多,后端开发人员本地环境没有搭完整的测试环境,只有后端基本环境写代码,连接服务器端的主干分支环境测试。
服务器主干分支是项目发布运行的分支,主干分支的代码提交都是需要管理员合并,然后部署更新代码。持续了一段时间,发现前后端开发效率低下,主干分支总是出问题。
分析原因发现,由于 Backend Component 中 API 出现同一个 uri
会导致前端调用后端接口后返回结果异常的情况,后端开发人员在开发过程中,如果修改现有接口内容只能通过本地写代码,然后提交到主干分支后, master
把代码合并后后端开发者再测试改动后的代码效果
目前的解决方案
通过注册不同的 uri
来实现不同的后端调用,前端后端调整使用同一个 uri
,通过配置启动参数,程序接受一个通道 ch
作为参数,这个通道会被加到所有的 uri
里面。
每开发者都有属于自己的名字命名的通道,比如主干分支的代码版本中的
com.example.frontend.predict
添加对应的通道参数后变成
com.example.frontend.predict_david
或 com.example.david.frontend.predict
这样就解决了后端开发人员的本地测试问题