我有小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. WSO2應用服務器 - REST服務,部署爲應用程序或服務?
- 2. Web服務可以在同一個應用程序服務器中調用另一個Web服務嗎?
- 3. 我可以使用微軟商務服務器,目錄API和Windows服務應用程序
- 4. REST API服務器
- 5. AWS的微服務Web應用程序
- 6. 在應用程序服務器之間同步服務狀態
- 7. iphone應用程序pop3服務器API?
- 8. 服務器應用程序不可用?
- 9. 服務器應用程序不可用
- 10. 服務器應用程序不可用
- 11. 從應用程序服務器根服務GWT應用程序
- 12. Azure應用程序服務碼頭容器'服務不可用'
- 13. 移動服務器應用程序聊天REST API
- 14. 在REST服務中調用SOAP服務
- 15. Java應用程序服務器和JVM
- 16. FCM XMPP java服務器應用程序
- 17. mod_pagespeed和java應用程序服務器
- 18. Java Web服務器應用程序
- 19. 是否可以在微服務應用程序中代理POJO?
- 20. 應用程序服務器
- 21. strongloop API服務器是否僅允許每個服務器實例使用一個REST應用程序?
- 22. 面向任務的用戶界面和Rest應用程序服務器API
- 23. 沒有Web服務器的Java應用程序中的Google API
- 24. 對應用程序和API微服務進行身份驗證服務
- 25. 如何在java web應用程序中使用http服務器和應用程序服務器
- 26. CA服務DESK REST api使用JAVA
- 27. 在Azure API應用服務上託管Java REST API
- 28. 在java中驗證REST API服務
- 29. 客戶端(Android應用程序) - 服務器(Java應用程序)
- 30. 具有微服務的移動應用程序(在Microsoft Azure服務結構上)
這對我很有幫助:[微服務架構中的進程間通信](https://www.nginx.com/blog/building-microservices-inter-process-communication/) – Andrew
取決於很多事情。這是一個非常基礎的架構決策,您需要根據事務要求,同步/異步,安全性,會話等進行。 – zencv