带你读《Apache Dubbo微服务开发从入门到精通》——三、 网关(1)

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 带你读《Apache Dubbo微服务开发从入门到精通》——三、 网关(1)


三、 网关

 

1. Apache APISIX

 

1) 背景

 

Apache Dubbo是由阿里巴巴开源并捐赠给Apache的微服务开发框架,它提供了RPC通信与微服务治理两大关键能力。不仅经过了阿里电商场景中海量流量的验证,也在国内的技术公司中被广泛落地。

 

在实际应用场景中,Apache Dubbo一般会作为后端系统间RPC调用的实现框架,当需要提供HTTP接口给到前端时,会通过一个「胶水层」将Dubbo Service包装成HTTP接口,再交付到前端系统。

 

Apache APISIX是Apache软件基金会的顶级开源项目,也是当前最活跃的开源网关项目。作为一个动态、实时、高性能的开源API网关,Apache APISIX提供了负载均衡、动态上游、灰度发布、服务熔断、身份认证、可观测性等丰富的流量管理功能。

 

得益于Apache Dubbo的应用场景优势,Apache APISIX基于开源项目tengine/mod_dubbo模块为Apache Dubbo服务配备了HTTP网关能力。通过dubbo-proxy插件,可以轻松地将Dubbo Service发布为HTTP服务。

 

image.png

 

2) 如何使用

 

a) 入门篇:安装使用

 

注:

这里我们建议使用 Apache APISIX 2.11版本镜像进行安装。该版本的APISIX-Base中已默认编译了Dubbo模块,可直接使用dubbo-proxy插件。

 

在接下来的操作中,我们将使用dubbo-samples项目进行部分展示。该项目是一些使用Apache Dubbo实现的Demo应用,本文中我们采用其中的一个子模块作为Dubbo Provider。

 

在进入正式操作前,我们先简单看下Dubbo接口的定义、配置以及相关实现。

 

接口实现一览

 

image.png

 

如上所示,Dubbo接口的定义是固定的。即方法参数中Map表示APISIX传递给Dubbo Provider关于HTTP request的一些信息(如:header、body...)。而方法返回值的Map表示Dubbo Provider传递给APISIX要如何返回HTTP response的一些信息。

 

接口信息配置好之后可通过XML配置方式发布DemoService。

 

image.png

 

通过上述配置后,Consumer可通过org.apache.dubbo.samples.apisix.DemoService访问其中的apisixDubbo方法。具体接口实现如下:

 

image.png

 

上述代码中,DemoServiceImpl会打印接收到的httpRequestContext,并通过返回包含有指定Key的Map对象去描述该Dubbo请求的HTTP响应。

 

操作步骤

 

启动dubbo-samples。

在config.yaml文件中进行dubbo-proxy插件启用。

 

image.png

 

创建指向Dubbo Provider的Upstream。

 

image.png

 

为DemoService暴露一个HTTP路由。

 

image.png

 

使用curl命令请求Apache APISIX,并查看返回结果。

 

image.png

 

注:

上述代码返回中包含了test123 Header,以及dubbo success字符串作为Body体。这与我们在DemoServiceImpl编码的预期效果一致。

 

查看Dubbo Provider的日志。

 

image.png

 

注:

通过httpRequestContext可以拿到HTTP请求的Header和Body。其中Header会作为Map元素,而Body中Key值是固定的字符串“body”,Value则代表Byte数组。

 


 《Apache Dubbo微服务开发从入门到精通》——服务治理与生态——三、 网关(2) :https://developer.aliyun.com/article/1223992

 


 

 


 


相关文章
|
23天前
|
API 数据库 开发者
构建高效可靠的微服务架构:后端开发的新范式
【4月更文挑战第8天】 随着现代软件开发的复杂性日益增加,传统的单体应用架构面临着可扩展性、维护性和敏捷性的挑战。为了解决这些问题,微服务架构应运而生,并迅速成为后端开发领域的一股清流。本文将深入探讨微服务架构的设计原则、实施策略及其带来的优势与挑战,为后端开发者提供一种全新视角,以实现更加灵活、高效和稳定的系统构建。
23 0
|
2月前
|
负载均衡 测试技术 持续交付
高效后端开发实践:构建可扩展的微服务架构
在当今快速发展的互联网时代,后端开发扮演着至关重要的角色。本文将重点探讨如何构建可扩展的微服务架构,以及在后端开发中提高效率的一些实践方法。通过合理的架构设计和技术选型,我们可以更好地应对日益复杂的业务需求,实现高效可靠的后端系统。
|
2月前
|
监控 Kubernetes 持续交付
构建高效可扩展的微服务架构:后端开发实践指南
在数字化转型的浪潮中,企业对软件系统的要求日益提高,追求快速响应市场变化、持续交付价值成为核心竞争力。微服务架构以其灵活性、模块化和独立部署的特点,成为解决复杂系统问题的有效途径。本文将深入探讨如何构建一个高效且可扩展的微服务架构,涵盖关键设计原则、技术选型及实践案例,为后端开发者提供一条清晰的指导路线,帮助其在不断变化的技术环境中保持竞争力。
136 3
|
11天前
|
消息中间件 监控 持续交付
构建高效微服务架构:后端开发的进阶之路
【4月更文挑战第20天】 随着现代软件开发的复杂性日益增加,传统的单体应用已难以满足快速迭代和灵活部署的需求。微服务架构作为一种新兴的分布式系统设计方式,以其独立部署、易于扩展和维护的特点,成为解决这一问题的关键。本文将深入探讨微服务的核心概念、设计原则以及在后端开发实践中如何构建一个高效的微服务架构。我们将从服务划分、通信机制、数据一致性、服务发现与注册等方面入手,提供一系列实用的策略和建议,帮助开发者优化后端系统的性能和可维护性。
|
2月前
|
监控 Java 开发者
构建高效微服务架构:后端开发的新范式
在数字化转型的浪潮中,微服务架构以其灵活性、可扩展性和容错性成为企业技术战略的关键组成部分。本文深入探讨了微服务的核心概念,包括其设计原则、技术栈选择以及与容器化和编排技术的融合。通过实际案例分析,展示了如何利用微服务架构提升系统性能,实现快速迭代部署,并通过服务的解耦来提高整体系统的可靠性。
|
2月前
|
监控 数据管理 API
构建高效微服务架构:后端开发的新趋势
在现代软件开发领域,随着业务需求的不断复杂化以及敏捷迭代的加速,传统的单体应用架构逐渐暴露出其局限性。微服务架构作为一种新的解决方案,以其高度模块化、独立部署和可扩展性,正成为后端开发领域的新趋势。本文将探讨微服务架构的核心概念,分析其优势与面临的挑战,并提供实施高效微服务的策略和最佳实践,帮助读者理解如何利用这一架构模式提升系统的可靠性、灵活性和可维护性。
138 5
|
2月前
|
人工智能 运维 监控
构建高性能微服务架构:现代后端开发的挑战与策略构建高效自动化运维系统的关键策略
【2月更文挑战第30天】 随着企业应用的复杂性增加,传统的单体应用架构已经难以满足快速迭代和高可用性的需求。微服务架构作为解决方案,以其服务的细粒度、独立性和弹性而受到青睐。本文将深入探讨如何构建一个高性能的微服务系统,包括关键的设计原则、常用的技术栈选择以及性能优化的最佳实践。我们将分析微服务在处理分布式事务、数据一致性以及服务发现等方面的挑战,并提出相应的解决策略。通过实例分析和案例研究,我们的目标是为后端开发人员提供一套实用的指南,帮助他们构建出既能快速响应市场变化,又能保持高效率和稳定性的微服务系统。 【2月更文挑战第30天】随着信息技术的飞速发展,企业对于信息系统的稳定性和效率要求
|
1天前
|
API 开发者 UED
构建高效微服务架构:后端开发的新趋势移动应用与系统:开发与优化的艺术
【4月更文挑战第30天】 随着现代软件系统对可伸缩性、灵活性和敏捷性的日益需求,传统的单体应用架构正逐渐向微服务架构转变。本文将探讨微服务架构的核心概念,分析其优势,并着重讨论如何利用最新的后端技术栈实现一个高效的微服务系统。我们将涵盖设计模式、服务划分、数据一致性、服务发现与注册、API网关以及容器化等关键技术点,为后端开发者提供一份实操指南。 【4月更文挑战第30天】 在数字化时代的浪潮中,移动应用和操作系统的紧密交织已成为日常生活和商业活动的基石。本文将深入探讨移动应用开发的关键技术、跨平台开发工具的选择以及移动操作系统的架构和性能优化策略。通过分析当前移动应用开发的挑战与机遇,我们将
|
7天前
|
持续交付 API 开发者
构建高效微服务架构:后端开发的新范式
【4月更文挑战第24天】 随着现代软件系统的复杂性日益增加,传统的单体应用已难以满足快速迭代与灵活扩展的需求。微服务架构作为一种新兴的软件开发模式,以其服务的细粒度、独立部署和弹性伸缩等优势,正在逐渐成为后端开发的重要趋势。本文将深入探讨微服务架构的设计原则、关键技术以及在实际业务中的应用实践,旨在为后端开发者提供构建和维护高效微服务架构的参考指南。
|
8天前
|
消息中间件 运维 监控
构建高性能微服务架构:后端开发的实践指南
【4月更文挑战第23天】 在当今互联网应用的快速迭代与海量用户访问的背景下,传统的单体应用架构逐渐显露出其扩展性与维护上的局限性。微服务架构作为一种解决方案,以其服务的细粒度、独立性和弹性等特性,被广泛认为是提升系统可维护性和扩展性的有效途径。本文将深入探讨如何构建一个高性能的微服务架构,从基础理论到具体实践,为后端开发者提供一套系统的指导方案。我们将涵盖微服务设计原则、技术选型、性能优化、以及监控与故障处理等关键话题。

推荐镜像

更多