activiti用dubbo分布服务

dubbo手册地址:https://www.gitbook.com/@dubbo

dubbo包地址:http://dubbo.io/

实现非常简单,难点在于dubbo调优。简单就是接口都是现成的,实现类还是现成的,所以你只需要配置就行了。

项目用的是SSM,如果不需要或者不一样 注意下面的pom配置文件。

dubbo.xml

<?xml version="1.0" encoding="UTF-8"?>

<!-- Copyright 1999-2011 Alibaba Group. -->

<beans xmlns="http://www.springframework.org/schema/beans"

         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"

         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://www.springframework.org/schema/context  

        http://www.springframework.org/schema/context/spring-context-2.5.xsd 

        http://code.alibabatech.com/schema/dubbo  

        http://code.alibabatech.com/schema/dubbo/dubbo.xsd  

        ">

         <!-- 提供方应用信息,用于计算依赖关系 -->

         <dubbo:application name="activiti-provider" owner="nihoutao所有人"

                   organization="mayun你的组织名称" />

         <!-- 注册中心暴露服务地址 -->

         <dubbo:registry group="dubbo"

                   address="zookeeper://127.0.0.1:2181?client=zkclient" check="false" />

         <!-- 用dubbo协议在20880端口暴露服务 -->

         <dubbo:protocol name="dubbo" port="20880" />

         <dubbo:provider dispatcher="all" timeout="50000"

                   threadpool="fixed" threads="500" accepts="1000" />

                  

         <!-- activiti对外开放的七大服务 -->

    <dubbo:service interface="org.activiti.engine.RepositoryService" ref="repositoryService"/>

    <dubbo:service interface="org.activiti.engine.RuntimeService" ref="runtimeService"/>

         <dubbo:service interface="org.activiti.engine.FormService" ref="formService"/>

         <dubbo:service interface="org.activiti.engine.IdentityService" ref="identityService"/>

         <dubbo:service interface="org.activiti.engine.TaskService" ref="taskService"/>

         <dubbo:service interface="org.activiti.engine.HistoryService" ref="historyService"/>

         <dubbo:service interface="org.activiti.engine.ManagementService" ref="managementService"/>

    <!-- ./activiti对外开放的七大服务 -->

   

         <!-- 扫描注解包路径,多个包用逗号分隔,不填pacakge表示扫描当前ApplicationContext中所有的类 -->

         <dubbo:annotation package="com.alibaba" />

我不建议扫包这种方式,因为后期还得配置好多,要么都得在类上声明,不方便啊。

</beans>

在类上注释的样子。

 

配置dubbo你可能遇到两个问题,一个就是小红叉问题:http://blog.csdn.net/jiao_zg/article/details/64439525

还有一个就是消费方找不到你的类,报出让你重新注册这个那个滴,这不是你配置的问题,是你的提供方和消费方的这个要用的类路径不一致。当然,你要是不用扫包,用引用的方式还有这个问题,那就可能是这个解决方式,也可能不是,多搜搜吧。

pom.xml

         <properties>

                   <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

                   <srping.version>4.3.10.RELEASE</srping.version>

                   <mybatis.version>3.2.8</mybatis.version>

                   <slf4j.version>1.7.25</slf4j.version>

                   <log4j.version>1.2.17</log4j.version>

                   <dubbo.version>2.5.5</dubbo.version>

                   <redis.version>2.5.5</redis.version>

                   <commons-dbcp.version>1.4</commons-dbcp.version>

                   <jackson.version>2.0.4</jackson.version>

                   <spymemcached.version>2.8.1</spymemcached.version>

                   <guava.version>17.0</guava.version>

                   <commons-lang3.version>3.3.2</commons-lang3.version>

                   <commons-io.version>2.4</commons-io.version>

                   <joda-time.version>2.1</joda-time.version>

                   <jetty.version>8.1.15.v20140411</jetty.version>

                   <mockito.version>1.9.0</mockito.version>

                   <powermock.version>1.4.12</powermock.version>

                   <activiti.version>5.22.0</activiti.version>

         </properties>

         <!-- 用到的jar包 -->

         <dependencies>

                   <!-- https://mvnrepository.com/artifact/org.apache.shiro/shiro-spring -->

                   <!-- https://mvnrepository.com/artifact/org.apache.shiro/shiro-ehcache -->

                   <!-- dubbo -->

                   <dependency>

                            <groupId>com.alibaba</groupId>

                            <artifactId>dubbo</artifactId>

                            <version>${dubbo.version}</version>

                   </dependency>

                   <!-- https://mvnrepository.com/artifact/org.apache.zookeeper/zookeeper -->

                   <dependency>

                       <groupId>org.apache.zookeeper</groupId>

                       <artifactId>zookeeper</artifactId>

                       <version>3.4.9</version>

                   </dependency>

                   <!-- https://mvnrepository.com/artifact/com.101tec/zkclient -->

                   <dependency>

                       <groupId>com.101tec</groupId>

                       <artifactId>zkclient</artifactId>

                       <version>0.10</version>

                   </dependency>

                   <!-- redis -->

                   <dependency>

                            <groupId>redis.clients</groupId>

                            <artifactId>jedis</artifactId>

                            <version>2.9.0</version>

                   </dependency>

                  

                   <!-- https://mvnrepository.com/artifact/org.springframework.data/spring-data-redis -->

                   <dependency>

                       <groupId>org.springframework.data</groupId>

                       <artifactId>spring-data-redis</artifactId>

                       <version>1.8.7.RELEASE</version>

                   </dependency>

                   <!-- https://mvnrepository.com/artifact/com.alibaba/druid -->

                   <dependency>

                       <groupId>com.alibaba</groupId>

                       <artifactId>druid</artifactId>

                       <version>1.1.3</version>

                   </dependency>

                  

                   <!-- quartz -->

                   <dependency>

                            <groupId>org.quartz-scheduler</groupId>

                            <artifactId>quartz</artifactId>

                            <version>2.3.0</version>

                   </dependency>

                  

                   <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-validator -->

                   <dependency>

                       <groupId>org.hibernate</groupId>

                       <artifactId>hibernate-validator</artifactId>

                       <version>5.2.0.Final</version>

                   </dependency>

                  

                   <!-- activit demo 复制得到 -->

                   <!-- actvititi -->

                   <dependency>

                            <groupId>com.fasterxml.jackson.core</groupId>

                            <artifactId>jackson-databind</artifactId>

                            <version>2.5.4</version>

                   </dependency>

                   <dependency>

                            <groupId>org.activiti</groupId>

                            <artifactId>activiti-engine</artifactId>

                            <version>${activiti.version}</version>

                   </dependency>

                   <dependency>

                            <groupId>org.activiti</groupId>

                            <artifactId>activiti-spring</artifactId>

                            <version>${activiti.version}</version>

                   </dependency>

                   <dependency>

                            <groupId>org.activiti</groupId>

                            <artifactId>activiti-json-converter</artifactId>

                            <version>${activiti.version}</version>

                   </dependency>

                   <dependency>

                            <groupId>org.activiti</groupId>

                            <artifactId>activiti-explorer</artifactId>

                            <version>${activiti.version}</version>

                            <exclusions>

                                     <exclusion>

                                               <artifactId>vaadin</artifactId>

                                               <groupId>com.vaadin</groupId>

                                     </exclusion>

                                     <exclusion>

                                               <artifactId>dcharts-widget</artifactId>

                                               <groupId>org.vaadin.addons</groupId>

                                     </exclusion>

                                     <exclusion>

                                               <artifactId>activiti-simple-workflow</artifactId>

                                               <groupId>org.activiti</groupId>

                                     </exclusion>

                            </exclusions>

                   </dependency>

                   <dependency>

                            <groupId>org.activiti</groupId>

                            <artifactId>activiti-modeler</artifactId>

                            <version>${activiti.version}</version>

                   </dependency>

                   <dependency>

                            <groupId>org.activiti</groupId>

                            <artifactId>activiti-rest</artifactId>

                            <version>${activiti.version}</version>

                   </dependency>

                   <dependency>

                            <groupId>org.activiti</groupId>

                            <artifactId>activiti-diagram-rest</artifactId>

                            <version>${activiti.version}</version>

                   </dependency>

                   <dependency>

                            <groupId>org.activiti</groupId>

                            <artifactId>activiti-cxf</artifactId>

                            <version>${activiti.version}</version>

                   </dependency>

                   <!-- cxf的http支持 -->

                   <dependency>

                            <groupId>org.apache.cxf</groupId>

                            <artifactId>cxf-api</artifactId>

                            <version>2.7.6</version>

                   </dependency>

                   <dependency>

                            <groupId>org.apache.cxf</groupId>

                            <artifactId>cxf-rt-frontend-jaxws</artifactId>

                            <version>2.7.6</version>

                   </dependency>

                   <dependency>

                            <groupId>org.apache.cxf</groupId>

                            <artifactId>cxf-rt-transports-http-jetty</artifactId>

                            <version>2.7.6</version>

                            <scope>test</scope>

                   </dependency>

                   <dependency>

                            <groupId>org.apache.cxf</groupId>

                            <artifactId>cxf-rt-transports-http</artifactId>

                            <version>2.7.6</version>

                   </dependency>

                   <dependency>

                            <groupId>com.sun.xml.bind</groupId>

                            <artifactId>jaxb-impl</artifactId>

                            <version>2.2.11</version>

                   </dependency>

                   <!-- 支持activiti缓存 -->

                   <dependency>

                            <groupId>org.infinispan</groupId>

                            <artifactId>infinispan-core</artifactId>

                            <version>5.1.7.Final</version>

                   </dependency>

                   <dependency>

                            <groupId>org.aspectj</groupId>

                            <artifactId>aspectjrt</artifactId>

                            <version>1.6.9</version>

                   </dependency>

                   <dependency>

                            <groupId>org.aspectj</groupId>

                            <artifactId>aspectjweaver</artifactId>

                            <version>1.6.9</version>

                   </dependency>

                   <dependency>

                            <groupId>cglib</groupId>

                            <artifactId>cglib</artifactId>

                            <version>2.2.2</version>

                   </dependency>

                   <dependency>

                            <groupId>asm</groupId>

                            <artifactId>asm</artifactId>

                            <version>3.3.1</version>

                   </dependency>

                   <!-- SPRING end -->

                   <!-- PERSISTENCE begin -->

                   <dependency>

                            <groupId>org.springframework</groupId>

                            <artifactId>spring-orm</artifactId>

                            <version>${spring.version}</version>

                   </dependency>

                   <dependency>

                            <groupId>org.springframework</groupId>

                            <artifactId>spring-jdbc</artifactId>

                            <version>${spring.version}</version>

                   </dependency>

                   <!-- dbcp connection pool -->

                   <dependency>

                            <groupId>org.apache.commons</groupId>

                            <artifactId>commons-dbcp2</artifactId>

                            <version>2.0.1</version>

                   </dependency>

                   <!-- PERSISTENCE end -->

                   <!-- WEB begin -->

                   <dependency>

                            <groupId>org.springframework</groupId>

                            <artifactId>spring-web</artifactId>

                            <version>${spring.version}</version>

                   </dependency>

                   <dependency>

                            <groupId>org.springframework</groupId>

                            <artifactId>spring-webmvc</artifactId>

                            <version>${spring.version}</version>

                   </dependency>

                   <dependency>

                            <groupId>javax.servlet</groupId>

                            <artifactId>jstl</artifactId>

                            <version>1.2</version>

                   </dependency>

                   <dependency>

                            <groupId>javax.servlet</groupId>

                            <artifactId>javax.servlet-api</artifactId>

                            <version>3.1.0</version>

                            <scope>provided</scope>

                   </dependency>

                   <!-- WEB end -->

                   <!-- LOGGING begin -->

                   <dependency>

                            <groupId>org.slf4j</groupId>

                            <artifactId>slf4j-api</artifactId>

                            <version>${slf4j.version}</version>

                   </dependency>

                   <!-- activiti 日志调整到项目日志中 -->

                   <dependency>

                            <groupId>org.slf4j</groupId>

                            <artifactId>slf4j-log4j12</artifactId>

                            <version>${slf4j.version}</version>

                   </dependency>

                   <dependency>

                            <groupId>org.slf4j</groupId>

                            <artifactId>jcl-over-slf4j</artifactId>

                            <version>${slf4j.version}</version>

                   </dependency>

                   <dependency>

                            <groupId>log4j</groupId>

                            <artifactId>log4j</artifactId>

                            <version>${log4j.version}</version>

                   </dependency>

                   <!-- LOGGING end -->

                   <!-- GENERAL UTILS begin -->

                   <dependency>

                            <groupId>org.apache.commons</groupId>

                            <artifactId>commons-lang3</artifactId>

                            <version>${commons-lang3.version}</version>

                   </dependency>

                   <dependency>

                            <groupId>commons-beanutils</groupId>

                            <artifactId>commons-beanutils</artifactId>

                            <version>1.8.3</version>

                            <exclusions>

                                     <exclusion>

                                               <groupId>commons-logging</groupId>

                                               <artifactId>commons-logging</artifactId>

                                     </exclusion>

                            </exclusions>

                   </dependency>

                   <dependency>

                            <groupId>com.google.guava</groupId>

                            <artifactId>guava</artifactId>

                            <version>${guava.version}</version>

                   </dependency>

                   <dependency>

                            <groupId>org.jodd</groupId>

                            <artifactId>jodd</artifactId>

                            <version>3.3.2</version>

                   </dependency>

                   <dependency>

                            <groupId>joda-time</groupId>

                            <artifactId>joda-time</artifactId>

                            <version>${joda-time.version}</version>

                   </dependency>

                   <!-- UUID -->

                   <dependency>

                            <groupId>com.fasterxml.uuid</groupId>

                            <artifactId>java-uuid-generator</artifactId>

                            <version>3.1.3</version>

                   </dependency>

                   <!-- GENERAL UTILS end -->

              <!-- activit demo 复制得到 -->

                   <!-- 单元测试 -->

                   <dependency>

                            <groupId>junit</groupId>

                            <artifactId>junit</artifactId>

                            <version>4.11</version>

                            <!-- 表示开发的时候引入,发布的时候不会加载此包 -->

                            <scope>test</scope>

                   </dependency>

                   <!-- java ee包 -->

                   <dependency>

                            <groupId>javax</groupId>

                            <artifactId>javaee-api</artifactId>

                            <version>7.0</version>

                   </dependency>

                   <!-- spring框架包 start -->

                   <dependency>

                            <groupId>org.springframework</groupId>

                            <artifactId>spring-test</artifactId>

                            <version>${srping.version}</version>

                   </dependency>

                   <dependency>

                            <groupId>org.springframework</groupId>

                            <artifactId>spring-core</artifactId>

                            <version>${srping.version}</version>

                   </dependency>

                   <dependency>

                            <groupId>org.springframework</groupId>

                            <artifactId>spring-oxm</artifactId>

                            <version>${srping.version}</version>

                   </dependency>

                   <dependency>

                            <groupId>org.springframework</groupId>

                            <artifactId>spring-tx</artifactId>

                            <version>${srping.version}</version>

                   </dependency>

                   <dependency>

                            <groupId>org.springframework</groupId>

                            <artifactId>spring-jdbc</artifactId>

                            <version>${srping.version}</version>

                   </dependency>

                   <dependency>

                            <groupId>org.springframework</groupId>

                            <artifactId>spring-aop</artifactId>

                            <version>${srping.version}</version>

                   </dependency>

                   <dependency>

                            <groupId>org.springframework</groupId>

                            <artifactId>spring-context</artifactId>

                            <version>${srping.version}</version>

                   </dependency>

                   <dependency>

                            <groupId>org.springframework</groupId>

                            <artifactId>spring-context-support</artifactId>

                            <version>${srping.version}</version>

                   </dependency>

                   <dependency>

                            <groupId>org.springframework</groupId>

                            <artifactId>spring-expression</artifactId>

                            <version>${srping.version}</version>

                   </dependency>

                   <dependency>

                            <groupId>org.springframework</groupId>

                            <artifactId>spring-orm</artifactId>

                            <version>${srping.version}</version>

                   </dependency>

                   <dependency>

                            <groupId>org.springframework</groupId>

                            <artifactId>spring-web</artifactId>

                            <version>${srping.version}</version>

                   </dependency>

                   <dependency>

                            <groupId>org.springframework</groupId>

                            <artifactId>spring-webmvc</artifactId>

                            <version>${srping.version}</version>

                   </dependency>

                   <!-- spring框架包 end -->

                   <!-- mybatis框架包 start -->

                   <dependency>

                            <groupId>org.mybatis</groupId>

                            <artifactId>mybatis</artifactId>

                            <version>${mybatis.version}</version>

                   </dependency>

                   <dependency>

                            <groupId>org.mybatis</groupId>

                            <artifactId>mybatis-spring</artifactId>

                            <version>1.2.2</version>

                   </dependency>

                   <!-- mybatis框架包 end -->

                   <!-- 数据库驱动 -->

                   <dependency>

                            <groupId>mysql</groupId>

                            <artifactId>mysql-connector-java</artifactId>

                            <version>5.1.35</version>

                   </dependency>

                   <!-- 导入dbcp的jar包,用来在applicationContext.xml中配置数据库 -->

                   <dependency>

                            <groupId>commons-dbcp</groupId>

                            <artifactId>commons-dbcp</artifactId>

                            <version>1.4</version>

                   </dependency>

                   <!-- jstl标签类 -->

                   <dependency>

                            <groupId>jstl</groupId>

                            <artifactId>jstl</artifactId>

                            <version>1.2</version>

                   </dependency>

                   <!-- log start -->

                   <dependency>

                            <groupId>log4j</groupId>

                            <artifactId>log4j</artifactId>

                            <version>${log4j.version}</version>

                   </dependency>

                   <dependency>

                            <groupId>org.slf4j</groupId>

                            <artifactId>slf4j-api</artifactId>

                            <version>${slf4j.version}</version>

                   </dependency>

                   <dependency>

                            <groupId>org.slf4j</groupId>

                            <artifactId>slf4j-log4j12</artifactId>

                            <version>${slf4j.version}</version>

                   </dependency>

                   <!-- log END -->

                   <!-- Json -->

                   <!-- 格式化对象,方便输出日志 -->

                   <dependency>

                            <groupId>com.alibaba</groupId>

                            <artifactId>fastjson</artifactId>

                            <version>1.2.6</version>

                   </dependency>

                   <dependency>

                            <groupId>org.codehaus.jackson</groupId>

                            <artifactId>jackson-mapper-asl</artifactId>

                            <version>1.9.13</version>

                   </dependency>

                   <!-- 上传组件包 start -->

                   <dependency>

                            <groupId>commons-fileupload</groupId>

                            <artifactId>commons-fileupload</artifactId>

                            <version>1.3.1</version>

                   </dependency>

                   <dependency>

                            <groupId>commons-io</groupId>

                            <artifactId>commons-io</artifactId>

                            <version>2.4</version>

                   </dependency>

                   <dependency>

                            <groupId>commons-codec</groupId>

                            <artifactId>commons-codec</artifactId>

                            <version>1.10</version>

                   </dependency>

                   <!-- 上传组件包 end -->

         </dependencies>

部署的可视化监控  在jar包中的dubbo-admin文件中 直接部署就行

原文地址:https://www.cnblogs.com/core404/p/7562045.html