体验dubbo的简单方法

来源:互联网 发布:淘宝护肤品货源 编辑:程序博客网 时间:2024/05/29 11:47

在之前的项目工作一直在用dubbo,但都没有时间去自己搭建和研究过源码。这几天看有点时间就自己动手搭建了一下。

官方文档

http://alibaba.github.io/dubbo-doc-static/User+Guide-zh.htm

里面对dubbo做了详细介绍。

体验步骤

文档中的体验demo部署过于复杂,要到github下载源码、还要打包、还要部署什么的,太复杂。
  1. 到dubbo的github上下载源码https://github.com/alibaba/dubbo,如果没有在电脑上安装git的话,找到DownLoad ZIP直接下载也行。
  2. 下载完成后如果是IDEA的话,直接File-->import project-->找到dubbo文件下pom.xml
  3. 如果是eclipse,官方给出的解决方法是
    mvn eclipse:eclipse    Eclipse -> Menu -> File -> Import -> Exsiting Projects to Workspace -> Browse ->
  4. 还需要在一电脑或虚拟机上安装一个ZooKeeper
  5.  Install the zookeeper registry:    cd ~    wget http://www.apache.org/dist//zookeeper/zookeeper-3.3.3/zookeeper-3.3.3.tar.gz    tar zxvf zookeeper-3.3.3.tar.gz    cd zookeeper-3.3.3/conf    cp zoo_sample.cfg zoo.cfg    vi zoo.cfg       - edit: dataDir=/home/xxx/data    cd ../bin    ./zkServer.sh start

  6. 到dubbo项目下,dubbo-demo-->dubbo-dumo-consumer和dubbo-demo-provider->src->test->resources->dubbo.properties配置
  7. 将dubbo.registry.address=multicast://224.5.6.7:1234注销,添加dubbo.registry.address=zookeeper://172.16.3.58:2181 ,将172.16.3.58改成自己的IP
  8. dubbo-dumo-consumer和dubbo-demo-provider的dubbo.properies都要改
  9. 通过编译器直接运行test->java->com.alibaba.dubbo.demo.provider的DemoProvider.可以多启动几个,启动多个provider时,每次都需要修改一下dubbo.protocol.port=20880的端口号
  10. 通过编译器直接运行test->java->com.alibaba.dubbo.demo.comsumer的DemoConsumer.可以多启动几个
图中是我启动的provider第二个,第一个端口是20880,第二个是20881,都通过172.16.3.58的zookeeper注册中心进行注册。


起一个Consumer,先到zookeeper注册拿到服务列表从图中看到consumer已经与provider进行通讯,并且实现了软负载。


PS:可能启动zooKeeper的时候回报错误,解决方法是添加加黑代码
 nohup $JAVA "-Dzookeeper.log.dir=${ZOO_LOG_DIR}" "-Dzookeeper.root.logger=${ZOO_LOG4J_PROP}" \    -cp "$CLASSPATH" $JVMFLAGS $ZOOMAIN "$ZOOCFG" > "$_ZOO_DAEMON_OUT" 2>&1 < /dev/null &    zkpid=$!;    if [ $? -eq 0 ]     then      <strong>while [ ! -d `dirname $ZOOPIDFILE` ]      do          sleep 1;      done</strong>      if /bin/echo -n $zkpid > "$ZOOPIDFILE"      then        sleep 1        echo STARTED      else        echo FAILED TO WRITE PID        exit 1      fi  



0 0