把不同的 Git 仓库跑在不同的进程里。这样只要看是哪个进程出的问题,就可以知道是由哪个 Git 仓库引起的了。 进程边界有如下的好处:
- 完善的跨进程调用监控:相比进程内调用,跨进程调用的监控基础设施要完善得多。因为处理的数据量要小得多。
- 操作系统强制的配额和安全性:就是基础设施更好。都是提前做好,而且充分测试的。
- 隔离的内存状态:进程之间不会共享内存,不会因为共享内存而产生逃逸监控的影响。
进程的缺点如下
- 适用场景:在前端里启动独立的进程不是常规的做法。
- 性能优化会漏掉依赖:经常我们会把配置等数据读取一次之后就缓存在进程内。这部分依赖就很容易逃逸出监控的范围。
- 远离用户:拆分出来的进程往往是越来越靠后台,离用户越远,就越难以倾听到用户的声音。
我们的目标是在出问题之后,能从运行时的现象找到对应的Git仓库。但是这个目标真的一定需要使用进程做边界么?