Dubbo笔记③ : 服务发布流程 - ServiceConfig#export
发布日期:2021-05-10 01:56:46 浏览次数:19 分类:精选文章

本文共 5419 字,大约阅读时间需要 18 分钟。

Apache Dubbo���������������������������������������������

������������

���������Dubbo������������������������������������Apache Dubbo ���������������������������������������������������������������������������Dubbo 2.7.0������������������������������������������������


2. ServiceConfig#export

���Dubbo���������������������������������ServiceConfig#export���������������������������������������������������������������

1. checkAndUpdateSubConfigs()

������������������������������������������������������������������������������������������������������

  • ���������������������������������������������������ServiceConfig > ProviderConfig > ModuleConfig > ApplicationConfig���
  • ������������������������������������������
  • ������������������������������������������������������������
  • ������������������������������������������������������������������������������������������
  • ������������������������Stub���������������������������������
  • ������������������������������������������������

2. doExport()

doExport������������������������������������������������������������������������

  • ���������������������������������������������
  • ������������������������������������������
  • ���������������������������������
  • ������������������������������������������������������
  • ���������������������������������������������������������
  • ������doExportUrls���������������������URL������������������
  • 3. doExportUrls()

    doExportUrls���������URL������������������������������������������

  • ������������������������������������������������������������
  • ���������������������������������������������������������������URL���
  • ������������������������������������������������������������

  • 3.Dubbo������URL

    Dubbo������URL���������������������������������������������������������������������������URL���������������

    protocol://username:password@host:port/path?key=value&key=value

    ���Dubbo������URL���������������������������������������������������������������������

    • protocol������������������������������������ dubbo���thrift���http���zk ������
    • username/password������������������������������������
    • host/port���������������������������������
    • path������������������������
    • parameters���������������������������timeout���version������

    ������Dubbo URL���������

    dubbo://192.168.1.6:20880/moe.cnkirito.sample.HelloService?timeout=3000
    zk://127.0.0.1:2181/org.apache.dubbo.registry.RegistryService?application=demo-consumer&dubbo=2.0.2&interface=org.apache.dubbo.registry.RegistryService&pid=1214&qos.port=33333&timestamp=1545721981946
    consumer://30.5.120.217/org.apache.dubbo.demo.DemoService?application=demo-consumer&category=consumers&check=false&dubbo=2.0.2&interface=org.apache.dubbo.demo.DemoService&methods=sayHello&pid=1209&qos.port=33333&side=consumer&timestamp=1545721827784

    4. ������������������������

    ������������������������������������������������������

    4.1 ������������������������

    ���������������������������������������������

    UniqueServiceName = ServiceConfig#service + "-" + interfaceName

    ���������������������������������������

    4.2 ���������������������������

    ������ProviderModel������������������������������������������������������������

    ProviderModel providerModel = new ProviderModel(getUniqueServiceName(), ref, interfaceClass);
    ApplicationModel.initProviderModel(getUniqueServiceName(), providerModel);

    4.3 ������URL������

    ������doExportUrls������������������������URL������������������������������������������������������������������������������������������������������������������������������

    4.4 ���������������������������

    ������URL������������ dubbo://������������������������������������������������������������������������������������Dubbo������������������������������������������������


    5. ������������ ������������

    5.1 ���������������URL������

    • ������������������URL������������
    dubbo://service-host/com.foo.FooService?version=1.0.0
    • ������������������URL������������
    registry://registry-host/org.apache.dubbo.registry.RegistryService?export=URL.encode("dubbo://service-host/com.foo.FooService?version=1.0.0")

    5.2 ���������������������������������

  • ���������������������������������������������������������������������������
  • ������������������������������������������������������������������������������������������ID������
  • URL���������timestamp���������������������������������������

  • 6. loadRegistries ������������

    loadRegistries���������������������������������������������������������������������������

  • ���������������������������������
  • ���������������������������������
  • ���������������������������������������������������������������
  • ���������������������������URL���
  • ������������������������������URL���������������������
  • ���������������������������

    Map
    params = new HashMap<>();
    params.put("path", serviceInterface);
    // ������������������������
    String finalUrl = UrlUtils.parseURLs(address, params).iterator().next().toString();

    7. ������������������������

  • ���������������ServiceConfig#export������������������������������������������������������doExport���
  • ������������������ Dubbo������������������������ dubbo���thrift������������protocol���������������
  • ������������������������������������������������������������������������������������������������������
  • ������������������������������������������������������������������������������������������������������

  • ������������������Dubbo 2.7.0���������������������������������������������������������������������������������������������������������������������������������

    上一篇:Dubbo笔记衍生篇③:ProtocolWrapper
    下一篇:Dubbo笔记衍生篇①:JDK SPI机制

    发表评论

    最新留言

    网站不错 人气很旺了 加油
    [***.192.178.218]2025年03月31日 11时03分07秒