簡介: 事件驅動是指事件在持續事務管理過程當中,進行決策的一種策略。能夠經過調動可用資源執行相關任務,從而解決不斷出現的問題。通俗地說是當用戶觸發使用行爲時對用戶行爲的響應。在 Serverless 場景下,事件驅動完美符合其設計初衷之一:按需付費。安全
做者 | 李鵬(元毅)
來源 | Serverless 公衆號併發
事件驅動是指事件在持續事務管理過程當中,進行決策的一種策略。能夠經過調動可用資源執行相關任務,從而解決不斷出現的問題。通俗地說是當用戶觸發使用行爲時對用戶行爲的響應。在 Serverless 場景下,事件驅動完美符合其設計初衷之一:按需付費。框架
圖:Knative 模型less
Knative 主要包括兩大部分:一是用於工做負載的 Serving,包括版本管理、灰度流量、自動彈性;二是 Eventing(事件驅動框架)。運維
核心玩家異步
友商相關產品分佈式
Knative 的 Eventing 提供了一個完整的事件模型,方便接入各個外部系統的事件。事件接入之後,經過 Cloud Event 標準在內部流轉,結合 Broker-Trigger 模型進行事件處理。高併發
從上圖能夠看到,Eventing 中包含三部份內容:大數據
事件規則的核心是 Broker-Trigger 模型,它包含如下特性:阿里雲
Knative 社區中提供了豐富的事件源接入,包括 Kafka、Github,也支持接入消息雲產品的一些事件,好比 MNS、RocketMQ 等。
如上圖所示,接入事件源以後,能夠經過 Broker-Trigger 模型請求相應的服務。這些服務包括一些具體場景,好比從源碼構建鏡像、自動化鏡像發佈、AI 音視頻處理、定時任務等。全部的事件都須要這樣的事件源來拉取,而後下發到 Eventing 整個事件流轉過程。
事件接入
事件處理
典型案例
消息隊列 RocketMQ 版是阿里雲基於 Apache RocketMQ 構建的低延遲、高併發、高可用、高可靠的分佈式消息中間件。
消息隊列 RocketMQ 版既可爲分佈式應用系統提供異步解耦和削峯填谷的能力,同時也具有互聯網應用所需的海量消息堆積、高吞吐、可靠重試等特性。
RocketMQSource 是 Knative 平臺的 RocketMQ 事件源。其能夠將 RocketMQ 集羣的消息以 Cloud Event 的格式實時轉發到 Knative 平臺,是 Apahe RocketMQ 和 Knative 之間的鏈接器。
消息隊列 Kafka 版是阿里雲基於 Apache Kafka 構建的高吞吐量、高可擴展性的分佈式消息隊列服務,普遍用於日誌收集、監控數據聚合、流式數據處理、在線和離線分析等,是大數據生態中不可或缺的產品之一,阿里雲提供全託管服務,用戶無需部署運維,更專業、更可靠、更安全。
以具體場景爲例,該案例是一個直播系統,系統天天都有海量的直播訪問,訪問量根據直播熱度隨時變化,彈性有波動,同時存在不定時的增量。客戶的訴求,一是業務彈性波動,消息併發性比較高;二是互動實時響應,要求低延遲。
爲了知足對消息處理的彈性波動、高併發及低延遲的要求,客戶選擇阿里雲的 Knative 服務進行數據的彈性處理。阿里雲 Knative 徹底契合了用戶當前的訴求,而且在接入 K8s 標準之上,提供了基於事件和消息的彈性調度。
當應用實例數隨着業務的波峯波谷進行擴容和縮容時,真正作到了按需使用、實時彈性的能力。整個過程徹底自動化,減小業務開發人員在基礎設施上的負擔。在這個案例中,Knative 主要提供了三個能力:極致彈性、事件處理、開箱即用。
下面進行示例演示,演示內容主要有:
做者簡介:
李鵬,花名:元毅,阿里雲容器平臺高級開發工程師,2016 年加入阿里, 深度參與了阿里巴巴全面容器化、連續多年支持雙十一容器化鏈路。專一於容器、Kubernetes、Service Mesh 和 Serverless 等雲原生領域,致力於構建新一代 Serverless 平臺。當前負責阿里雲容器服務 Knative 相關工做。
原文連接本文爲阿里雲原創內容,未經容許不得轉載。