初始搭建dubbo-demo环境

来源:互联网 发布:mysql二级缓存 编辑:程序博客网 时间:2024/05/16 09:38

要将原有的系统改造为SOA框架,调研了几个,感觉dubbo好像还不错,就它了,虽然是在传统的IT企业,但还是要有一颗向往互联网的心

网上看了一些教程都是从maven讲起的,但貌似没有好大必要先弄maven(破公司没有网络)

一、搭建过程如下:

1 网上搜索dubbo,进入官网下载dubbo的jar包

2 下载一个dubbo-admin.war包

3 下载一个zookeeper包

4  将dubbo-admin.war包放到tomcat中启动

5 解压zookeeper,然后进入bin下面双击zkServer.cmd(还没在linux环境上搭建,暂时都是在x86上),它会自动启一个窗口,

然后另外起一个cmd服务,输入 jps ,显示有 “QuorumPeerMain”就算是起来了就

6 启动tomcat前,需要进入到dubbo-admin文件夹下WEB-INF下的dubbo.properties中将该改的改了,

dubbo.registry.address=zookeeper://127.0.0.1:2181?backup=127.0.0.1:2182,127.0.0.1:2183
dubbo.admin.root.password=root
dubbo.admin.guest.password=guest

默认好像就是这个,不用咋改,但注意下面都是配密码的,不是用户名密码,刚开始搭建的时候,每次都让输密码,每次都输的用户名root,密码guest是不对的

应该输入的是用户名root,密码root或者用户名guest,密码guest

7 这时候启动tomcat,然后用浏览器进入tomcat/dubbo-admin的项目中,输入密码后,然后就能看到dubbo的管理界面了

到现在dubbo的初始环境就算搭建完毕了,可以不用maven进行操作

二、demo

这个直接上官网照着demo直接copy过去就行,不过需要在工程里面引用dubbo-2.5.3.jar,zkclient-0.1.jar,zookeeper-3.3.3.jar三个jar包

注意:刚开始的时候把项目中的模块spring配置文件搞混了,dubbo中的服务和spring一样的写法,需要在那个id里面注入

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
    xsi:schemaLocation="http://www.springframework.org/schema/beans        http://www.springframework.org/schema/beans/spring-beans.xsd        http://code.alibabatech.com/schema/dubbo        http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
    <!-- 提供方应用信息,用于计算依赖关系 -->
    <dubbo:application name="dubbo-task-app"  />

     <!-- 使用zookeeper注册中心暴露服务地址 -->
    <dubbo:registry id="zk_registry" address="zookeeper://127.0.0.1:2181" />

    <!-- 使用multicast广播注册中心暴露服务地址 -->
    <!-- <dubbo:registry address="multicast://224.5.6.7:1234" />-->

    <!-- 用dubbo协议在20880端口暴露服务 -->
    <dubbo:protocol name="dubbo" port="20880" />
 
    <!-- 声明需要暴露的服务接口 -->
    <dubbo:service interface="inforunner.workflow.common.task.service.ITaskService" ref="demoTaskService" />
 
</beans>

最开始的配置文件,然后消费端调用的时候怎么都在报空指针,就纳闷了,然后静下心来想了下,都没注入,dubbo当然拿不到了

最后改为了

    <!-- 声明需要暴露的服务接口 -->
    <dubbo:service interface="inforunner.workflow.common.task.service.ITaskService" ref="WfTaskService" />

其中WfTaskService的配置文件如下,之前太二了,直接给dubbo一个id,id里面啥都没注入,可不就是nullPointException

<?xml version="1.0" encoding="UTF-8"?>
<beans
    xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:p="http://www.springframework.org/schema/p"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
    ">

    <bean id="WfTaskDao" class="inforunner.workflow.common.task.dao.TaskDao" scope="prototype">
          <property name="sessionFactory" ref="sessionFactory" />
    </bean>
    <bean id="WfTaskService" class="inforunner.workflow.common.task.service.TaskService" >
          <property name="dao" ref="WfTaskDao"/>
    </bean>
</beans>

OK,到现在最起码搭起了一个dubbo的demo出来了,接下来就是学习怎么改造项目了,研究下它是怎么工作的


0 0