電銷抗封號電銷卡辦理流程
銷售打電話專用手機卡
銷售打電話用的手機卡
銷售打電話用的電銷卡
靠譜卡商專業辦理高頻外呼手機
微服務的目標是將應用程序盡量分解 / 解耦為圍繞業務功能組織的一系列松散耦合服務。這些分布式的微型單元共同滿足應用程序的目標。
將單個應用程序拆分為多個微服務后,跨越多個服務的事務(讀取和寫入)就變得不可避免了。進而,跨各個微服務邊界的通信——工作流管理——數據存儲機制 就成為了挑戰。這一系統應符合被稱為分布式計算謬誤的準則。當跨多個服務(每個都有自己的業務邏輯和數據庫)處理事務時,數據庫系統承諾的 ACIDity 是無法保障的。CAP 定理 意味著你需要在一致性(C)和可用性(A)之間做出權衡,因為分區容錯(P)在分布式系統中是無法指望的。在這篇博客文章中,我們將探討針對這些挑戰和設計模式的解決方案。
協調服務間通信
針對不同環境和目標的客戶和服務可以通過不同的機制來通信。通信可以是同步的或異步的,具體取決于協議。
同步通信——請求響應方法
在同步通信中,需要一個預定義的源服務地址,指明請求要發送到何處,并且 兩邊的服務(調用方和被調用方)都應處于啟動和運行狀態。盡管協議可能是同步的,但 I/O 操作可以是異步的,其中客戶端不必等待響應。這是 I/O 和協議 之間的區別。Web API 常見的通用請求 - 響應方法包括 REST、GraphQL 和 gRPC。
異步通信
在異步通信的情況下,調用方不必有被調用方的具體地址。這樣就可以相對容易地一次處理多個消費者(因為服務可能會增加消費者數量)。此外,如果接收服務關閉,消息就會進入隊列,然后在接收服務打開時繼續處理。從 松散耦合、多服務通信以及應對部分服務器故障 的角度來看,這尤其重要。正是這些決定性的因素讓 微服務傾向于異步通信。諸如 MQTT、STOMP、AMQP 之類的異步協議由 Apache Kafka Stream、RabbitMQ 之類的平臺處理。
了解何時何地使用同步模型與異步模型,是設計高效微服務通信機制時的基礎要素。
消息與事件
在異步通信中,常見的機制是消息傳遞和事件流。
消息
消息 是發送到特定目的地的數據項目,它封裝了 意圖 / 動作(需要發生的事情),并通過消息傳遞之類的渠道分發。隊列負責存儲消息,直到它們得到處理和刪除。在消息驅動的系統中,可尋址的收件人等待消息到達并做出響應,否則將處于休眠狀態。
事件
事件封裝了狀態的變化(發生了什么),而事件偵聽器會附加到事件源上,以便在事件發出時調用它們。
域事件:與應用程序生成的業務域相關的事件(下圖中的 OrderRequested、CreditReserved、InventoryReserved)。這些事件是事件源關注的。