微服务网关
文章插图
【Java原生API网关ShenYu】
数据交互示意图
文章插图
数据同步
文章插图
admin与网关进行数据同步 。
数据同步是指在 shenyu-admin 后台操作数据以后,使用何种策略将数据同步到 Apache ShenYu 网关 。Apache ShenYu 网关当前支持ZooKeeper、WebSocket、Http长轮询、Nacos 、Etcd 和 Consul 进行数据同步 。
admin配置文件
shenyu:register:registerType: nacos #http #zookeeper #etcd #nacos #consulserverLists: xxx.xxx.xxx.xxx:8848 #localhost:2181 #http://localhost:2379 #localhost:8848props:sessionTimeout: 5000connectionTimeout: 2000checked: truezombieCheckTimes: 5scheduledTime: 10nacosNameSpace: ShenyuRegisterCentersync:nacos:url: xxx.xxx.xxx.xxx:8848namespace: ShenyuRegisterCenter
网关配置spring:cloud:discovery:enabled: truenacos:discovery:server-addr: 10.21.2.101:8848 # Spring Cloud Alibaba Dubbo use this.enabled: truenamespace: ShenyuRegisterCentershenyu:sync:nacos:url: xxx.xxx.xxx.xxx:8848namespace: ShenyuRegisterCenteregisterCenter
客户端配置spring:cloud:discovery:enabled: truenacos:discovery:server-addr: 10.21.2.101:8848 # Spring Cloud Alibaba Dubbo use this.enabled: truenamespace: ShenyuRegisterCentershenyu:register:registerType: nacos #http #zookeeper #etcd #nacos #consulserverLists: 10.21.2.101:8848 #localhost:2181 #http://localhost:2379 #localhost:8848props:username: adminpassword: 123456nacosNameSpace: ShenyuRegisterCenterclient:springCloud:props:contextPath: /springcloud
应用客户端接入是指将微服务应用的接口信息同步到shenyu-admin,当前支持Http、 Dubbo、 Spring Cloud、 gRPC、 Motan、 Sofa、 Tars等微服务协议的接入 。应用客户端可以通过Http与admin直接注册;也支持已中间件过渡数据如Zookeeper、Etcd、Consul和Nacos,应用客户端和shenyu-admin通过中间件的数据监听实现数据的同步 。
功能清单
文章插图
插件集合HTTP
功能
contextpath
设置服务的上下文路径;在接口调用的时候插件统一给服务器的接口地址加上前缀
modifyResponse
对响应进行修改
paramMApping
请求参数进行修改
redirect
重定向请求
request
请求参数、请求头以及 Cookie 来添加、修改、移除请求头
rewrite
重写请求路径
代理
功能
divide
处理 http协议 请求
dubbo
dubbo插件是将 http协议 转换成 dubbo协议 的插件
SpringCloud插件
将http协议 转成 Spring Cloud协议
熔断限流sentinel插件是网关用来对流量进行限流与熔断的可选选择之一
安全
功能
cryptorRequest
插件是通过 fieldNames 去匹配 requestBody 里面的参数进行 解密 处理,替换当前 requestBody 内容
CryptorResponse
fieldNames 去匹配 responseBody 里面的参数进行 加密 处理,替换当前 fieldNames 对应内容
jwt 插件
jwt 插件,是针对 http 请求头的 token属性或者是 authorization 属性携带值进行鉴权判断,兼容 OAuth2.0
OAuth2
插件使用 Webflux OAuth2 实现,用于支持 OAuth 协议
Sign插件
用来对请求进行签名认证
可观察
- 请求日志记录插件
- Metrics插件插件是网关用来监控自身运行状态(JVM相关),请求的响应迟延,QPS、TPS等相关metrics
- API网关缺少服务注册的信息,按理说网关应该可以观测到当前应用的服务实例数;
- 依赖组件较多(如果整体平台技术选型为nacos,则可以接受)
- 客户端需要依赖thin sdk实现客户端注册服务接口信息到注册中心
- 客户端调用http 头需要新增rpc_type属性
推荐阅读
- 舌尖上的五指山:原生态美食 五指山美食
- java实现接口防刷
- 重生的 SDN?云原生网络功能介绍
- 一文教你如何通过 Stream API 批量 Mock 数据
- 垂柳嫁接的好-还是原生的好-?垂柳能嫁接什么树
- azure table Azure Directory API
- 快应用与原生APP相比,都有哪些优势?
- Java,Socket,实现Socket4代理服务器,客户端用Socket4代理请求
- JavaScript 框架大战已结束,赢家只有一个
- Java 同步工具与组合类的线程安全性分析