What's new in dubbo-go-pixiu 0.5.0
Dubbo-go-pixiu 是一款高性能 API 网关,支持 Dubbo 和 Http 等多种协议。具体介绍文章可以参考《Dubbo 跨语言调用神兽:dubbo-go-pixiu》( https://mp.weixin.qq.com/s/dok42ssPJqazjeSRYaifVw )。
继前一段发布 v0.4 ( https://mp.weixin.qq.com/s/dok42ssPJqazjeSRYaifVw )之后,近期社区发布了 0.5.0 版本 https://github.com/apache/dubbo-go-pixiu/releases/tag/v0.5.0-rc01 。本文只列出相关重大 feature、bugfix 、 性能提升项。
Dubbo2Triple/Triple2Dubbo/Dubbo2Http 代理
Triple 是 Dubbo v3.0 推出的新的更高性能的协议,Pixiu 添加了 triple 和 dubbo 协议的相互转换,可以在不修改旧的 Dubbo 协议的基础上完成 Dubbo v3.X 与 Dubbo v2.X 的混合/并存部署,以期逐步全面切换至 Triple。
为了接收 triple 协议请求,pixiu 引入了 triple_listener,它使用 triple 的 server proxy 功能,可以接受任意的 triple 请求,然后同样交给 dgp.filter.dubbo.proxy 处理。同样的也可以交给 dgp.filter.dubbo.http 来将其转换为 http 请求。
为了能接收 dubbo 协议请求,pixiu 引入了 tcp_listener,它使用 getty,然后交给 dgp.filter.network.dubboconnectionmanager 来解序列化为 rpc_invocation 实例,也就是 dubbogo 中代表依次 rpc 请求的实例。
案例:https://github.com/apache/dubbo-go-pixiu/tree/develop/samples/dubbotripleproxy
Http to Triple 代理
此次版本,Pixiu 同样新增了以 http 的形式将 Dubbo v3.X 的新协议 Triple 暴露出去的能力,方便调试、作为网关/SideCar 代理 Triple 协议。原理如下图,经过简单配置即可使用。
案例:https://github.com/apache/dubbo-go-pixiu/tree/develop/samples/dubbogo/simple/triple
3.Http to Dubbo 默认转化协议
通过 Http 提供一个统一的服务提供者视图,用户不用在乎后端 Dubbo 服务的版本差异,协议差异,通过简单地在 Http 请求中传递 rpc 调用的参数,完成一次 Rpc 调用,通过实现 http 调用后端 dubbo 服务,进一步简化后端服务设计的复杂性。
默认转化协议请查看 原文。
4.支持 Jwt Auth 认证
Pixiu 新增支持 Jwt Auth 认证,案例:https://github.com/apache/dubbo-go-pixiu/tree/develop/samples/dubbogo/simple/jwt
HTTP to gRPC 支持 Reflection
在 http-to-gRPC 的场景,支持 gRPC Reflection,pixiu 不用加载 proto 文件,也可以正常代理 http to gRPC 的请求,前提是,gRPC 服务必须开启 Reflection,即在当前 gRPC 服务上注册服务器反射服务。
PR:https://github.com/apache/dubbo-go-pixiu/pull/315
Spring Cloud 代理支持 Zookepper
在 v.0.4.0 发布的 Spring Cloud 代理的基础上,新增了 Zookepper 作为注册中心的功能。
PR: https://github.com/apache/dubbo-go-pixiu/pull/367
7.Http/Https 监听器支持多个 CA 证书
Pixiu 新增 Http/Https 监听器同时支持多个 CA 证书。
PR: https://github.com/apache/dubbo-go-pixiu/pull/292
8.一系列增强与 Bugfix
路由使用字典树 PR:https://github.com/apache/dubbo-go-pixiu/pull/310
在容器中获得正确的 CPU 核数 PR:https://github.com/apache/dubbo-go-pixiu/pull/340
支持 https to grpc PR:https://github.com/apache/dubbo-go-pixiu/pull/315
对 Pixiu 过滤器链的重构 PR:https://github.com/apache/dubbo-go-pixiu/pull/307
更多内容,请查看 Pixiu 的 Github 页面(https://github.com/apache/dubbo-go-pixiu/releases)与官网(https://dubbo-go-pixiu.github.io/zh-cn/),也欢迎更多的有识之士加入我们。
如果对 dubbo-go 感兴趣,欢迎加入搜索钉钉群号 23331795【或者扫描如下二维码】钉钉群与社区进行交流。
作者:吕梦超,山西人,2019 年从洛阳理工学院毕业。目前就职于南京一家致力于搭建零售、消费的行业云服务提供商。
版权声明: 本文为 InfoQ 作者【apache/dubbo-go】的原创文章。
原文链接:【http://xie.infoq.cn/article/203d119c49f4b0a58880d298c】。文章转载请联系作者。
评论