共享数据对象模型在微服务中使用JSON作为传输

时间:2016-05-26 05:24:11

标签: json serialization microservices

我们正在尝试为我们的新产品推出架构,我们正在寻找微服务。 假设我有以下微服务

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 [估价清单]] 我们是否违反了微服务背后的设计方法,我们说每个微服务都与其他微服务完全隔离?

建议赞赏...

1 个答案:

答案 0 :(得分:0)

我正面临类似的问题,我认为答案是拥抱冗余。每个微服务都将定义自己的模型,并能够反序列化到该模型中(忽略未知属性)。这样,您只需在必要时向模型中添加新属性,并将服务彼此隔离,就可以遵循开放/封闭原则。

如果有人可以验证这一点,那么可以为我节省更多的研究工作;)