当前位置: 首页 > news >正文

做视频网站的公司怎样做产品推广

做视频网站的公司,怎样做产品推广,wordpress标签搜索,dede网站建设org.apache.dubbo.rpc.Filter 核心功能 拦截RPC调用流程 Filter是Dubbo框架中实现拦截逻辑的核心接口,作用于服务消费者和提供者的作业链路,支持在方法调用前后插入自定义逻辑。如参数校验、异常处理、日志记录等。扩展性机制 Dubbo通过SPI扩展机制动态…

org.apache.dubbo.rpc.Filter

核心功能

  1. 拦截RPC调用流程
    Filter是Dubbo框架中实现拦截逻辑的核心接口,作用于服务消费者和提供者的作业链路,支持在方法调用前后插入自定义逻辑。如参数校验、异常处理、日志记录等。
  2. 扩展性机制
    Dubbo通过SPI扩展机制动态加载Filter实现类,构建链式调用结构,每个Filter通过Invoke方案传递调用上下文,最终执行目标方法。

实现机制

  1. 责任链模式
    Provider端Filter链在服务暴露时通过FilterChainBuilder#buildInvokerChain方法构建,基于SPI配置按优先级排序,形成多层拦截逻辑。
  2. SPI加载规则
    Filter实现类需要在META-INF/dubbo/internal/org.apache.dubbo.rpc.Filter文件中声明,并通过@Activate注解配置激活条件(如服务端/消费端)
  3. 动态加载
    Filter链在服务初始化阶段动态生成,通过ExtensionLoader加载所有激活的Filter实例,并按顺序包装成调用链。

常见内置Filter实现

Filter名称功能描述适用端
ExceptionFilter统一处理服务端异常,将非受检异常封装为RuntimeException返回客户端Provider
ValidationFilter基于JSR303标准校验接口参数合法性Both
AccessLogFilter记录服务调用日志,指定输出到指定文件Provider
TimeoutFilter监控方法执行超时,触发超时中断逻辑Provider
GenericFilter处理泛化调用的序列化与反序列化Both

自定义Filter实现步骤

  1. 实现Filter接口
import com.alibaba.fastjson2.JSON;
import org.apache.dubbo.common.constants.CommonConstants;
import org.apache.dubbo.common.extension.Activate;
import org.apache.dubbo.rpc.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;// 使用@Activate注解指定Filter生效场景
// order属性控制执行顺序,值越小,优先级越高
@Activate(group = {CommonConstants.CONSUMER, CommonConstants.PROVIDER}, order = 10001)
public class CustomFilter implements Filter {private Logger logger = LoggerFactory.getLogger(CustomFilter.class);@Overridepublic Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException {logger.info("invoker invoked method {} {} {} {}",invocation.getMethodName(),JSON.toJSONString(invocation.getObjectAttachments()),invocation.getAttributes(),JSON.toJSONString(invocation.getArguments()));Result result = invoker.invoke(invocation);logger.info("invoker invoked result {}", JSON.toJSONString(result));return result;}
}
  1. ‌声明SPI扩展‌
    在resources/META-INF/dubbo目录下创建配置文件org.apache.dubbo.rpc.Filter,添加自定义Filter类路径:
    consumer=com.doudou.demo.filter.CustomFilter

ValidationFilter

Dubbo的ValidationFilter是基于JSR303标准实现的参数校验组件,主要用于服务消费者和服务提供者两端,确保接口调用时参数的合法性。

核心特性

  1. 作用机制
    • 通过@Activate注解激活,默认作用于消费者和服务者两端,执行顺序为10000。
    • 在请求处理前拦截参数,利用JSR303标准的注解进行校验,校验失败时抛出异常中断流程。
  2. 依赖配置
    • 需要引入validation-apihibernate-validator依赖包
      <dependency><groupId>javax.validation</groupId><artifactId>validation-api</artifactId><version>2.0.1.Final</version>
      </dependency>
      <dependency><groupId>org.hibernate.validator</groupId><artifactId>hibernate-validator</artifactId><version>6.2.0.Final</version>
      </dependency>
      

使用

@Setter
@Getter
public class ValidateUserInfo implements Serializable {private static final long serialVersionUID = 1558193327511325424L;// 添加了 @NotBlank 注解   @NotBlank(message = "id 不能为空")private String id;// 添加了 @Length 注解    @Length(min = 5, max = 10, message = "name 必须在 5~10 个长度之间")private String name;private String sex;
}
@DubboReference(validation = "jvalidation") 
private ValidationFacade validationFacade;
@DubboService(validation = "jvalidation")
public class ValidationFacadeImpl implements ValidationFacade {}
http://www.dtcms.com/a/497630.html

相关文章:

  • 企业网站的建立费用 作什么科目一级A做爰片安全网站
  • 手机网站开发怎么样王野天明星
  • 河南网站推广优化公司哪家好建设一个交易网站要用多少钱
  • 网站设置不能通过链接访问南京汽车集团网站建设
  • 东莞建网站哪家好2022可以用手机看的
  • 阜阳做网站多少钱越秀金融大厦属于哪个街道
  • 网站建设四个阶段的流程深夜18款免费软件app下载
  • 找人做网站注意事项vr 网站怎么做的
  • 网站建设首选九零后网络网站建设做什么好
  • 西安西工大软件园做网站的公司网站 建设公司
  • 广西住房和城乡建设厅网站主页网站维护升级访问中
  • 上海做家教去哪个网站网站开发图片存哪里
  • 做网站除了有服务器还需要什么软件大石桥网站
  • frp做网站网站导航条代码
  • 厚街做网站的公司ssh私钥 Wordpress
  • 苏州企业网站设计企业做游戏网站用什么系统做
  • 网站主题及风格世界贸易网
  • 网页与网站设计 什么是属性软件开发 网站建设 游戏开发
  • 网站建设与管理ppt系统开发需要的技术
  • 公司网站设计怎么做dw制作模板
  • 深圳的网站建设专业建站公司建站系统
  • 一个网站交互怎么做的南通做外贸网站
  • 网站建设中企动力优网站推广官方平台
  • 发新闻稿做新闻源对网站有啥帮助企业网站制作 深圳
  • 做门户网站需要学什么软件海南网站建设推荐
  • 官方建设网站重庆市造价信息网
  • 好口碑的网站制作安装价格怎么用宝塔做网站
  • 网站空间地址官网网站搭建
  • 网站的建设方法包括建设银行甘肃兰州分行网站
  • 廉政建设网评文章网站中国最有名的网站建设公司