最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

dubbo3 filter(過(guò)濾器)

簡(jiǎn)介

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

dubbo 過(guò)濾器運(yùn)行時(shí)機(jī)

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

自定義 filter

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

第一種 @Active 注解激活

在項(xiàng)目目錄下面創(chuàng)建文件夾 META-INF/dubbo 下面創(chuàng)建 filter 的權(quán)限定類名,(org.apache.dubbo.rpc.Filter),然后在文件內(nèi)部寫入我們的注冊(cè)信息,名字=自定義 filter 的權(quán)限定類名,注冊(cè)成功以后需要激活我們的配置,@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è)置是表示他運(yùn)行在 consumer 還是 provider 端,這是必須要要配置的
public class MyProviderFilter implements Filter {

    /**
     * @param invoker    實(shí)際這次的調(diào)用
     * @param invocation 本次調(diào)用的參數(shù)
     * @return 調(diào)用結(jié)果,這里的調(diào)用結(jié)果是從 provider 端調(diào)用過(guò)來(lái)的
     */
    @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 中配置我們?cè)?SPI 中設(shè)置的 key

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

總結(jié)

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

相關(guān)文章

  • Gradle構(gòu)建基本的Web項(xiàng)目結(jié)構(gòu)

    Gradle構(gòu)建基本的Web項(xiàng)目結(jié)構(gòu)

    這篇文章主要為大家介紹了Gradle創(chuàng)建Web項(xiàng)目基本的框架結(jié)構(gòu)搭建,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-03-03
  • 詳解Java中的final關(guān)鍵字

    詳解Java中的final關(guān)鍵字

    子類可以在父類的基礎(chǔ)上改寫父類內(nèi)容,為了避免這種隨意改寫的情況,Java提供了final 關(guān)鍵字,用于修飾不可改變內(nèi)容。本文就來(lái)詳細(xì)說(shuō)說(shuō)final關(guān)鍵字的使用,需要的可以參考一下
    2022-10-10
  • 解決執(zhí)行maven命令時(shí)提示Process terminated的問(wèn)題

    解決執(zhí)行maven命令時(shí)提示Process terminated的問(wèn)題

    這篇文章主要介紹了解決執(zhí)行maven命令時(shí)提示Process terminated的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-09-09
  • spring-data-jpa使用自定義repository來(lái)實(shí)現(xiàn)原生sql

    spring-data-jpa使用自定義repository來(lái)實(shí)現(xiàn)原生sql

    這篇文章主要介紹了在spring-data-jpa中使用自定義repository來(lái)實(shí)現(xiàn)原生sql,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • springboot整合xxl-job的示例代碼

    springboot整合xxl-job的示例代碼

    這篇文章主要介紹了springboot整合xxl-job的示例代碼,主要分為三大模塊,分別是調(diào)度中心、執(zhí)行器和配置定時(shí)任務(wù)的過(guò)程,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • Java Web過(guò)濾器詳解

    Java Web過(guò)濾器詳解

    這篇文章主要為大家詳細(xì)介紹了Java WEB過(guò)濾器的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • 舉例解析Java多線程編程中需要注意的一些關(guān)鍵點(diǎn)

    舉例解析Java多線程編程中需要注意的一些關(guān)鍵點(diǎn)

    這篇文章主要介紹了Java多線程編程中需要注意的一些關(guān)鍵點(diǎn),包括ThreadLocal變量與原子更新等一些深層次的內(nèi)容,需要的朋友可以參考下
    2015-11-11
  • JAVA 多態(tài) 由淺及深介紹

    JAVA 多態(tài) 由淺及深介紹

    JAVA 多態(tài) 由淺及深介紹,什么是多態(tài)?多態(tài)的詳細(xì)解釋,多態(tài)的好處,多態(tài)的實(shí)際運(yùn)用等
    2013-03-03
  • SpringBoot在自定義類中調(diào)用service層mapper層方式

    SpringBoot在自定義類中調(diào)用service層mapper層方式

    這篇文章主要介紹了SpringBoot在自定義類中調(diào)用service層mapper層方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • java實(shí)現(xiàn)簡(jiǎn)單的學(xué)生信息管理系統(tǒng)代碼實(shí)例

    java實(shí)現(xiàn)簡(jiǎn)單的學(xué)生信息管理系統(tǒng)代碼實(shí)例

    這篇文章主要介紹了java實(shí)現(xiàn)簡(jiǎn)單的學(xué)生信息管理系統(tǒng),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04

最新評(píng)論

宁海县| 临桂县| 策勒县| 本溪市| 轮台县| 浙江省| 常山县| 白河县| 柳林县| 洛隆县| 工布江达县| 遂昌县| 汾西县| 外汇| 桐庐县| 大埔区| 靖边县| 马公市| 高雄市| 乐清市| 同仁县| 沈丘县| 延安市| 甘肃省| 石首市| 清流县| 博白县| 库伦旗| 克山县| 石楼县| 阳高县| 遵化市| 乌海市| 格尔木市| 巩义市| 麻江县| 油尖旺区| 澳门| 曲靖市| 都昌县| 瓦房店市|