zoukankan      html  css  js  c++  java
  • 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);
    
        }
  • 相关阅读:
    ssh登陆报错“WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!”的解决方法
    python错误:SyntaxError: invalid character in identifier
    Python3中出现UnicodeEncodeError: 'ascii' codec can't encode characters in ordinal not in range(128)的解决方法
    Jmeter在Mac下安装教程
    TensorFlow | win10下使用docker安装tensorflow
    Docker | 删除 image 失败的一种情况
    基础技能 | Git
    Leetcode-探索 | 两数之和
    Leetcode-探索 | 移动零
    基础复习-算法设计基础 | 复杂度计算
  • 原文地址:https://www.cnblogs.com/orange-time/p/11408133.html
Copyright © 2011-2022 走看看