dubbo
来源:互联网 发布:网络电话回拨软件 编辑:程序博客网 时间:2024/06/03 19:16
测试和生成公用一套zookeeper,怎么保证消费不冲突?
对于Java Web应用,spring的拦截器可以拦截Web接口的调用,而对于dubbo接口,spring的拦截器就不管用了。要实现此功能,需要dubbo提供Filter扩展
dubbo中filter过滤器的使用场景
1 、扩展Filter
实现com.alibaba.dubbo.rpc.Filter接口:
public class AuthorityFilter implements Filter { private static final Logger LOGGER = LoggerFactory.getLogger(AuthorityFilter.class); private IpWhiteList ipWhiteList; //dubbo通过setter方式自动注入 public void setIpWhiteList(IpWhiteList ipWhiteList) { this.ipWhiteList = ipWhiteList; } @Override public Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException { if (!ipWhiteList.isEnabled()) { LOGGER.debug("白名单禁用"); return invoker.invoke(invocation); } String clientIp = RpcContext.getContext().getRemoteHost(); LOGGER.debug("访问ip为{}", clientIp); List<String> allowedIps = ipWhiteList.getAllowedIps(); if (allowedIps.contains(clientIp)) { return invoker.invoke(invocation); } else { return new RpcResult(); } } }
注意:只能通过setter方式来注入其他的bean,且不需要标注注解。具体请见
http://dubbo.io/developer-guide/%E6%89%A9%E5%B1%95%E7%82%B9%E5%8A%A0%E8%BD%BD.html
2、 配置文件
<dubbo:reference filter="xxx,yyy" /> <!-- 消费方调用过程拦截 --><dubbo:consumer filter="xxx,yyy"/> <!-- 消费方调用过程缺省拦截器,将拦截所有reference --><dubbo:service filter="xxx,yyy" /> <!-- 提供方调用过程拦截 --><dubbo:provider filter="xxx,yyy"/> <!-- 提供方调用过程缺省拦截器,将拦截所有service -->
3 、 扩展实例
- maven结构
src |-main |-java |-com |-xxx |-XxxFilter.java (实现Filter接口) |-resources |-META-INF |-dubbo |-com.alibaba.dubbo.rpc.Filter (纯文本文件,内容为:xxx=com.xxx.XxxFilter)
XXXFilter.java
如前文META-INF/dubbo/com.alibaba.dubbo.rpc.Filter
xxxFilter=com.xxx.AuthorityFilter
- dubbo的provider配置文件
<dubbo:provider filter="xxxFilter" />
阅读全文
0 0
- dubbo
- Dubbo
- dubbo
- dubbo
- dubbo
- dubbo
- Dubbo
- dubbo
- dubbo
- dubbo
- dubbo
- dubbo
- Dubbo
- dubbo
- dubbo
- Dubbo
- dubbo
- DUBBO
- 脚本命令常用总结
- C++重载运算符详解
- python爬虫学习网址
- mysql视图,索引和存储过程
- 欢迎使用CSDN-markdown编辑器
- dubbo
- Java_基础—多线程(匿名内部类实现线程的两种方式和设置名字的方法)
- laravel5.2 发邮件
- ANR 原理与实战技巧
- Android Studio Bmob学生答题考试系统
- 画图
- 移动端touch事件 -- 上拉加载更多
- 对面板数据模型中的一些理解
- CCF 历年真题之分蛋糕(_1703_1_Cake.java)参考答案