dubbo API的使用方式


本文使用maven方式

1:pom文件

    <dependencies>
        <!-- 引入spring的jar -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>4.0.2.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>4.0.2.RELEASE</version>
        </dependency>

        <!-- 引入zk -->
        <dependency>
            <groupId>com.101tec</groupId>
            <artifactId>zkclient</artifactId>
            <version>0.3</version>
        </dependency>
        <dependency>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
            <version>3.4.5</version>
        </dependency>

        <!-- 引入dubbo -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>dubbo</artifactId>
            <version>2.5.7</version>
            <scope>compile</scope>
            <exclusions>
                <exclusion>
                    <artifactId>spring</artifactId>
                    <groupId>org.springframework</groupId>
                </exclusion>
            </exclusions>
        </dependency>

    </dependencies>

 

2:服務端

//服務端的代碼
public class DubboServer {

    public static void main(String[] args) throws IOException {
        initServer();
    }

    public static void initServer() throws IOException {
        //設置應用名稱
        ApplicationConfig config = new ApplicationConfig();
        config.setName("dubboAppServer");

        //連接注冊中心
        RegistryConfig registryConfig = new RegistryConfig();
        registryConfig.setAddress("192.168.30.128:2181");  //本地虛擬機的地址
        registryConfig.setProtocol("zookeeper");

        //設置協議
        ProtocolConfig protocolConfigRmi = new ProtocolConfig();
        protocolConfigRmi.setPort(12880);
        protocolConfigRmi.setName("rmi");   //設置rmi的協議

        ProtocolConfig protocolConfigDubbo = new ProtocolConfig();
        protocolConfigDubbo.setPort(12881);
        protocolConfigDubbo.setName("dubbo");   //設置dubbo的協議

        //服務提供者暴露服務
        ServiceConfig<OrderService> serviceServiceConfig = new ServiceConfig<OrderService>();
        serviceServiceConfig.setApplication(config);    //設置應用名稱
        serviceServiceConfig.setRegistry(registryConfig);     //設置注冊中心
        serviceServiceConfig.
                setProtocols(Arrays.asList(protocolConfigRmi,protocolConfigDubbo));  //設置兩個協議

        serviceServiceConfig.setInterface(OrderService.class);      //設置接口
        serviceServiceConfig.setRef(new OrderServiceImpl());        //設置具體實現類

        serviceServiceConfig.export();      //暴露和注冊服務

        System.in.read();

    }

 

3:消費端

//消費端代碼
public class DubboConsumer {

    public static void main(String[] args) {
        initConsumer();
    }

    public static void initConsumer(){
        //設置應用名稱
        ApplicationConfig config = new ApplicationConfig();
        config.setName("dubboAppConsumer");

        //連接注冊中心
        RegistryConfig registryConfig = new RegistryConfig();
        registryConfig.setAddress("192.168.30.128:2181");  //本地虛擬機的地址
        registryConfig.setProtocol("zookeeper");

        ReferenceConfig<OrderService> referenceConfig = new ReferenceConfig<OrderService>();
        referenceConfig.setApplication(config);
        referenceConfig.setRegistry(registryConfig);
        referenceConfig.setInterface(OrderService.class);
        referenceConfig.setProtocol("dubbo");


        OrderService order = referenceConfig.get();
        Integer num = order.buyShop();   //具體的調用
        referenceConfig.destroy();

        System.out.println(num);

    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM