REST API Java微服务可在同一应用程序服务器中使用

时间:2017-04-06 10:22:35

标签: java rest microservices

我有小型Java(Java EE)微服务,可以进行一些计算。此微服务与其他应用程序在同一应用程序服务器上运行,也使用Java EE编写。第一个问题 - 这些应用程序应该通过REST API或不同方式相互通信吗?第二个问题 - 如果是这样,有没有办法节省一些时间,不通过序列化/反序列化传输对象?我知道不同服务器(语言)上的两个应用程序之间的通信需要序列化/反序列化,但是提到的情况呢?

2 个答案:

答案 0 :(得分:3)

  

这些应用程序应该通过REST API或不同方式相互通信吗?

微服务应始终通过网络进行通信。如果他们有REST API,那就使用它。

  

如果是这样,有没有办法节省一些时间,不通过序列化/反序列化传输对象?

如果他们通过网络进行通信,则必须进行序列化。无论如何,序列化有助于解耦。微服务应共享数据,但不共享模式/类。必须通过丢失模式来完成序列化,即您可以使用JSON。如果您共享模式(类),则会破坏微服务的封装。您将无法使用其他实现更改微服务实现(例如,使用不同的技术堆栈PHPNginx)。

答案 1 :(得分:1)

如果效率至关重要,您可以使用Google's Protobuf。它有点痛苦(与json相比)但效率很高。它也与语言无关(或者更确切地说:它具有大多数常见语言的实现)。

您基本上根据proto规范定义消息,然后特殊编译器生成相关的get / set代码。您可以在代码中使用它来发送和接收超高效的消息。