關鍵:僅影響客戶端,Server 完全無感
qryBooksByAuthorAsync 方法// 同步阻塞
List<Book> books = port.qryBooksByAuthor(author);
// 異步非阻塞
Future<?> future = port.qryBooksByAuthorAsync(author);
// 繼續做其他事...
List<Book> books = future.get(); // 需要時再取結果

將多次細粒度呼叫合併為單次粗粒度呼叫:
getBook(id) × 100 次網路往返getBooks(List<ID> ids) 一次網路往返@BindingType(value = javax.xml.ws.soap.SOAPBinding.SOAP12HTTP_MTOM_BINDING)
@MTOM(enabled = true, threshold = 1024) // 超過 1KB 才用 MTOM
public class BookStoreService { ... }
| 方案 | 適用場景 | 效果 |
|---|---|---|
| 異步調用 | UI 非阻塞、Server 間高併發調用 | 釋放執行緒、提升吞吐 |
| 批次處理 | 大量細粒度操作合併 | 減少網路往返 90%+ |
| MTOM 壓縮 | 大型二進位附件傳輸 | 體積減 30%+、CPU 降 50%+ |
qryBooksByAuthor(Author) → List<Book>