1 从一个服务提供者的Demo说起

    为了Demo可以正常启动,需要我们先在本地启动一个Zookeeper如下图所示:

    有了服务接口之后我们来启用服务,启用服务的源码如下:

    1. import org.apache.dubbo.config.ApplicationConfig;
    2. import org.apache.dubbo.config.MetadataReportConfig;
    3. import org.apache.dubbo.config.ProtocolConfig;
    4. import org.apache.dubbo.config.RegistryConfig;
    5. import org.apache.dubbo.config.ServiceConfig;
    6. import org.apache.dubbo.config.bootstrap.DubboBootstrap;
    7. import org.apache.dubbo.demo.DemoService;
    8. public class Application {
    9. public static void main(String[] args) throws Exception {
    10. startWithBootstrap();
    11. }
    12. private static void startWithBootstrap() {
    13. ServiceConfig<DemoServiceImpl> service = new ServiceConfig<>();
    14. service.setInterface(DemoService.class);
    15. DubboBootstrap bootstrap = DubboBootstrap.getInstance();
    16. bootstrap.application(new ApplicationConfig("dubbo-demo-api-provider"))
    17. .registry(new RegistryConfig("zookeeper://127.0.0.1:2181"))
    18. .protocol(new ProtocolConfig(CommonConstants.DUBBO, -1))
    19. .start()
    20. .await();
    21. }

    如果了解过Dubbo的同学,应该会知道Dubbo在低版本的时候会向注册中心中写入服务接口,具体路径在上面的 dubbo目录下 ,然后在 /dubbo/服务接口/ 路径下写入如下信息:

    • 服务提供者配置信息URL形式
    • 服务消费者的配置信息URL形式
    • 服务路由信息
    • 配置信息
    • /dubbo/metadata 元数据信息
    • /dubbo/mapping 服务和应用的映射信息
    • /dubbo/config 注册中心配置
    • /services目录应用信息

    在这里可以大致了解下,在后面会有更详细的源码解析这个示例代码.通过透析代码来看透Dubbo3服务注册原理,服务提供原理。