[ ]
宙飒天下网-ZhouSa.com 各协议场景下的网关yaml配置
纯socket透传
网关只做转发, 路由规则依赖自己配置接入端口到接出地址的映射规则
gateway_test_socket_transpanrent.yaml
http透传
针对http协议的交互, 可以根据http协议的请求行和请求头做配置转发规则,期间网关不对Http协议报文体做读写操作
接入接出都是httpjson
接出协议为ssl
该示例接入报文格式为json, 接出报文格式为xml, 且接出时应用ssl协议, 注意该json报文必须有一个根节点, 才能与xml协议转换, 不然报错,默认ssl单向认证
接入接出都为https协议
只允许配置一个keystore, 所以这个keystore要包含信任证书列表和自己的私钥, keystore内容不能是字符串格式, 需要二进制格式
接入webservice, 接出json, wsdl在本地配置
注意以下几点
- wsdl路径配置在config.properties中,格式为 gateway.wsdlLocation='' 表示全局有效
- json服务返回的报文必须符合该wsdl规范, 否则客户端将拿到空报文,
- 那如何保证每次请求都能获取到对应的wsdl进行解析呢? 我们的规范是按照请求路径匹配到对应的wsdl的, 我们约束wsdl放置的相对路径必须与对应的请求路径一致, 这样就能确定他们的一对一关系了
在outboud端可根据访问路径自动从远端获取wsdl, 可以不用把wsdl配置到本地
比如wsdl放置路径
我们指定wsdl的文件夹路径为 gateway.wsdlLocation=./wsdl , 则请求路径为/rcs入访测试wsdl/RcscustcollloanqueryService 能请求到RcscustcollloanqueryService服务
接入消息时一个端口支持不同报文格式的请求, 如监听9000端口, 可以用http json请求也可以用http xml或者webservice请求,或者透传
- 注意同一端口不能支持不同协议, 比如http协议和socket协议, 但支持不同报文格式
- 如下为配置示例
gateway_dynamic_contentType.yaml
- 接入时网关需要对Json和webservice请求做区分, 这里依赖本地识别器和匹配表达式确认当前请求的报文格式, 并按照解析出的报文格式对报文做解析
- 也支持xml格式解析或者透传
透传解析
- 适用于网关只做报文转发, 不做报文参数转换 , 但是纯粹透传却满足不了路由等需求, 还是需要解析请求报文体的某些字段的情况
- 该功能可以理解为网关在接入接出报文完全透传情况下, 在此基础上增加的对请求报文做解包的功能, 所以我们的配置也是完全在透传基础上增加了透传解析的配置.
- 对透传报文进行解析的时间发生在请求刚进入网关时, 解析后的报文信息会统一放入上下文, 所以可以在任何地方获取该解析信息, 解析信息可用于路由, 流控, 并发限制等等.
- 示例配置如下:
还没有评论,来说两句吧...