我们正试图为我们的新产品提出一个架构,在这个架构中,我们正在寻找微服务。假设我有以下微服务
1.位置数据服务-使用Client+Securities(焊接)数据
2.评估服务-使用Client+Security+Security的评估数据
我们正在考虑使用Json数据结构/ hirarachy,如下所示:
Client - Client's attributes
- List - Security - Security's attributes
- List - Valuation - Valuation attributes由于每个微服务都会接收它各自的JSON输入数据,并且必须解析它的java对象(Client.java,Security.java等,Valuation.java),我们正在考虑将所有java类(对象模型-Client.java,Security.java,Valuation.java等)放在一个单独的java项目中,并在所有微服务中将其用作jar依赖,这样它们就可以将JSON序列化/反序列化到这些对象中,并相应地工作。
现在,因为
1.我们在所有微服务中共享对象模型
2.对象模型中的任何更改都将影响所有服务
3.它们在某个地方变得相互依赖,假设位置数据服务只负责客户端和安全的属性,但当使用共享对象模型反序列化r序列化时,将具有完整的herarchy Client-[List of SecurityList Of where ],我们是否违反了微服务背后的设计方法,我们说每个微服务都与其他微服务完全隔离?
发布于 2019-06-09 01:35:59
我正面临着类似的问题,我觉得答案是拥抱冗余。每个微服务将定义自己的模型,并能够反序列化到该模型中(忽略未知属性)。这样,您就可以坚持开放/封闭原则,只在必要时向模型中添加新属性,并将服务彼此隔离。
https://stackoverflow.com/questions/37452239
复制相似问题