带你读《Apache Tomcat的云原生演进》——Dubbo Echo System-Dubbo Go Pixiu(1)

本文涉及的产品
性能测试 PTS,5000VUM额度
应用实时监控服务-可观测链路OpenTelemetry版,每月50GB免费额度
可观测监控 Prometheus 版,每月50GB免费额度
简介: 带你读《Apache Tomcat的云原生演进》——Dubbo Echo System-Dubbo Go Pixiu(1)

Dubbo Echo System-Dubbo Go Pixiu

1. 关于Pixiu

 

image.png

 

Dubbo-Go-Pixiu是一个基于Dubbo-Go的云原生、高性能、可扩展的微服务API网关,它可以帮助我们轻松地对外暴露Dubbo Server的服务,实现跨语言和跨框架的调用和集成。

 

2019年Pixiu项目提交了第一行代码,同时,开始实现Http to Dubbo的代理。在Dubbo Go社区的支持下,Pixiu进入Apache,开启了新的历程。2022年发布了v0.5.0版本,这个版本发布之后,意味着Pixiu在Dubbo代理层面功能基本完善。2023年我们实现了更多Dubbo协议之间的互相转换,在配置、安全性、可扩展性以及可观测性上有了很多的改进。

 

image.png 

 

那么Pixiu可以做什么呢?

 

作为一个API gateway,它支持Http/Https协议的代理。

支持Dubbo2/Triple协议的代理。

支持Dubbo Java/Golang 的接口级/应用级服务发现。

支持路由/鉴权/限流。

支持基于Wasm的插件机制等。

 

image.png


上图是Pixiu的架构图, 我们以Http2Dubbo的场景为例,左侧是Client,这个Client发出一个Http请求,经过Pixiu最终到达上游的Dubbo应用,然后把响应返回给调用方。Client的一个HTTP请求发出之后会首先到达Pixiu的Listener,也就是Pixiu的入口,它支持Http、Dubbo、Triple协议。

在这个请求进入到Listener之后会到达Router,找到对应的上游机群,这样就可以发起一个对Dubbo应用的调用。这个Router除了静态配置之外,还支持基于注册中心的自动服务发现,在一个Dubbo应用启动后,Dubbo会把自己的元数据存放到这个注册中心。

 

Pixiu在启动时会用到一个模块叫Adpter,这个模块在启动之后会自动在注册中心中拉取对应的元数据,然后把这些元数据转化成Pixiu的Router中的多条路由,这样就可以避免非常多的手动配置。

 

在经过Router的负载均衡和健康检查之后,会到达一个Filter链,这个Filter链实现了很多较丰富的功能,比如有鉴权、日志、限流等等。最后会到达Clent的Filter,这个Filter会根据协议选择对应的Pixiu Client,比如现在的场景是HTTP2 Dubbo的,它就会自动选择一个可以进行Dubbo调用的Client。

 

这个Dubbo Client会去调用上游的Dubbo应用,最终把响应返回给发起HTTP调用的Client。当然,这个Client也支持Dubbo和Http,可以根据协议自动选择。


带你读《Apache Tomcat的云原生演进》——Dubbo Echo System-Dubbo Go Pixiu(2)https://developer.aliyun.com/article/1377516

相关文章
|
8天前
|
Dubbo 安全 应用服务中间件
Apache Dubbo 正式发布 HTTP/3 版本 RPC 协议,弱网效率提升 6 倍
在 Apache Dubbo 3.3.0 版本之后,官方推出了全新升级的 Triple X 协议,全面支持 HTTP/1、HTTP/2 和 HTTP/3 协议。本文将围绕 Triple 协议对 HTTP/3 的支持进行详细阐述,包括其设计目标、实际应用案例、性能测试结果以及源码架构分析等内容。
|
2月前
|
负载均衡 应用服务中间件 Apache
Tomcat负载均衡原理详解及配置Apache2.2.22+Tomcat7
Tomcat负载均衡原理详解及配置Apache2.2.22+Tomcat7
44 3
|
3月前
|
Dubbo 应用服务中间件 Apache
Star 4w+,Apache Dubbo 3.3 全新发布,Triple X 领衔,开启微服务通信新时代
在 Apache Dubbo 突破 4w Star 之际,Apache Dubbo 团队正式宣布,Dubbo 3.3 正式发布!作为全球领先的开源微服务框架,Dubbo 一直致力于为开发者提供高性能、可扩展且灵活的分布式服务解决方案。此次发布的 Dubbo 3.3,通过 Triple X 的全新升级,突破了以往局限,实现了对南北向与东西向流量的全面支持,并提升了对云原生架构的友好性。
145 8
|
4月前
|
Cloud Native JavaScript API
一文读懂云原生 go-zero 微服务框架
一文读懂云原生 go-zero 微服务框架
|
4月前
|
开发框架 Dubbo 应用服务中间件
微服务开发框架-----Apache Dubbo
这篇文章介绍了Apache Dubbo微服务开发框架,它提供RPC通信和微服务治理能力,支持服务发现、负载均衡和流量治理等功能,并强调了Dubbo在微服务规模化实践和企业级治理方面的优势。
微服务开发框架-----Apache Dubbo
|
4月前
|
Kubernetes Cloud Native Go
云原生之旅:构建和部署一个简单的Go应用程序
【8月更文挑战第31天】在本文中,我们将探索如何利用云原生技术构建和部署一个Go语言编写的简单Web应用。通过实际操作示例,我们不仅能够了解云原生的基本概念,还能学习到如何在Kubernetes集群上运行和管理容器化应用。文章将引导读者从零开始,逐步搭建起自己的云原生环境,并实现代码的容器化与自动化部署,最终达到持续交付的目的。
|
6月前
|
Java 应用服务中间件 Apache
安装和配置Apache Tomcat是部署Java Web应用程序的常见任务
安装和配置Apache Tomcat是部署Java Web应用程序的常见任务
151 7
|
7月前
|
Dubbo Cloud Native 应用服务中间件
【阿里云云原生专栏】云原生环境下的微服务治理:阿里云 Dubbo 与 Nacos 的深度整合
【5月更文挑战第25天】阿里云Dubbo和Nacos提供微服务治理的强大工具,整合后实现灵活高效的治理。Dubbo是高性能RPC框架,Nacos则负责服务发现和配置管理。整合示例显示,通过Nacos注册中心,服务能便捷注册发现,动态管理配置。简化部署,提升适应性,但也需注意服务稳定性和策略规划。这种整合为云原生环境的微服务架构带来强大支持,未来应用前景广阔。
291 2
|
7月前
|
分布式计算 Java Go
Golang深入浅出之-Go语言中的分布式计算框架Apache Beam
【5月更文挑战第6天】Apache Beam是一个统一的编程模型,适用于批处理和流处理,主要支持Java和Python,但也提供实验性的Go SDK。Go SDK的基本概念包括`PTransform`、`PCollection`和`Pipeline`。在使用中,需注意类型转换、窗口和触发器配置、资源管理和错误处理。尽管Go SDK文档有限,生态系统尚不成熟,且性能可能不高,但它仍为分布式计算提供了可移植的解决方案。通过理解和掌握Beam模型,开发者能编写高效的数据处理程序。
243 1
|
7月前
|
Kubernetes Cloud Native Go
Golang深入浅出之-Go语言中的云原生开发:Kubernetes与Docker
【5月更文挑战第5天】本文探讨了Go语言在云原生开发中的应用,特别是在Kubernetes和Docker中的使用。Docker利用Go语言的性能和跨平台能力编写Dockerfile和构建镜像。Kubernetes,主要由Go语言编写,提供了方便的客户端库与集群交互。文章列举了Dockerfile编写、Kubernetes资源定义和服务发现的常见问题及解决方案,并给出了Go语言构建Docker镜像和与Kubernetes交互的代码示例。通过掌握这些技巧,开发者能更高效地进行云原生应用开发。
193 1

推荐镜像

更多