我们系统的架构是这样的,有一组功能分割的 RESTful 子系统。其中许多子系统不仅要响应浏览器的请求,还要响应其他子系统。子系统间的流量相对较大并且需要扩展,因此决定使用序列化 Java bean 作为此类通信的表示(由于序列化/反序列化的速度)。这又在具有客户端/服务器关系的子系统之间引入了二元依赖性。更改通过 RESTful API 公开的 Java bean 的内部结构可能会对客户端子系统产生版本兼容性后果。当然,改变任何内容类型的表示结构都会产生兼容性问题,但这显然更糟糕。
由于一个 API 可以为许多客户端提供服务,因此协调每组依赖子系统的版本是一种没有吸引力的选择。
这一定是一个常见问题,我想知道其他人如何解决/缓解?
最佳答案
一种选择可能是使用诸如protocol buffers之类的东西在子系统之间进行通信。 。据我了解,它们是为您所描述的那种事情而设计的,特别是在进行兼容版本更改方面。
关于java - 最小化 RESTful Java 生态系统中内部子系统之间依赖关系的策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6833624/