各协议场景下的网关yaml配置

纯socket透传

网关只做转发, 路由规则依赖自己配置接入端口到接出地址的映射规则

gateway_test_socket_transpanrent.yaml

http透传

针对http协议的交互, 可以根据http协议的请求行和请求头做配置转发规则,期间网关不对Http协议报文体做读写操作

gateway_http_transparent.yaml

接入接出都是httpjson

gateway_http_json.yaml

接出协议为ssl

该示例接入报文格式为json, 接出报文格式为xml, 且接出时应用ssl协议, 注意该json报文必须有一个根节点, 才能与xml协议转换, 不然报错,默认ssl单向认证

gateway_socket_ssl.yaml

接入接出都为https协议

只允许配置一个keystore, 所以这个keystore要包含信任证书列表和自己的私钥, keystore内容不能是字符串格式, 需要二进制格式

gateway-https.yaml

接入webservice, 接出json, wsdl在本地配置

gateway-webservice.yaml

注意以下几点

  1. wsdl路径配置在config.properties中,格式为 gateway.wsdlLocation='' 表示全局有效
  2. json服务返回的报文必须符合该wsdl规范, 否则客户端将拿到空报文,
  3. 那如何保证每次请求都能获取到对应的wsdl进行解析呢? 我们的规范是按照请求路径匹配到对应的wsdl的, 我们约束wsdl放置的相对路径必须与对应的请求路径一致, 这样就能确定他们的一对一关系了
  4. 在outboud端可根据访问路径自动从远端获取wsdl, 可以不用把wsdl配置到本地

    比如wsdl放置路径

    img

我们指定wsdl的文件夹路径为 gateway.wsdlLocation=./wsdl , 则请求路径为/rcs入访测试wsdl/RcscustcollloanqueryService 能请求到RcscustcollloanqueryService服务

接入消息时一个端口支持不同报文格式的请求, 如监听9000端口, 可以用http json请求也可以用http xml或者webservice请求,或者透传

  1. 注意同一端口不能支持不同协议, 比如http协议和socket协议, 但支持不同报文格式
  2. 如下为配置示例

gateway_dynamic_contentType.yaml

  1. 接入时网关需要对Json和webservice请求做区分, 这里依赖本地识别器和匹配表达式确认当前请求的报文格式, 并按照解析出的报文格式对报文做解析
  2. 也支持xml格式解析或者透传

透传解析

  1. 适用于网关只做报文转发, 不做报文参数转换 , 但是纯粹透传却满足不了路由等需求, 还是需要解析请求报文体的某些字段的情况
  2. 该功能可以理解为网关在接入接出报文完全透传情况下, 在此基础上增加的对请求报文做解包的功能, 所以我们的配置也是完全在透传基础上增加了透传解析的配置.
  3. 对透传报文进行解析的时间发生在请求刚进入网关时, 解析后的报文信息会统一放入上下文, 所以可以在任何地方获取该解析信息, 解析信息可用于路由, 流控, 并发限制等等.
  4. 示例配置如下:

gateway_transparent_parser.yaml

Copyright © 民生科技有限公司 2019 all right reserved,powered by Gitbook联系方式: wanglihang@mskj.com
修订时间: 2019-09-03 17:48:17

results matching ""

    No results matching ""