各協議場景下的(de)網關yaml配置

純socket透傳

網關隻做轉發, 路由規則依賴自己配置接入端口到(dào)接出(chū)地(dì / de)址的(de)映射規則

gateway_test_socket_transpanrent.yaml

http透傳

針對http協議的(de)交互, 可以(yǐ)根據http協議的(de)請求行和(hé / huò)請求頭做配置轉發規則,期間網關不(bù)對Http協議報文體做讀寫操作

gateway_http_transparent.yaml

接入接出(chū)都是(shì)httpjson

gateway_http_json.yaml

接出(chū)協議爲(wéi / wèi)ssl

該示例接入報文格式爲(wéi / wèi)json, 接出(chū)報文格式爲(wéi / wèi)xml, 且接出(chū)時(shí)應用ssl協議, 注意該json報文必須有一(yī / yì /yí)個(gè)根節點, 才能與xml協議轉換, 不(bù)然報錯,默認ssl單向認證

gateway_socket_ssl.yaml

接入接出(chū)都爲(wéi / wèi)https協議

隻允許配置一(yī / yì /yí)個(gè)keystore, 所以(yǐ)這(zhè)個(gè)keystore要(yào / yāo)包含信任證書列表和(hé / huò)自己的(de)私鑰, keystore内容不(bù)能是(shì)字符串格式, 需要(yào / yāo)二進制格式

gateway-https.yaml

接入webservice, 接出(chū)json, wsdl在(zài)本地(dì / de)配置

gateway-webservice.yaml

注意以(yǐ)下幾點

  1. wsdl路徑配置在(zài)config.properties中,格式爲(wéi / wèi) gateway.wsdlLocation='' 表示全局有效
  2. json服務返回的(de)報文必須符合該wsdl規範, 否則客戶端将拿到(dào)空報文,
  3. 那如何保證每次請求都能獲取到(dào)對應的(de)wsdl進行解析呢? 我們的(de)規範是(shì)按照請求路徑匹配到(dào)對應的(de)wsdl的(de), 我們約束wsdl放置的(de)相對路徑必須與對應的(de)請求路徑一(yī / yì /yí)緻, 這(zhè)樣就(jiù)能确定他(tā)們的(de)一(yī / yì /yí)對一(yī / yì /yí)關系了(le/liǎo)
  4. 在(zài)outboud端可根據訪問路徑自動從遠端獲取wsdl, 可以(yǐ)不(bù)用把wsdl配置到(dào)本地(dì / de)

    比如wsdl放置路徑

    img

我們指定wsdl的(de)文件夾路徑爲(wéi / wèi) gateway.wsdlLocation=./wsdl , 則請求路徑爲(wéi / wèi)/rcs入訪測試wsdl/RcscustcollloanqueryService 能請求到(dào)RcscustcollloanqueryService服務

接入消息時(shí)一(yī / yì /yí)個(gè)端口支持不(bù)同報文格式的(de)請求, 如監聽9000端口, 可以(yǐ)用http json請求也(yě)可以(yǐ)用http xml或者webservice請求,或者透傳

  1. 注意同一(yī / yì /yí)端口不(bù)能支持不(bù)同協議, 比如http協議和(hé / huò)socket協議, 但支持不(bù)同報文格式
  2. 如下爲(wéi / wèi)配置示例

gateway_dynamic_contentType.yaml

  1. 接入時(shí)網關需要(yào / yāo)對Json和(hé / huò)webservice請求做區分, 這(zhè)裏依賴本地(dì / de)識别器和(hé / huò)匹配表達式确認當前請求的(de)報文格式, 并按照解析出(chū)的(de)報文格式對報文做解析
  2. 也(yě)支持xml格式解析或者透傳

透傳解析

  1. 适用于(yú)網關隻做報文轉發, 不(bù)做報文參數轉換 , 但是(shì)純粹透傳卻滿足不(bù)了(le/liǎo)路由等需求, 還是(shì)需要(yào / yāo)解析請求報文體的(de)某些字段的(de)情況
  2. 該功能可以(yǐ)理解爲(wéi / wèi)網關在(zài)接入接出(chū)報文完全透傳情況下, 在(zài)此基礎上(shàng)增加的(de)對請求報文做解包的(de)功能, 所以(yǐ)我們的(de)配置也(yě)是(shì)完全在(zài)透傳基礎上(shàng)增加了(le/liǎo)透傳解析的(de)配置.
  3. 對透傳報文進行解析的(de)時(shí)間發生在(zài)請求剛進入網關時(shí), 解析後的(de)報文信息會統一(yī / yì /yí)放入上(shàng)下文, 所以(yǐ)可以(yǐ)在(zài)任何地(dì / de)方獲取該解析信息, 解析信息可用于(yú)路由, 流控, 并發限制等等.
  4. 示例配置如下:

gateway_transparent_parser.yaml

Copyright © 屯昌單支科技有限公司 2019 all right reserved,powered by Gitbook聯系方式: wanglihang@mskj.com
修訂時(shí)間: 2019-09-03 17:48:17

results matching ""

    No results matching ""