首页  

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<GenericService> 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简介

根据经纬度计算距离