我们正在尝试为我们的新产品推出架构,我们正在寻找微服务。 假设我有以下微服务
1.Position Data Service - 与客户+证券(债券)数据一起使用
2.Valuation Service - 使用Client + Security + Security的评估数据
我们正在考虑让Json Data结构/ hirarachy像这样:
Client - Client's attributes
- List - Security - Security's attributes
- List - Valuation - Valuation attributes
由于每个微服务都将在JSON中接收它的相应输入数据,并且必须解析它java对象(Client.java,Security.java等,Valuation.java) 我们正在考虑将所有java类(对象models-Client.java,Security.java,Valuation.java等)放在一个单独的java项目中,并将其用作所有微服务中的jar依赖项,以便它们可以将JSON序列化/反序列化为这些对象并相应地发挥作用。
现在
1.我们正在所有微服务中共享对象模型
2.对象模型中的任何更改都将影响所有服务
3.他们在某个地方变得彼此依赖,因为假设位置数据服务只是处理客户端和安全性的属性,但是当使用共享对象模型反序列化r serialize时,将具有完整的层次结构Client- [List Of Security [估价清单]] 我们是否违反了微服务背后的设计方法,我们说每个微服务都与其他微服务完全隔离?
建议赞赏...
答案 0 :(得分:0)
我正面临类似的问题,我认为答案是拥抱冗余。每个微服务都将定义自己的模型,并能够反序列化到该模型中(忽略未知属性)。这样,您只需在必要时向模型中添加新属性,并将服务彼此隔离,就可以遵循开放/封闭原则。
如果有人可以验证这一点,那么可以为我节省更多的研究工作;)