兩個不同的 API 或系統之間如何傳值?
| 方式 | 適用場景 | 特點 |
|---|---|---|
| 文件 | 簡單、持久化、跨機器(網絡共享/NFS) | 延遲高、需協商格式、需處理併發鎖 |
| 共享內存 | 同機器、高性能、大數據量 | 最快、需同步機制(信號量/互斥鎖)、生命週期管理 |
| Socket (TCP/UDP) | 跨機器、跨語言、網絡通信標準 | 靈活、需協議設計、有網絡開銷 |
| 消息隊列 | 異步解耦、高可靠、微服務 | RabbitMQ/Kafka/ActiveMQ、支持持久化、路由、集群 |
| 管道/命名管道 | 父子進程、同機器單向/雙向 | 簡單、容量有限、單向 |
| RPC/gRPC | 服務間調用、強類型契約 | IDL 定義、自動生成代碼、HTTP/2、支援流式 |
| REST/HTTP API | 跨語言、防火牆友好、Web 標準 | 文本開銷大、無狀態、易調試 |
| 數據庫 | 持久化、事務、多系統共享 | 延遲較高、需輪詢或觸發器通知 |