美文网首页
Day 6 Dubbo服务发布和引用

Day 6 Dubbo服务发布和引用

作者: 小周爱吃瓜 | 来源:发表于2022-02-13 23:04 被阅读0次

    ServiceBean

    ConfigManager

    Spring容器发布完成会调用 finishRefresh方法,发布Event事件.

    finishRefresh方法->发布Event事件->DubboXXXListener->onApplicationEvent->init->exportServiceBean 完成发布

    注册中心地址:

    Url地址

    injvm://127.0.0.1/cn.enjoy.validation.ValidationService?anyhost=true&application=dubbo_provider&bind.ip=192.168.56.1&bind.port=20990&deprecated=false&dubbo=2.0.2&dynamic=true&generic=false&interface=cn.enjoy.validation.ValidationService&metadata-type=remote&methods=save,update,delete&pid=7816&release=3.0.2.1&revision=1.0-SNAPSHOT&side=provider&threadpool=fixed&threads=100&timeout=5000&timestamp=1643034663695

    发布的过程先走包装类.

    发布的过程先走包装类.

    RegistryProtocal export 方法.

    默认的通信协议是Netty. 之前的步骤只是服务暴露,完成发布调用的是doLocalExport方法.

    ServiceBean

    JDK代理对象,最终调用到目标实例对象。 ReferenceConfig.get()

    走的是Dubbo的代理对象的方法.

    1. ReferenceBean.get()
    2. ReferenceConfig 服务引用,实例调用方法的时候.

    当收到了服务端的数据发布,NettyHandle会收到该消息。

    //当通道有读取事件时会触发,即服务端发送数据给客户端
        @Override
        public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
            ByteBuf buf = (ByteBuf) msg;
            System.out.println("收到服务端的消息:" + buf.toString(CharsetUtil.UTF_8));
            System.out.println("服务端的地址: " + ctx.channel().remoteAddress());
        }
    

    DubboProtocal,RegistryProtocal的export方法.
    调用都会包装成
    Invocation
    Invoke


    服务发布:

    服务发布.jpg

    Dubbo服务注册:

    Dubbo服务注册.jpg

    相关文章

      网友评论

          本文标题:Day 6 Dubbo服务发布和引用

          本文链接:https://www.haomeiwen.com/subject/fieihrtx.html