上一篇文章介紹了 SOA (Service-Oriented Architecture) 的遠大願景與淡淡哀傷的下場,而這一篇要講的是 SOA 在平行宇宙的成功...
Data Mesh & Microservices 在國內最專業的非 Brobridge 寬橋莫屬,看看這篇貼文就知。https://www.facebook....
身為一個後端工程師,知道怎麼導入與設計微服務 (Microservices)架構,似乎已經變成一個潛規則了,而這個假設可以輕易的從求職市場上得到驗證,你可以快速...
本系列文章的一大核心重點為「實作」,在接下來的每一個章節中,我們將會圍繞著實際的程式設計,傳達在 PHP 程式語言下該如何實踐我們推薦的微服務設計模式。 首先,...
首先,我們從大多數人熟悉的單體式(Monolithic)架構說起。 Monolithic 就如同摩艾石像般,巨大、莊嚴,承載著文化的整體。 在單體式應用程...
上一章,我們了解了如何在一個協作器中同時編排順序與並行並存的協作器,本章我們將聚焦在協作器的物件實體本身。在這個章節中,我們利用 PHP 的語法特性與你介紹幾種...
在這個章節中,我們會延續使用第九章服務抽象化的程式碼,請實作過第九章的讀者繼續保持你的本地環境;若你是還沒實作過第九章內容的讀者,建議你重回上一章了解 Anse...
服務協作(Service Orchestration)模式將服務執行的順序、邏輯判斷以及錯誤時的例外處理統一由協作器(Orchestrator)進行指揮。因為業...
從這個章節開始,我們將會使用到第四章中除了 Main App 以外的所有服務。因此,尚未建立相關環境的讀者請前往第四章並依照教學建立起你的本地環境;除此之外,我...
在現實世界的開發環境中,我們不可能永遠碰到最簡單的業務狀況,一定會有不同的複雜溝通需要處理。而在複雜的微服務架構中,如何確保多個服務之間的協作不僅高效且容易維護...
在服務協作的設計模式中,所有的流程控制與邏輯決策皆由協作器掌握。一旦協作器遭遇意外故障,將會導致資料遺失,進而無法保證資料一致性。我們可以透過故障轉移(Fail...
緊接著上一個章節,本章將討論如何處理一個協作器的回傳。 定義協作器執行結束後的回傳內容 協作器成功 延續上一章的範例程式碼,我們繼續往下看。 protected...
隨著時代變遷,企業需要加快創新與攻占市場,透過加速應用程式建置週期來獲得競爭優勢,已成為不可或缺的條件之一,面對這樣的需求,大型應用程式充滿挑戰,如:要如何更快...
什麼是 NATS ? 圖片來源 NATS 是一套輕量、安全且高效的訊息傳遞系統,經常用於微服務之間的溝通、物聯網設備的訊息傳遞、雲端原生(Cloud Nati...
什麼是 Redis ? 圖片來源 Redis 是一個基於記憶體的 key value 資料庫,在過去最常用來當作 快取(Cache) 的媒介,隨著 Redis...
NestJS 微服務應用程式概念 在 NestJS 的世界裡,微服務應用程式(Microservices) 被定義為:使用與 HTTP 協定不同傳輸層的應用程式...
如果你是跟著文章一天接著一天實作的讀者,那麼你需要確保你的 : Anser-Tutorial-Service 使用的是最新的 v1.1.0 以上的版本...
什麼是 MQTT ? 圖片來源 MQTT 是一個基於 TCP/IP、極輕量的傳輸協定,具有可靠性高、擴展性高、占用頻寬小等特性,主要用於 物聯網(Intern...
什麼是 Kafka? 圖片來源 Kafka 是一個分散式串流平台,專為巨量資料流設計,可透過水平擴展的方式來提升乘載量,甚至可以把資料存放於硬碟中,提供擴展性...
什麼是 RabbitMQ? 圖片來源 RabbitMQ 是一套可靠且成熟的 Message Broker,支援多種傳輸協定,包含:AMQP、MQTT 等,同時...
微服務的監控 在微服務架構中,會同時存在多個服務,這些服務各自使用不同的技術、存在於不同的主機、有各自的生命週期,這使系統的 複雜度大幅提升,同時也讓 維運成本...
微服務的 Log Log 是系統運作時產生的記錄,可以是系統發生的事件、錯誤訊息或是其他 有助於釐清系統行為與問題的重要線索。一個最簡單、基礎的 Log 可以是...
Log 的管理 隨著服務規模的增長,Log 管理面臨許多挑戰。過去,服務通常會將 Log 寫入本地檔案進行保存,但這種做法存在多種缺點,比如:沒有一個集中管理的...
客戶端 (Client) 上一篇在介紹 NestJS 的微服務應用程式以及相關概念,那要如何用 NestJS 與微服務應用程式溝通呢?NestJS 有為此設計了...
這篇是本系列文的最後一篇,來將這三十天的內容整理一下。下方是本系列文的索引列表,讓各位在需要的時候可以更快的找到自己所需要的文章: 簡介 NestJS 微...
什麼是 gRPC? gRPC 是一套高效、跨平台、基於 HTTP/2 的 遠端程序呼叫(Remote Procedure Call, RPC) 框架,有低延遲、...
微服務的程式碼管理策略 在 Monolithic 架構下,經常會將程式碼放在同一個 Git Repository,包含:前端、後端等。不過在微服務架構下,因為不...
微服務外部 API 的挑戰 在過去,Monolithic 架構讓 Client 呼叫的 API 基本上就會是該 Monolithic 所提供的 API,但在微服...
微服務查詢的挑戰 在微服務架構下,資料會分散在各個服務的私有資料庫中,假如有個應用會需要從多個服務獲得資料並呈現在畫面上,勢必會面臨 如何查詢 的問題。前面在介...
微服務的健康狀態 在微服務架構中,服務的健康狀態非常重要,原因是當某個服務發生故障時,有可能直接或間接導致依賴於它的其他服務產生問題。如果沒有一個機制能夠得知服...