带你读《Apache Dubbo微服务开发从入门到精通》—— 四、 Rest协议(8)

本文涉及的产品
Serverless 应用引擎 SAE,800核*时 1600GiB*时
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: 带你读《Apache Dubbo微服务开发从入门到精通》—— 四、 Rest协议(8)

《Apache Dubbo微服务开发从入门到精通》——通信协议—— 四、 Rest协议(7) https://developer.aliyun.com/article/1224560



17) 添加自定义的Filter、Interceptor

 

Dubbo的REST也支持JAX-RS标准的Filter和Interceptor,以方便对REST的请求与响应过程做定制化的拦截处理。

 

其中,Filter主要用于访问和设置HTTP请求和响应的参数、URI等等。例如,设置HTTP响应的cache header:

 

image.png

 

Interceptor主要用于访问和修改输入与输出字节流,例如,手动添加GZIP压缩

 

image.png

 

在标准JAX-RS应用中,我们一般是为Filter和Interceptor添加@Provider annotation,然后JAX-RS runtime会自动发现并启用它们。而在dubbo中,我们是通过添加XML配置的方式来注册Filter和Interceptor:

 

image.png

 

在此,我们可以将Filter、Interceptor和DynamicFeature这三种类型的对象都添加到extension属性上,多个之间用逗号分隔。(DynamicFeature是另一个接口,可以方便我们更动态的启用Filter和Interceptor,感兴趣请自行google。)

 

当然,dubbo自身也支持Filter的概念,但我们这里讨论的Filter和Interceptor更加接近协议实现的底层,相比dubbo的filter,可以做更底层的定制化。

 

注:

这里的XML属性叫extension,而不是叫interceptor或者filter,是因为除了Interceptor和Filter,未来我们还会添加更多的扩展类型。

 

如果REST的消费端也是dubbo系统(参见下文的讨论),则也可以用类似方式为消费端配置Interceptor和Filter。但注意,JAX-RS中消费端的Filter和提供端的Filter是两种不同的接口。例如前面例子中服务端是ContainerResponseFilter接口,而消费端对应的是ClientResponseFilter

 

image.png

 

《Apache Dubbo微服务开发从入门到精通》——通信协议—— 四、 Rest协议(9) https://developer.aliyun.com/article/1224558

相关文章
|
1天前
|
监控 Kubernetes 持续交付
后端开发中的微服务架构:原理、优势与实践
本文深入探讨了在现代后端开发中,微服务架构如何成为提升系统可维护性、扩展性和敏捷性的关键技术。文章首先定义了微服务并解释了其核心原理,随后通过数据和案例分析,展示了微服务架构如何优化开发流程和提高系统性能。最后,文中提供了实施微服务架构的实用建议,旨在帮助开发者更好地理解和应用这一架构模式。
|
6天前
|
JSON Java 程序员
马程序员2024最新SpringCloud微服务开发与实战 个人学习心得、踩坑、与bug记录Day1最快 最全(2)
马程序员2024最新SpringCloud微服务开发与实战 个人学习心得、踩坑、与bug记录Day1最快 最全(2)
13 3
|
9天前
|
设计模式 运维 监控
深入理解后端开发中的微服务架构
【6月更文挑战第23天】本文旨在探索微服务架构在后端开发中的应用及其带来的变革。通过分析微服务的核心原则、设计模式以及与传统单体架构的对比,揭示微服务如何优化开发流程、提升系统的可扩展性与可维护性。文章还将讨论实施微服务时可能遇到的挑战和解决策略,为后端开发者提供实践指南。
|
6天前
|
消息中间件 负载均衡 持续交付
探索后端开发:微服务架构的演进与实践
【6月更文挑战第25天】本文深入探讨了微服务架构的概念、发展以及在现代后端开发中的应用。我们将通过一个虚构案例,展示如何将传统的单体应用重构为基于微服务的架构,并讨论在此过程中遇到的挑战和解决方案。文章旨在为读者提供从理论到实践的全面指导,帮助理解微服务架构的优势及其在企业级系统中的应用。
|
6天前
|
缓存 负载均衡 算法
黑马程序员2024最新SpringCloud微服务开发与实战 个人学习心得、踩坑、与bug记录Day3 全网最全(2)
黑马程序员2024最新SpringCloud微服务开发与实战 个人学习心得、踩坑、与bug记录Day3 全网最全(2)
12 1
|
6天前
|
程序员 测试技术 Docker
黑马程序员2024最新SpringCloud微服务开发与实战 个人学习心得、踩坑、与bug记录Day3 全网最全(1)
黑马程序员2024最新SpringCloud微服务开发与实战 个人学习心得、踩坑、与bug记录Day3 全网最全(1)
16 1
|
6天前
|
SQL Java 程序员
马程序员2024最新SpringCloud微服务开发与实战 个人学习心得、踩坑、与bug记录Day1最快 最全(1)
马程序员2024最新SpringCloud微服务开发与实战 个人学习心得、踩坑、与bug记录Day1最快 最全(1)
13 1
|
12天前
|
开发框架 移动开发 JavaScript
SpringCloud微服务实战——搭建企业级开发框架(四十七):【移动开发】整合uni-app搭建移动端快速开发框架-添加Axios并实现登录功能
在uni-app中,使用axios实现网络请求和登录功能涉及以下几个关键步骤: 1. **安装axios和axios-auth-refresh**: 在项目的`package.json`中添加axios和axios-auth-refresh依赖,可以通过HBuilderX的终端窗口运行`yarn add axios axios-auth-refresh`命令来安装。 2. **配置自定义常量**: 创建`project.config.js`文件,配置全局常量,如API基础URL、TenantId、APP_CLIENT_ID和APP_CLIENT_SECRET等。
|
1天前
|
Kubernetes 监控 API
深入理解微服务架构及其在现代后端开发中的应用
随着云计算和容器技术的飞速发展,微服务架构已成为现代后端开发中的一项关键技术。本文将深入探讨微服务的设计理念、优势与挑战,并基于最新的行业数据和案例分析,揭示微服务如何优化后端系统的性能和可维护性。通过引用权威研究和技术报告,我们将展示微服务架构在处理复杂业务逻辑、提高开发效率以及增强系统的可扩展性和容错能力方面的实际效益。
12 0
|
4天前
|
设计模式 监控 测试技术
后端开发中的微服务架构:优势、挑战与实践策略
在现代软件开发领域,微服务架构已成为一种重要的设计范式,特别是在后端系统中。本文旨在深入探讨微服务架构的核心优势、面临的主要挑战以及实施该架构的策略。通过引用最新的研究成果和行业案例,文章将提供对微服务架构实际应用的深刻见解,并指导开发者如何有效地采用和优化微服务架构以提升系统性能和可维护性。

热门文章

最新文章

推荐镜像

更多