• Dubbo使用手册


    Dubbo入门引导

    Dubbo使用手册


    Dubbo是什么

    Dubbo是一款优秀的Java RPC框架,它的服务自动注册和发现功能,非常契合分布式服务、微服务架构。

    如果你没有使用过RPC框架,我建议你可以先停下来,去了解一下Hessian。

    Dubbo初体验

    Dubbo初体验,我们先避开配置,完全通过代码来体验一把Dubbo的用法。

    又到了贴代码凑字数的环节了。

    Maven依赖

    
    	com.alibaba
    	dubbo
    	2.5.9
    
    
    
    	io.netty
    	netty-all
    	4.1.33.Final
    
    
    
    	com.101tec
    	zkclient
    	0.11
    	
    		
    			io.netty
    			netty
    		
    	
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    公共接口模块

    我懒得区分,公共模块、服务端应用和客户端应用了,把代码都放在一起不影响体验。

    接口

    package com.vzoom.dubbo.demo.api;
    
    public interface GreetingService {
    
    	String sayHello(String name);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    实现类

    package com.vzoom.dubbo.demo.api.impl;
    
    import com.vzoom.dubbo.demo.api.GreetingService;
    
    public class GreetingServiceImpl implements GreetingService {
    
    	public String sayHello(String name) {
    		return "Hello " + name;
    	}
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    服务端

    服务端做的几件事情:

    1. 设置服务端应用名称;

    2. 设置注册地址;

    3. 设置要暴漏的接口;

    4. 指定接口的实现类;

    5. 发布服务;

    package com.vzoom.dubbo.demo.provider;
    
    import java.io.IOException;
    
    import com.alibaba.dubbo.config.ApplicationConfig;
    import com.alibaba.dubbo.config.RegistryConfig;
    import com.alibaba.dubbo.config.ServiceConfig;
    import com.vzoom.dubbo.demo.api.GreetingService;
    import com.vzoom.dubbo.demo.api.impl.GreetingServiceImpl;
    
    public class Application {
    
    	public static void main(String[] args) throws IOException {
    		ServiceConfig serviceConfig = new ServiceConfig();
    		serviceConfig.setApplication(new ApplicationConfig("dubbo-demo-provider-190212"));
    		serviceConfig.setRegistry(new RegistryConfig("zookeeper://192.168.81.86:2181"));
    		serviceConfig.setInterface(GreetingService.class);
    		serviceConfig.setRef(new GreetingServiceImpl());
    		serviceConfig.export();
    		System.in.read();
    	}
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    客户端

    客户端做的事情:

    1. 设置应用名称

    2. 设置订阅地址;

    3. 设置要调用的接口;

    4. 获得接口实例;

    下面这段代码还是很实用的,可以用来调试dubbo接口,非常方便;

    package com.vzoom.dubbo.demo.consumer;
    
    import com.alibaba.dubbo.config.ApplicationConfig;
    import com.alibaba.dubbo.config.ReferenceConfig;
    import com.alibaba.dubbo.config.RegistryConfig;
    import com.vzoom.dubbo.demo.api.GreetingService;
    
    public class Application {
    
    	public static void main(String[] args) {
    		ReferenceConfig referenceConfig = new ReferenceConfig();
    		referenceConfig.setApplication(new ApplicationConfig("dubbo-demo-consumer-190212"));
    		referenceConfig.setRegistry(new RegistryConfig("zookeeper://192.168.81.86:2181"));
    		referenceConfig.setInterface(GreetingService.class);
    		GreetingService greetingService = referenceConfig.get();
    		System.out.println(greetingService.sayHello("world"));
    	}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    工程结构

    总结

    Dubbo的使用还是很容易上手的。

    Dubbo的xml配置就不介绍了,因为Dubbo使用手册里有提到。

    后续将提供两种Dubbo的泛化调用方式,敬请期待。

    Dubbo使用手册

    https://dubbo.gitbooks.io/dubbo-user-book/content/preface/background.html

  • 相关阅读:
    测试用例的编写(面试常问)
    MySQL高级-六索引优化
    WPF中使用LibVLCSharp.WPF 播放rtsp
    2022-6-22 我的日程安排表III,最大频率栈,将数据流变为多个不相交区间
    【STM32】MCU HardFault异常处理分析流程及总结(一)
    Javaer 面试必背系列!超高频八股之三色标记法
    vue3 快速入门系列 —— 组件通信
    Debezium同步之DB2数据同步配置
    NJR日清纺微理光R5445系列 单节锂电池保护芯片,内置驱动器高位Nch FET开关温度保护
    前端面试查漏补缺
  • 原文地址:https://blog.csdn.net/m0_67391377/article/details/126327969