• Dubbo和Spring集成Demo


    Zookeeper安装和启动

    • http://mirrors.hust.edu.cn/apache/zookeeper/下载,我的版本是 3.4.5。

    • 解压到 D:zookeeper-3.4.5

    • 配置

      到目录conf 下创建 zoo.cfg 文件,默认就是加载这个文件,文件内容 我直接copy 的sample里面的

      zoo.cfg 的内容
      # 心跳检查的时间 2秒
      tickTime=2000
      # 初始化时 连接到服务器端的间隔次数,总时间10*2=20秒
      initLimit=10
      # ZK Leader 和follower 之间通讯的次数,总时间5*2=10秒
      syncLimit=5
      # 存储内存中数据库快照的位置,如果不设置参数,更新事务日志将被存储到默认位置。
      dataDir=D:zk mpzookeeper
      # 错误日志的存放位置
      dataLogDir=D:zklogszookeeper
      # ZK 服务器端的监听端口
      clientPort=2181

    • 运行

      然后 cd 到bin 目录下 执行zkServer.cmd 就启动成功了。利用jps命令行命令可以验证zookeeper是否启动成功。

    Dubbo服务注册

    建立WEB项目,引入相应Jar文件。
    
    • 1

    这里写图片描述

    配置web.xml文件
    
    
    
    
        dubbo-service
        
            index.html
            index.htm
            index.jsp
            default.html
            default.htm
            default.jsp
        
        
            contextConfigLocation
            
                WEB-INF/dubbo-provider.xml
            
        
    
        
            org.springframework.web.context.ContextLoaderListener
        
    
        
            characterEncodingFilter
            org.springframework.web.filter.CharacterEncodingFilter
            
                encoding
                UTF-8
            
            
                forceEncoding
                true
            
        
        
            characterEncodingFilter
            /*
        
    
    
    写服务类:
    接口:
    
    
    public interface IDemoService {
    
        /**
         * 
         * 
         * @Function: com.test.dubbo.service.IDemoService.sayHello
         * @Description:
         *
         * @param name
         * @return name string
         *
         * @version:v1.0
         * @author:cjq
         * @date:2015-4-30 下午5:45:30
         *
         * Modification History:
         * Date         Author      Version     Description
         * -----------------------------------------------------------------
         * 2015-4-30    cjq      v1.0.0         create
         */
        public String sayHello(String name);
    }
    
    
    实现:
    
    
    public class DemoServiceImpl implements IDemoService {
    
        /*
         * (non-Javadoc)
         * 
         * @see com.test.dubbo.service.IDemoService#sayHello(java.lang.String)
         */
        public String sayHello(String name) {
            return "Hello Dubbo,Hello " + name;
        }
    
    }
    
    注册服务:
    新建dubbo-provider.xml文件,文件内容为:
    
    
    
    
    
        
        
    
        
        
    
        
        
    
        
        
    
        
        
    
        
        
      
    
    部署启动服务:
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119
    • 120
    • 121
    • 122
    • 123

    这里写图片描述

    Dubbo服务调用

    新建WEB或者普通JAVA工程,引入Dubbo服务注册项目中的jar文件。
    需要导入一个服务接口(从上个程序中导入接口的jar并且导入到此项目中。)
    配置web.xml文件(和上工程一样),编写调用配置文件dubbo-consumer.xml文件,内容如下:
    
    
    
    
    
        
        
    
        
        
    
        
        
    
        
        
    
      
    
    编写测试代码:
    
    
    /**
     * Copyright (C) 2015
     *
     *
     * @className:com.test.dubbo.consumer.ConsumerTest
     * @description:TODO
     * 
     * @version:v1.0.0 
     * @author:cjq
     * 
     * Modification History:
     * Date         Author      Version     Description
     * -----------------------------------------------------------------
     * 2015-4-30     cjq       v1.0.0        create
     *
     *
     */
    package com.test.dubbo.consumer;
    
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    import com.test.dubbo.service.IDemoService;
    
    public class ConsumerTest {
        public static void main(String[] args) {
            ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(
                    "file:D:/javaworkspace/dubbo-service-consumer/WebContent/WEB-INF/dubbo-consumer.xml");
            context.start();
            IDemoService demoService = (IDemoService) context.getBean("demoService"); // 获取远程服务代理
            String hello = demoService.sayHello("world"); // 执行远程方法
            System.out.println(hello);
        }
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64

    Dubbo服务调用结果

    调用测试代码,执行结果为:
    
    • 1

    这里写图片描述

    Dubbo介绍结尾

    如果你在做分布式系统的话,不妨用一下这个技术。
    
    • 1
  • 相关阅读:
    【IPython的使用技巧】
    运筹学基础【六】 之 运输问题
    WordPress插件 WP-PostViews 汉化语言包
    【面试八股总结】MySQL索引(二):B+树数据结构、索引使用场景、索引优化、索引失效
    Java开发学习(四十五)----MyBatisPlus查询语句之映射匹配兼容性
    vue pc端/手机移动端 — 下载导出当前表格页面pdf格式
    一个UE无法注册的问题
    【机器学习】强化学习算法的优化
    读高性能MySQL(第4版)笔记19_云端和合规性
    Spring Messaging远程命令执行漏洞复现(CVE-2018-1270)
  • 原文地址:https://blog.csdn.net/m0_67392811/article/details/126328077