我有小Java(Java EE)微服务,可以进行一些计算。此微服务与其他应用程序(也是用Java EE编写)在同一应用程序服务器上运行。第一个问题 - 这些应用程序是否应该通过REST API或其他方式相互沟通?第二个问题 - 如果是的话,有没有办法通过不传输序列化/反序列化传输对象来节省一些时间?我知道不同服务器(语言)上的两个应用程序之间的通信需要序列化/反序列化,但是提到的情况呢?REST API Java微服务在同一应用程序服务器中可用
2
A
回答
2
这些应用程序是否应该通过REST API或其他方式进行通信?
微服务应该总是通过网络进行通信。如果他们有一个REST API然后使用它。
如果是这样,有没有办法来节省一些时间,通过不序列化/反序列化传输对象?
如果他们通过网络进行通信,则序列化是必须的。无论如何,序列化有助于解耦。微服务应该共享数据而不是模式/类。序列化必须通过释放模式来完成,即可以使用JSON。如果您共享模式(类),则会破坏微服务的封装。您将无法通过其他实现更改微服务实现(即使用不同的技术堆栈,例如PHP
和Nginx
)。
0
如果效率最重要,您可以使用Google's Protobuf。它有点痛苦(与json相比),但非常有效。它也是语言不可知的(或者更确切地说:它在大多数通用语言中都有实现)。
你基本上根据proto规范定义一个消息,然后一个特殊的编译器生成相关的get/set代码。你在你的代码中使用它来发送和接收超高效的消息。
相关问题
- 1. Web服务可以在同一个应用程序服务器中调用另一个Web服务吗?
- 2. REST API服务器
- 3. AWS的微服务Web应用程序
- 4. 服务器应用程序不可用
- 5. 服务器应用程序不可用?
- 6. 从应用程序服务器根服务GWT应用程序
- 7. Azure应用程序服务码头容器'服务不可用'
- 8. FCM XMPP java服务器应用程序
- 9. mod_pagespeed和java应用程序服务器
- 10. 是否可以在微服务应用程序中代理POJO?
- 11. 应用程序服务器
- 12. strongloop API服务器是否仅允许每个服务器实例使用一个REST应用程序?
- 13. 面向任务的用户界面和Rest应用程序服务器API
- 14. 对应用程序和API微服务进行身份验证服务
- 15. CA服务DESK REST api使用JAVA
- 16. 具有微服务的移动应用程序(在Microsoft Azure服务结构上)
- 17. WCF REST服务的WCF服务应用程序(项目)或WCF服务(网站)
- 18. 我如何开始使用API SearchConsole(服务器到服务器应用程序)?
- 19. 在Windows服务器上的Java应用程序的可能性?
- 20. 连接到ejabberd服务器和应用程序服务器
- 21. 使用Java和德比服务器的服务器客户端应用程序
- 22. MeteorJS调用REST API服务器端
- 23. 使用Rest API的Azure容器服务
- 24. Java:在服务器应用程序中创建线程池
- 25. 如何确保服务器 - 服务器应用程序中的通信安全?
- 26. WCF:同一程序集中的服务调用服务
- 27. 测试Java Spark微服务应用程序,实现SparkApplication接口
- 28. WebSphere应用程序服务器 - 服务器(服务器)的名称
- 29. 将WS02身份服务器与Spring REST应用程序集成
- 30. 如何在android应用程序中同步服务器数据?
这对我很有帮助:[微服务架构中的进程间通信](https://www.nginx.com/blog/building-microservices-inter-process-communication/) – Andrew
取决于很多事情。这是一个非常基础的架构决策,您需要根据事务要求,同步/异步,安全性,会话等进行。 – zencv