開發說(shuō)明

Gateway采用SEDA事件驅動的(de)架構進行設計。

Messaging即消息處理機制,是(shì)一(yī / yì /yí)種基于(yú)消息的(de)、異步的(de)、消息驅動的(de)設計方式;事件驅動貫穿Gateway開發的(de)始終,是(shì)框架整體架構與基本功能模塊之(zhī)間交互的(de)基本方式。

消息處理(Messaging)說(shuō)明

  • 消息(Message)——應用功能處理的(de)流轉對象(對應事件驅動中的(de)事件)
  • 端點(Endpoint)——消息處理模塊
  • 通道(dào)(Channel)——消息處理模塊的(de)串連、組裝
  • 異步
    • 增加攔截過濾、擴展功能的(de)插卸
    • 耗時(shí)調用上(shàng)采用非阻塞方式,提高資源利用率
  • 事件驅動( Event-Driven Architecture)
    • 降低模塊、組件之(zhī)間的(de)耦合(通過事件)
    • 組件隻需關心如何處理事件,不(bù)必關心如何與别的(de)組件交互
    • 組件交互、事件流轉由通道(dào)(Channel)或者管道(dào)(Pipes)負責
  • 管道(dào)+處理器(Pipes and Handler)的(de)架構風格

插件的(de)擴展方式

對于(yú)gateway來(lái)說(shuō), 任何功能幾乎都是(shì)可以(yǐ)擴展的(de), 目前應用時(shí)常用的(de)擴展類型主要(yào / yāo)有以(yǐ)下幾種: handler擴展, filter擴展, module擴展等

  • handler擴展:如權限校驗, 并發, 流控等直接可以(yǐ)獨立的(de)加到(dào)請求響應鏈中的(de)這(zhè)類插件稱做Handler.

    • 特征:必須作用在(zài)請求響應鏈中, 并且需要(yào / yāo)自由控制其在(zài)請求響應鏈的(de)具體執行時(shí)間點, 如在(zài)某一(yī / yì /yí)插件前或插件後
    • 應用場景:主要(yào / yāo)爲(wéi / wèi)需要(yào / yāo)依賴網關的(de)配置文件中的(de)配置信息執行該插件, 如response,參數映射,流控,并發等.
  • filter擴展:

    • 特征:不(bù)需要(yào / yāo)依賴網關配置文件的(de)配置信息就(jiù)可以(yǐ)獨立執行, 但執行的(de)時(shí)間點是(shì)固定的(de), 比如在(zài)某個(gè)handler插件執行前後, 或者在(zài)網關的(de)某個(gè)connector執行前後.
    • 應用場景:如需要(yào / yāo)采集Http請求的(de)請求頭或者報文體的(de)某些固定信息, 放到(dào)上(shàng)下文供後面使用, 或者按照某些需求以(yǐ)固定模式修改請求或響應信息
  • Module擴展:

    • 特征:執行時(shí)獨立于(yú)請求響應鏈以(yǐ)外, 需要(yào / yāo)獲取全局的(de)請求響應信息, 即時(shí)性要(yào / yāo)求不(bù)是(shì)非常高的(de)
    • 應用場景: 網關的(de)每次請求響應結束時(shí), 可以(yǐ)将該請求的(de)整個(gè)上(shàng)下文以(yǐ)事件非阻塞的(de)方式推送給網關的(de)事件隊列, Module類型的(de)擴展插件可以(yǐ)訂閱感興趣的(de)事件, 采集需要(yào / yāo)的(de)信息推送給其他(tā)系統或做自定義處理.
Copyright © 屯昌單支科技有限公司 2019 all right reserved,powered by Gitbook聯系方式: wanglihang@mskj.com
修訂時(shí)間: 2019-09-03 17:48:17

results matching ""

    No results matching ""