欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

dubbo3 filter(過濾器)如何自定義過濾器

 更新時間:2025年03月06日 14:28:36   作者:帥氣的人123  
dubbo3filter(過濾器)類似于javaweb中的filter和springmvc中的intercaptor,用于在請求發(fā)送前或到達前進行預(yù)處理工作,完成限流和監(jiān)控,在dubbo中,過濾器運行在consumer和provider兩端,分別在調(diào)用鏈中執(zhí)行

dubbo3 filter(過濾器)

簡介

  1. 類似于 java web 中的 filter
  2. 也和 spring mvc 中的 intercaptor
  3. 在請求的發(fā)送后或者是請求到達前集中的做一些預(yù)處理工作
  4. 在 dubbo 中也會通過過濾器來完成限流和監(jiān)控的工作

dubbo 過濾器運行時機

consumer 在調(diào)用的時候負載均衡已經(jīng)選擇了一個具體的實例進行調(diào)用,那么會依次執(zhí)行 conusmer 端端調(diào)用鏈(調(diào)用鏈是 filter),然后到達 provider ,會繼續(xù)執(zhí)行 provider 的調(diào)用鏈(這里是 filter),完成響應(yīng)的時候也會依次調(diào)用這些鏈

自定義 filter

在 dubbo 中自定義 filter 可以有兩種方式。

第一種 @Active 注解激活

在項目目錄下面創(chuàng)建文件夾 META-INF/dubbo 下面創(chuàng)建 filter 的權(quán)限定類名,(org.apache.dubbo.rpc.Filter),然后在文件內(nèi)部寫入我們的注冊信息,名字=自定義 filter 的權(quán)限定類名,注冊成功以后需要激活我們的配置,@Activate(group = CommonConstants.PROVIDER)

myProviderFilter=com.rpc.dubbo.provider.filter.MyProviderFilter

代碼:

package com.rpc.dubbo.provider.filter;

import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.common.constants.CommonConstants;
import org.apache.dubbo.common.extension.Activate;
import org.apache.dubbo.rpc.*;

/**
 * @author xl-9527
 * @since 2025/1/11
 **/
@Slf4j
@Activate(group = CommonConstants.PROVIDER) // active 中 group 的設(shè)置是表示他運行在 consumer 還是 provider 端,這是必須要要配置的
public class MyProviderFilter implements Filter {

    /**
     * @param invoker    實際這次的調(diào)用
     * @param invocation 本次調(diào)用的參數(shù)
     * @return 調(diào)用結(jié)果,這里的調(diào)用結(jié)果是從 provider 端調(diào)用過來的
     */
    @Override
    public Result invoke(final Invoker<?> invoker, final Invocation invocation) throws RpcException {
        System.out.println("invoker.getUrl() = " + invoker.getUrl());
        System.out.println("invocation.getMethodName() = " + invocation.getMethodName());
        System.out.println("invocation.getServiceModel().getServiceName() = " + invocation.getServiceModel().getServiceName());
        log.info("MyProviderFilter invoke");
        return invoker.invoke(invocation);
    }
}

第二種使用 @DubboService(filter=“key”)

這種方式需要直接在 service 中配置我們在 SPI 中設(shè)置的 key

例如我們剛剛設(shè)置的 myProviderFilter(這里的源碼服用了第一種里面的)

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java如何比較兩個任意文件是否相同

    Java如何比較兩個任意文件是否相同

    這篇文章主要為大家詳細介紹了Java如何實現(xiàn)比較兩個任意文件是否相同,文中的示例代碼簡潔易懂,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-04-04
  • 解決Callable的對象中,用@Autowired注入別的對象失敗問題

    解決Callable的對象中,用@Autowired注入別的對象失敗問題

    這篇文章主要介紹了解決Callable的對象中,用@Autowired注入別的對象失敗問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • MyBatis中映射文件的使用案例代碼

    MyBatis中映射文件的使用案例代碼

    這篇文章主要介紹了MyBatis中映射文件的使用,本文結(jié)合實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-02-02
  • 一篇文章帶你入門Java數(shù)據(jù)結(jié)構(gòu)

    一篇文章帶你入門Java數(shù)據(jù)結(jié)構(gòu)

    這篇文章主要介紹了Java常見數(shù)據(jù)結(jié)構(gòu)面試題,帶有答案及解釋,希望對廣大的程序愛好者有所幫助,同時祝大家有一個好成績,需要的朋友可以參考下,希望可以幫助到你
    2021-08-08
  • SpringBoot實現(xiàn)返回值數(shù)據(jù)脫敏的步驟詳解

    SpringBoot實現(xiàn)返回值數(shù)據(jù)脫敏的步驟詳解

    這篇文章主要給大家介紹一下SpringBoot實現(xiàn)返回值數(shù)據(jù)脫敏的步驟,文章通過代碼示例介紹的非常詳細,具有一定的參考價值,需要的朋友可以參考下
    2023-07-07
  • Springboot?手動分頁查詢分批批量插入數(shù)據(jù)的實現(xiàn)流程

    Springboot?手動分頁查詢分批批量插入數(shù)據(jù)的實現(xiàn)流程

    這篇文章主要介紹了Springboot?手動分頁查詢分批批量插入數(shù)據(jù)的實現(xiàn)流程,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07
  • java代碼實現(xiàn)斗地主發(fā)牌功能

    java代碼實現(xiàn)斗地主發(fā)牌功能

    這篇文章主要介紹了java實現(xiàn)斗地主發(fā)牌功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • JavaWeb 入門:Hello Servlet

    JavaWeb 入門:Hello Servlet

    這篇文章主要介紹了Servlet開發(fā)JavaWeb工程示例詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-07-07
  • lombok插件無法使用的原因及解決方案

    lombok插件無法使用的原因及解決方案

    這篇文章主要介紹了lombok插件無法使用的原因及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • Spring聲明式事務(wù)配置使用詳解

    Spring聲明式事務(wù)配置使用詳解

    這篇文章主要介紹了在spring注解中,使用聲明式事務(wù),需要用到兩個核心的注解:@Transactional注解和@EnableTransactionManagement注解。將@Transactional注解加在方法上,@EnableTransactionManagement注解加在配置類上
    2022-08-08

最新評論