dubbo 几个实用功能
所属分类 dubbo
浏览量 1023
直连Provider
url="dubbo://192.168.0.10:20888/"
user.home/dubbo-resolve.properties
demo.service1=dubbo://127.0.0.1:28000
demo.service2=dubbo://127.0.0.1:28010
多版本
version="1.0.0"
EchoService
EchoService echoService = (EchoService) helloService;
System.out.println(echoService.$echo("hello"));
隐式参数 Attachment
RpcContext setAttachment() 和 getAttachment()
setAttachment()设置的 KV 对,在完成一次远程调用会被清空,即多次远程调用要多次设置
上下文
上下文中存放的是当前调用过程中所需的环境信息,所有配置信息都将转换为 URL 的参数
RpcContext ThreadLocal
boolean isConsumerSide = RpcContext.getContext().isConsumerSide();
public class RpcContext {
private static final ThreadLocal< RpcContext> LOCAL = new ThreadLocal< RpcContext>() {
本地mock
mock指定的实现类在Provider抛出RpcException异常时执行
mock="com.dyyx.HelloServiceMock"
泛化调用
参数及返回值中的所有 POJO 均用Map表示,通常用于框架集成
ApplicationConfig application = new ApplicationConfig();
application.setName("dubbo-client-generic-main");
ReferenceConfig referenceConfig = new ReferenceConfig<>();
referenceConfig.setApplication(application);
// referenceConfig.setInterface(HelloService.class);
referenceConfig.setInterface("dyyx.HelloService");
referenceConfig.setUrl("dubbo://127.0.0.1:20880");
referenceConfig.setVersion("1.0.0");
referenceConfig.setGroup("group1");
referenceConfig.setGeneric(true);
GenericService genericService = referenceConfig.get();
Object result = genericService.$invoke("hello",new String[] {"java.lang.String"},new Object[] {"dyyx"});
System.out.println(result);
完整代码
https://gitee.com/dyyx/dubbodemo/blob/master/dubbo-hello-consumer/src/main/java/dyyx/ClientGenericMain.java
访问日志
dubbo:provider accesslog="/app/dubbo-demo.log"
dubbo:service 上也可以配置
延迟暴露
服务预热,初始化本地缓存等
dubbo:provider delay="5000"
dubbo:service delay="5000"
上一篇
下一篇
中年男人的西游记
dubbo XML Schema 扩展机制
基于netty的 简单 rpc 框架
Dubbo路由简介
geohash简介
根据经纬度计算距离