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);
    
        }
  • 相关阅读:
    【BZOJ】2019: [Usaco2009 Nov]找工作(spfa)
    【BZOJ】3668: [Noi2014]起床困难综合症(暴力)
    Redis 字符串结构和常用命令
    Redis实现存取数据+数据存取
    Spring 使用RedisTemplate操作Redis
    使用 java替换web项目的web.xml
    SQL server 从创建数据库到查询数据的简单操作
    SQL server 安装教程
    IntelliJ IDEA 注册码(因为之前的地址被封杀了,所以换了个地址)
    对程序员有帮助的几个非技术实用链接(点我,你不会后悔的)
  • 原文地址:https://www.cnblogs.com/orange-time/p/11408133.html
Copyright © 2011-2022 走看看