Manven+Eclipse+zookeeper搭建分布式架构

 要搭建项目,先要将项目拆分成N层,将服务(service)层独自放在A台服务器专门提供服务,zookeepek也可以单独放在一台服务器B,A服务器运行的服务要注册到B的zk注册中心,将界面层和逻辑处理放在同一层,该层只运行(springMvc+spring),该层也单独放在C台服务器。请求到C服务器,请求去B注册中心找服务。找到对应服务,返回结果到界面。

一个完整的项目可以简单拆分成:实体Po、servicedao、服务(service)、web呈现界面。简单点理解就是提供者和消费者的关系。提供者:服务(service),消费者:web呈现界面。

1、  建立实体Po Maven项目层。

该项目pom.xml不引用其他jar包,默认配置。

2、  建立servicedaoMaven项目层。

该项目要引用实体Po项目中的实体po,还要引用其他jar包,所以都在该项目的pom.xml中配置jar包的引用。

该项目的pom.xml文件配置

[html]  view plain  copy
  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  2.     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">  
  3.     <modelVersion>4.0.0modelVersion>  
  4.   
  5.     <groupId>end.gx.servicedaogroupId>  
  6.     <artifactId>servicedaoartifactId>  
  7.     <version>0.0.1-SNAPSHOTversion>  
  8.     <packaging>jarpackaging>  
  9.   
  10.     <name>servicedaoname>  
  11.     <url>http://maven.apache.orgurl>  
  12.   
  13.     <properties>  
  14.           
  15.         <spring.version>3.2.4.RELEASEspring.version>  
  16.           
  17.         <mybatis.version>3.2.4mybatis.version>  
  18.           
  19.         <slf4j.version>1.6.6slf4j.version>  
  20.         <log4j.version>1.2.17log4j.version>  
  21.         <fastjson.version>1.1.33fastjson.version>  
  22.         <commons-codec.version>1.6commons-codec.version>  
  23.         <commons-lang.version>2.5commons-lang.version>  
  24.         <zookeeper_version>3.3.3zookeeper_version>  
  25.         <zkclient_version>0.1zkclient_version>  
  26.         <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>  
  27.     properties>  
  28.   
  29.     <dependencies>  
  30.   
  31.           
  32.         <dependency>  
  33.             <groupId>end.gx.entitygroupId>  
  34.             <artifactId>poartifactId>  
  35.             <version>0.0.1-SNAPSHOTversion>  
  36.         dependency>  
  37.   
  38.           
  39.         <dependency>  
  40.             <groupId>org.springframeworkgroupId>  
  41.             <artifactId>spring-coreartifactId>  
  42.             <version>${spring.version}version>  
  43.         dependency>  
  44.   
  45.         <dependency>  
  46.             <groupId>org.springframeworkgroupId>  
  47.             <artifactId>spring-webartifactId>  
  48.             <version>${spring.version}version>  
  49.         dependency>  
  50.   
  51.         <dependency>  
  52.             <groupId>org.springframeworkgroupId>  
  53.             <artifactId>spring-oxmartifactId>  
  54.             <version>${spring.version}version>  
  55.         dependency>  
  56.   
  57.         <dependency>  
  58.             <groupId>org.springframeworkgroupId>  
  59.             <artifactId>spring-txartifactId>  
  60.             <version>${spring.version}version>  
  61.         dependency>  
  62.   
  63.         <dependency>  
  64.             <groupId>org.springframeworkgroupId>  
  65.             <artifactId>spring-webmvcartifactId>  
  66.             <version>${spring.version}version>  
  67.         dependency>  
  68.   
  69.         <dependency>  
  70.             <groupId>org.springframeworkgroupId>  
  71.             <artifactId>spring-aopartifactId>  
  72.             <version>${spring.version}version>  
  73.         dependency>  
  74.   
  75.         <dependency>  
  76.             <groupId>org.springframeworkgroupId>  
  77.             <artifactId>spring-jdbcartifactId>  
  78.             <version>${spring.version}version>  
  79.         dependency>  
  80.   
  81.         <dependency>  
  82.             <groupId>org.springframeworkgroupId>  
  83.             <artifactId>spring-context-supportartifactId>  
  84.             <version>${spring.version}version>  
  85.         dependency>  
  86.   
  87.         <dependency>  
  88.             <groupId>org.springframeworkgroupId>  
  89.             <artifactId>spring-testartifactId>  
  90.             <version>${spring.version}version>  
  91.         dependency>  
  92.   
  93.         <dependency>  
  94.             <groupId>org.springframeworkgroupId>  
  95.             <artifactId>spring-aspectsartifactId>  
  96.             <version>${spring.version}version>  
  97.         dependency>  
  98.           
  99.           
  100.           
  101.         <dependency>  
  102.             <groupId>org.mybatisgroupId>  
  103.             <artifactId>mybatisartifactId>  
  104.             <version>${mybatis.version}version>  
  105.         dependency>  
  106.           
  107.         <dependency>  
  108.             <groupId>org.mybatisgroupId>  
  109.             <artifactId>mybatis-springartifactId>  
  110.             <version>1.2.2version>  
  111.         dependency>  
  112.           
  113.         <dependency>  
  114.             <groupId>mysqlgroupId>  
  115.             <artifactId>mysql-connector-javaartifactId>  
  116.             <version>5.1.22version>  
  117.         dependency>  
  118.   
  119.           
  120.         <dependency>  
  121.             <groupId>junitgroupId>  
  122.             <artifactId>junitartifactId>  
  123.             <version>4.11version>  
  124.             <scope>testscope>  
  125.         dependency>  
  126.   
  127.           
  128.         <dependency>  
  129.             <groupId>com.alibabagroupId>  
  130.             <artifactId>druidartifactId>  
  131.             <version>1.0.2version>  
  132.         dependency>  
  133.           
  134.         <dependency>  
  135.             <groupId>com.alibabagroupId>  
  136.             <artifactId>fastjsonartifactId>  
  137.             <version>${fastjson.version}version>  
  138.         dependency>  
  139.         <dependency>  
  140.             <groupId>org.codehaus.jacksongroupId>  
  141.             <artifactId>jackson-mapper-aslartifactId>  
  142.             <version>1.9.13version>  
  143.         dependency>  
  144.         <dependency>  
  145.             <groupId>com.google.code.gsongroupId>  
  146.             <artifactId>gsonartifactId>  
  147.             <version>2.8.0version>  
  148.         dependency>  
  149.           
  150.         <dependency>  
  151.             <groupId>net.sf.json-libgroupId>  
  152.             <artifactId>json-libartifactId>  
  153.             <version>2.4version>  
  154.             <classifier>jdk15classifier>  
  155.         dependency>  
  156.   
  157.           
  158.         <dependency>  
  159.             <groupId>commons-fileuploadgroupId>  
  160.             <artifactId>commons-fileuploadartifactId>  
  161.             <version>1.3.1version>  
  162.         dependency>  
  163.   
  164.         <dependency>  
  165.             <groupId>commons-langgroupId>  
  166.             <artifactId>commons-langartifactId>  
  167.             <version>${commons-lang.version}version>  
  168.         dependency>  
  169.   
  170.         <dependency>  
  171.             <groupId>org.apache.commonsgroupId>  
  172.             <artifactId>commons-lang3artifactId>  
  173.             <version>3.4version>  
  174.         dependency>  
  175.   
  176.         <dependency>  
  177.             <groupId>commons-codecgroupId>  
  178.             <artifactId>commons-codecartifactId>  
  179.             <version>${commons-codec.version}version>  
  180.         dependency>  
  181.           
  182.         <dependency>  
  183.             <groupId>javax.servletgroupId>  
  184.             <artifactId>jstlartifactId>  
  185.             <version>1.2version>  
  186.             <scope>runtimescope>  
  187.         dependency>  
  188.   
  189.         <dependency>  
  190.             <groupId>javax.servletgroupId>  
  191.             <artifactId>servlet-apiartifactId>  
  192.             <version>2.5version>  
  193.             <scope>providedscope>  
  194.         dependency>  
  195.   
  196.         <dependency>  
  197.             <groupId>javax.servlet.jspgroupId>  
  198.             <artifactId>jsp-apiartifactId>  
  199.             <version>2.0version>  
  200.             <scope>providedscope>  
  201.         dependency>  
  202.   
  203.           
  204.           
  205.         <dependency>  
  206.             <groupId>log4jgroupId>  
  207.             <artifactId>log4jartifactId>  
  208.             <version>${log4j.version}version>  
  209.         dependency>  
  210.         <dependency>  
  211.             <groupId>org.slf4jgroupId>  
  212.             <artifactId>slf4j-apiartifactId>  
  213.             <version>${slf4j.version}version>  
  214.         dependency>  
  215.         <dependency>  
  216.             <groupId>org.slf4jgroupId>  
  217.             <artifactId>slf4j-log4j12artifactId>  
  218.             <version>${slf4j.version}version>  
  219.         dependency>  
  220.           
  221.   
  222.           
  223.         <dependency>  
  224.             <groupId>org.freemarkergroupId>  
  225.             <artifactId>freemarkerartifactId>  
  226.             <version>2.3.22version>  
  227.         dependency>  
  228.   
  229.           
  230.         <dependency>  
  231.             <groupId>jsptagsgroupId>  
  232.             <artifactId>pager-taglibartifactId>  
  233.             <version>2.0version>  
  234.         dependency>  
  235.           
  236.         <dependency>  
  237.             <groupId>javax.mailgroupId>  
  238.             <artifactId>mailartifactId>  
  239.             <version>1.4version>  
  240.         dependency>  
  241.           
  242.         <dependency>  
  243.             <groupId>net.sf.ehcachegroupId>  
  244.             <artifactId>ehcacheartifactId>  
  245.             <version>2.9.1version>  
  246.         dependency>  
  247.     dependencies>  
  248. project>  

3、  建立提供者(service)MavenWeb项目

该项目要引用实体Po和servicedao和其他jar包,最主要的是各种配置文件要配置正确。

先是pom.xml的配置:

[html]  view plain  copy
  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  2.     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">  
  3.     <modelVersion>4.0.0modelVersion>  
  4.     <groupId>end.gx.servicegroupId>  
  5.     <artifactId>serviceartifactId>  
  6.     <packaging>warpackaging>  
  7.     <version>0.0.1-SNAPSHOTversion>  
  8.     <name>service Maven Webappname>  
  9.     <url>http://maven.apache.orgurl>  
  10.   
  11.   
  12.     <properties>  
  13.           
  14.         <spring.version>3.2.4.RELEASEspring.version>  
  15.           
  16.         <mybatis.version>3.2.4mybatis.version>  
  17.           
  18.         <slf4j.version>1.6.6slf4j.version>  
  19.         <log4j.version>1.2.17log4j.version>  
  20.         <fastjson.version>1.1.33fastjson.version>  
  21.         <commons-codec.version>1.6commons-codec.version>  
  22.         <commons-lang.version>2.5commons-lang.version>  
  23.         <zookeeper_version>3.3.3zookeeper_version>  
  24.         <zkclient_version>0.1zkclient_version>  
  25.         <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>  
  26.     properties>  
  27.     <dependencies>  
  28.           
  29.         <dependency>  
  30.             <groupId>end.gx.entitygroupId>  
  31.             <artifactId>poartifactId>  
  32.             <version>0.0.1-SNAPSHOTversion>  
  33.         dependency>  
  34.   
  35.           
  36.         <dependency>  
  37.             <groupId>end.gx.servicedaogroupId>  
  38.             <artifactId>servicedaoartifactId>  
  39.             <version>0.0.1-SNAPSHOTversion>  
  40.         dependency>  
  41.   
  42.           
  43.         <dependency>  
  44.             <groupId>org.springframeworkgroupId>  
  45.             <artifactId>spring-coreartifactId>  
  46.             <version>${spring.version}version>  
  47.         dependency>  
  48.   
  49.         <dependency>  
  50.             <groupId>org.springframeworkgroupId>  
  51.             <artifactId>spring-webartifactId>  
  52.             <version>${spring.version}version>  
  53.         dependency>  
  54.   
  55.         <dependency>  
  56.             <groupId>org.springframeworkgroupId>  
  57.             <artifactId>spring-oxmartifactId>  
  58.             <version>${spring.version}version>  
  59.         dependency>  
  60.   
  61.         <dependency>  
  62.             <groupId>org.springframeworkgroupId>  
  63.             <artifactId>spring-txartifactId>  
  64.             <version>${spring.version}version>  
  65.         dependency>  
  66.   
  67.         <dependency>  
  68.             <groupId>org.springframeworkgroupId>  
  69.             <artifactId>spring-webmvcartifactId>  
  70.             <version>${spring.version}version>  
  71.         dependency>  
  72.   
  73.         <dependency>  
  74.             <groupId>org.springframeworkgroupId>  
  75.             <artifactId>spring-aopartifactId>  
  76.             <version>${spring.version}version>  
  77.         dependency>  
  78.   
  79.         <dependency>  
  80.             <groupId>org.springframeworkgroupId>  
  81.             <artifactId>spring-jdbcartifactId>  
  82.             <version>${spring.version}version>  
  83.         dependency>  
  84.   
  85.         <dependency>  
  86.             <groupId>org.springframeworkgroupId>  
  87.             <artifactId>spring-context-supportartifactId>  
  88.             <version>${spring.version}version>  
  89.         dependency>  
  90.   
  91.         <dependency>  
  92.             <groupId>org.springframeworkgroupId>  
  93.             <artifactId>spring-testartifactId>  
  94.             <version>${spring.version}version>  
  95.         dependency>  
  96.   
  97.         <dependency>  
  98.             <groupId>org.springframeworkgroupId>  
  99.             <artifactId>spring-aspectsartifactId>  
  100.             <version>${spring.version}version>  
  101.         dependency>  
  102.           
  103.   
  104.           
  105.         <dependency>  
  106.             <groupId>com.alibabagroupId>  
  107.             <artifactId>dubboartifactId>  
  108.             <version>2.5.3version>  
  109.             <exclusions>  
  110.                 <exclusion>  
  111.                     <groupId>org.springframeworkgroupId>  
  112.                     <artifactId>springartifactId>  
  113.                 exclusion>  
  114.             exclusions>  
  115.         dependency>  
  116.           
  117.           
  118.         <dependency>  
  119.             <groupId>org.apache.zookeepergroupId>  
  120.             <artifactId>zookeeperartifactId>  
  121.             <version>3.3.3version>  
  122.         dependency>  
  123.         <dependency>  
  124.             <groupId>com.github.sgroschupfgroupId>  
  125.             <artifactId>zkclientartifactId>  
  126.             <version>0.1version>  
  127.         dependency>  
  128.         <dependency>  
  129.             <groupId>org.codehaus.xfiregroupId>  
  130.             <artifactId>xfire-allartifactId>  
  131.             <version>1.2.6version>  
  132.             <exclusions>  
  133.                 <exclusion>  
  134.                     <groupId>org.springframeworkgroupId>  
  135.                     <artifactId>springartifactId>  
  136.                 exclusion>  
  137.             exclusions>  
  138.         dependency>  
  139.           
  140.           
  141.         <dependency>  
  142.             <groupId>org.mybatisgroupId>  
  143.             <artifactId>mybatisartifactId>  
  144.             <version>${mybatis.version}version>  
  145.         dependency>  
  146.           
  147.         <dependency>  
  148.             <groupId>org.mybatisgroupId>  
  149.             <artifactId>mybatis-springartifactId>  
  150.             <version>1.2.2version>  
  151.         dependency>  
  152.           
  153.         <dependency>  
  154.             <groupId>mysqlgroupId>  
  155.             <artifactId>mysql-connector-javaartifactId>  
  156.             <version>5.1.22version>  
  157.         dependency>  
  158.   
  159.           
  160.         <dependency>  
  161.             <groupId>junitgroupId>  
  162.             <artifactId>junitartifactId>  
  163.             <version>4.11version>  
  164.             <scope>testscope>  
  165.         dependency>  
  166.   
  167.           
  168.         <dependency>  
  169.             <groupId>com.alibabagroupId>  
  170.             <artifactId>druidartifactId>  
  171.             <version>1.0.2version>  
  172.         dependency>  
  173.           
  174.         <dependency>  
  175.             <groupId>com.alibabagroupId>  
  176.             <artifactId>fastjsonartifactId>  
  177.             <version>${fastjson.version}version>  
  178.         dependency>  
  179.         <dependency>  
  180.             <groupId>org.codehaus.jacksongroupId>  
  181.             <artifactId>jackson-mapper-aslartifactId>  
  182.             <version>1.9.13version>  
  183.         dependency>  
  184.         <dependency>  
  185.             <groupId>com.google.code.gsongroupId>  
  186.             <artifactId>gsonartifactId>  
  187.             <version>2.8.0version>  
  188.         dependency>  
  189.           
  190.         <dependency>  
  191.             <groupId>net.sf.json-libgroupId>  
  192.             <artifactId>json-libartifactId>  
  193.             <version>2.4version>  
  194.             <classifier>jdk15classifier>  
  195.         dependency>  
  196.   
  197.           
  198.         <dependency>  
  199.             <groupId>commons-fileuploadgroupId>  
  200.             <artifactId>commons-fileuploadartifactId>  
  201.             <version>1.3.1version>  
  202.         dependency>  
  203.   
  204.         <dependency>  
  205.             <groupId>commons-langgroupId>  
  206.             <artifactId>commons-langartifactId>  
  207.             <version>${commons-lang.version}version>  
  208.         dependency>  
  209.   
  210.         <dependency>  
  211.             <groupId>org.apache.commonsgroupId>  
  212.             <artifactId>commons-lang3artifactId>  
  213.             <version>3.4version>  
  214.         dependency>  
  215.   
  216.         <dependency>  
  217.             <groupId>commons-codecgroupId>  
  218.             <artifactId>commons-codecartifactId>  
  219.             <version>${commons-codec.version}version>  
  220.         dependency>  
  221.           
  222.         <dependency>  
  223.             <groupId>javax.servletgroupId>  
  224.             <artifactId>jstlartifactId>  
  225.             <version>1.2version>  
  226.             <scope>runtimescope>  
  227.         dependency>  
  228.   
  229.         <dependency>  
  230.             <groupId>javax.servletgroupId>  
  231.             <artifactId>servlet-apiartifactId>  
  232.             <version>2.5version>  
  233.             <scope>providedscope>  
  234.         dependency>  
  235.   
  236.         <dependency>  
  237.             <groupId>javax.servlet.jspgroupId>  
  238.             <artifactId>jsp-apiartifactId>  
  239.             <version>2.0version>  
  240.             <scope>providedscope>  
  241.         dependency>  
  242.   
  243.           
  244.           
  245.         <dependency>  
  246.             <groupId>log4jgroupId>  
  247.             <artifactId>log4jartifactId>  
  248.             <version>${log4j.version}version>  
  249.         dependency>  
  250.         <dependency>  
  251.             <groupId>org.slf4jgroupId>  
  252.             <artifactId>slf4j-apiartifactId>  
  253.             <version>${slf4j.version}version>  
  254.         dependency>  
  255.         <dependency>  
  256.             <groupId>org.slf4jgroupId>  
  257.             <artifactId>slf4j-log4j12artifactId>  
  258.             <version>${slf4j.version}version>  
  259.         dependency>  
  260.           
  261.   
  262.           
  263.         <dependency>  
  264.             <groupId>org.freemarkergroupId>  
  265.             <artifactId>freemarkerartifactId>  
  266.             <version>2.3.22version>  
  267.         dependency>  
  268.   
  269.           
  270.         <dependency>  
  271.             <groupId>jsptagsgroupId>  
  272.             <artifactId>pager-taglibartifactId>  
  273.             <version>2.0version>  
  274.         dependency>  
  275.           
  276.         <dependency>  
  277.             <groupId>javax.mailgroupId>  
  278.             <artifactId>mailartifactId>  
  279.             <version>1.4version>  
  280.         dependency>  
  281.           
  282.         <dependency>  
  283.             <groupId>net.sf.ehcachegroupId>  
  284.             <artifactId>ehcacheartifactId>  
  285.             <version>2.9.1version>  
  286.         dependency>  
  287.     dependencies>  
  288.     <build>  
  289.         <finalName>servicefinalName>  
  290.     build>  
  291. project>  

接着applicationContext.xml配置:

[html]  view plain  copy
  1. xml version="1.0" encoding="UTF-8"?>  
  2. <beans  
  3.     xmlns="http://www.springframework.org/schema/beans"  
  4.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  5.     xmlns:p="http://www.springframework.org/schema/p"  
  6.     xmlns:context="http://www.springframework.org/schema/context"  
  7.     xmlns:aop="http://www.springframework.org/schema/aop"  
  8.     xmlns:tx="http://www.springframework.org/schema/tx"    
  9.     xsi:schemaLocation="  
  10.     http://www.springframework.org/schema/tx  
  11.     http://www.springframework.org/schema/tx/spring-tx-3.1.xsd  
  12.     http://www.springframework.org/schema/aop     
  13.     http://www.springframework.org/schema/aop/spring-aop-3.1.xsd  
  14.     http://www.springframework.org/schema/context    
  15.     http://www.springframework.org/schema/context/spring-context-3.1.xsd    
  16.     http://www.springframework.org/schema/beans   
  17.     http://www.springframework.org/schema/beans/spring-beans-3.1.xsd">  
  18.       
  19.     <context:annotation-config />  
  20.       
  21.     <context:component-scan base-package="end.gx.dao,end.gx.service">  
  22.         <context:include-filter type="annotation" expression="org.springframework.stereotype.Service" />  
  23.         <context:include-filter type="annotation" expression="org.springframework.stereotype.Repository" />  
  24.     context:component-scan>  
  25. beans>  
再接着spring-mybatis.xml和 jdbc.properties 配置:

jdbc.properties

[html]  view plain  copy
  1. driverClassName=com.mysql.jdbc.Driver  
  2. url=jdbc:mysql://192.168.3.16:3306/hotelmanagementsystem?useUnicode=true&characterEncoding=utf-8  
  3. username=root  
  4. password=123  
  5. validationQuery=SELECT 1  

spring-mybatis.xml:

[html]  view plain  copy
  1. xml version="1.0" encoding="UTF-8"?>  
  2. <beans  
  3.     xmlns="http://www.springframework.org/schema/beans"  
  4.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  5.     xmlns:p="http://www.springframework.org/schema/p"  
  6.     xmlns:context="http://www.springframework.org/schema/context"  
  7.     xmlns:aop="http://www.springframework.org/schema/aop"  
  8.     xmlns:tx="http://www.springframework.org/schema/tx"    
  9.     xsi:schemaLocation="  
  10.     http://www.springframework.org/schema/tx  
  11.     http://www.springframework.org/schema/tx/spring-tx-3.1.xsd  
  12.     http://www.springframework.org/schema/aop     
  13.     http://www.springframework.org/schema/aop/spring-aop-3.1.xsd  
  14.     http://www.springframework.org/schema/context    
  15.     http://www.springframework.org/schema/context/spring-context-3.1.xsd    
  16.     http://www.springframework.org/schema/beans   
  17.     http://www.springframework.org/schema/beans/spring-beans-3.1.xsd">  
  18.       
  19.         
  20.     <bean id="dbProperties" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">  
  21.              
  22.         <property name="ignoreUnresolvablePlaceholders" value="true" />  
  23.          <property name="locations">    
  24.             <list>    
  25.                 <value>classpath:jdbc.propertiesvalue>    
  26.             list>    
  27.         property>    
  28.     bean>  
  29.       
  30.       
  31.       
  32.     <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">  
  33.         <property name="url" value="${url}" />  
  34.         <property name="username" value="${username}" />  
  35.         <property name="password" value="${password}" />  
  36.           
  37.         <property name="initialSize" value="0" />  
  38.           
  39.         <property name="maxActive" value="20" />  
  40.           
  41.         <property name="maxIdle" value="20" />  
  42.           
  43.         <property name="minIdle" value="0" />  
  44.           
  45.         <property name="maxWait" value="60000" />  
  46.         <property name="validationQuery" value="${validationQuery}" />  
  47.         <property name="testOnBorrow" value="false" />  
  48.         <property name="testOnReturn" value="false" />  
  49.         <property name="testWhileIdle" value="true" />  
  50.           
  51.         <property name="timeBetweenEvictionRunsMillis" value="60000" />  
  52.           
  53.         <property name="minEvictableIdleTimeMillis" value="25200000" />  
  54.           
  55.         <property name="removeAbandoned" value="true" />  
  56.           
  57.         <property name="removeAbandonedTimeout" value="1800" />  
  58.           
  59.         <property name="logAbandoned" value="true" />  
  60.           
  61.           
  62.         <property name="filters" value="mergeStat" />  
  63.     bean>  
  64.       
  65.       
  66.       
  67.     <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">  
  68.           
  69.         <property name="dataSource" ref="dataSource" />  
  70.         <property name="configLocation" value="classpath:mybatis.cofig.xml"/>  
  71.           
  72.         <property name="mapperLocations" value="classpath:end/gx/mapping/*.xml" />  
  73.     bean>  
  74.       
  75.       
  76.     <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">  
  77.           
  78.         <property name="basePackage" value="end.gx.dao" />  
  79.         <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />  
  80.     bean>  
  81.       
  82.       
  83.     <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">  
  84.         <property name="dataSource" ref="dataSource" />  
  85.     bean>  
  86.       
  87.       
  88.     <tx:advice id="transactionAdvice" transaction-manager="transactionManager">  
  89.         <tx:attributes>  
  90.             <tx:method name="add*" propagation="REQUIRED" />  
  91.             <tx:method name="append*" propagation="REQUIRED" />  
  92.             <tx:method name="insert*" propagation="REQUIRED" />  
  93.             <tx:method name="save*" propagation="REQUIRED" />  
  94.             <tx:method name="update*" propagation="REQUIRED" />  
  95.             <tx:method name="modify*" propagation="REQUIRED" />  
  96.             <tx:method name="edit*" propagation="REQUIRED" />  
  97.             <tx:method name="delete*" propagation="REQUIRED" />  
  98.             <tx:method name="remove*" propagation="REQUIRED" />  
  99.             <tx:method name="repair" propagation="REQUIRED" />  
  100.             <tx:method name="delAndRepair" propagation="REQUIRED" />  
  101.             <tx:method name="get*" propagation="SUPPORTS" />  
  102.             <tx:method name="find*" propagation="SUPPORTS" />  
  103.             <tx:method name="load*" propagation="SUPPORTS" />  
  104.             <tx:method name="search*" propagation="SUPPORTS" />  
  105.             <tx:method name="datagrid*" propagation="SUPPORTS" />  
  106.             <tx:method name="*" propagation="SUPPORTS" />  
  107.         tx:attributes>  
  108.     tx:advice>  
  109.     <aop:config>  
  110.         <aop:pointcut id="transactionPointcut" expression="execution(* com.gx.service_dao.service..*Impl.*(..))" />     
  111.         <aop:advisor pointcut-ref="transactionPointcut" advice-ref="transactionAdvice" />  
  112.     aop:config>  
  113.       
  114.     <bean id="druid-stat-interceptor" class="com.alibaba.druid.support.spring.stat.DruidStatInterceptor">bean>  
  115.     <bean id="druid-stat-pointcut" class="org.springframework.aop.support.JdkRegexpMethodPointcut" scope="prototype">  
  116.         <property name="patterns">  
  117.             <list>  
  118.                 <value>com.gx.service_dao.service.*value>  
  119.             list>  
  120.         property>  
  121.     bean>  
  122.     <aop:config>  
  123.         <aop:advisor advice-ref="druid-stat-interceptor" pointcut-ref="druid-stat-pointcut" />  
  124.     aop:config>  
  125.       
  126.     beans>  

再有spring-dubbo-provider.xml配置:

[html]  view plain  copy
  1. xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
  4.     xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"  
  5.     xsi:schemaLocation="http://www.springframework.org/schema/beans            
  6.     http://www.springframework.org/schema/beans/spring-beans.xsd            
  7.     http://code.alibabatech.com/schema/dubbo            
  8.     http://code.alibabatech.com/schema/dubbo/dubbo.xsd">  
  9. <dubbo:application name="dubbo-service" />  
  10.   
  11.     <dubbo:registry address="zookeeper://127.168.3.16:2181" />  
  12.     <dubbo:protocol name="dubbo" port="20880" />  
  13.            
  14.     <dubbo:service interface="end.gx.service.UserService" ref="userService" />  
  15.           
  16.     <bean id="userService" class="end.gx.service.impl.UserServiceImpl" />  
  17. beans>  

最后web.xml配置:

[html]  view plain  copy
  1. xml version="1.0" encoding="UTF-8"?>  
  2. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  3.     xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"  
  4.     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"  
  5.     id="WebApp_ID" version="2.5">  
  6.       
  7.   <display-name>Archetype Created Web Applicationdisplay-name>  
  8.     
  9.   <context-param>  
  10.         <param-name>contextConfigLocationparam-name>  
  11.         <param-value>  
  12.             classpath:applicationContext.xml,  
  13.             classpath:spring-mybatis.xml,  
  14.             classpath:spring-dubbo-provider.xml  
  15.         param-value>  
  16.     context-param>  
  17.   
  18.     <listener>  
  19.         <description>spring监听器description>  
  20.         <listener-class>org.springframework.web.context.ContextLoaderListenerlistener-class>  
  21.     listener>  
  22. web-app>  

4、建立消费方(web) MavenWeb项目

该项目要引用实体Po和servicedao,还要引用其他jar包。还有各种配置文件要正确配置。

先是pom.xml配置:

[html]  view plain  copy
  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  2.     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">  
  3.     <modelVersion>4.0.0modelVersion>  
  4.     <groupId>end.gx.servicegroupId>  
  5.     <artifactId>servicewebartifactId>  
  6.     <packaging>warpackaging>  
  7.     <version>0.0.1-SNAPSHOTversion>  
  8.     <name>serviceweb Maven Webappname>  
  9.     <url>http://maven.apache.orgurl>  
  10.   
  11.     <properties>  
  12.           
  13.         <spring.version>3.2.4.RELEASEspring.version>  
  14.           
  15.         <mybatis.version>3.2.4mybatis.version>  
  16.           
  17.         <slf4j.version>1.6.6slf4j.version>  
  18.         <log4j.version>1.2.17log4j.version>  
  19.         <fastjson.version>1.1.33fastjson.version>  
  20.         <commons-codec.version>1.6commons-codec.version>  
  21.         <commons-lang.version>2.5commons-lang.version>  
  22.         <zookeeper_version>3.3.3zookeeper_version>  
  23.         <zkclient_version>0.1zkclient_version>  
  24.         <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>  
  25.     properties>  
  26.   
  27.     <dependencies>  
  28.   
  29.           
  30.         <dependency>  
  31.             <groupId>end.gx.servicedaogroupId>  
  32.             <artifactId>servicedaoartifactId>  
  33.             <version>0.0.1-SNAPSHOTversion>  
  34.         dependency>  
  35.   
  36.           
  37.         <dependency>  
  38.             <groupId>end.gx.entitygroupId>  
  39.             <artifactId>poartifactId>  
  40.             <version>0.0.1-SNAPSHOTversion>  
  41.         dependency>  
  42.   
  43.           
  44.         <dependency>  
  45.             <groupId>org.springframeworkgroupId>  
  46.             <artifactId>spring-coreartifactId>  
  47.             <version>${spring.version}version>  
  48.         dependency>  
  49.   
  50.         <dependency>  
  51.             <groupId>org.springframeworkgroupId>  
  52.             <artifactId>spring-webartifactId>  
  53.             <version>${spring.version}version>  
  54.         dependency>  
  55.   
  56.         <dependency>  
  57.             <groupId>org.springframeworkgroupId>  
  58.             <artifactId>spring-oxmartifactId>  
  59.             <version>${spring.version}version>  
  60.         dependency>  
  61.   
  62.         <dependency>  
  63.             <groupId>org.springframeworkgroupId>  
  64.             <artifactId>spring-txartifactId>  
  65.             <version>${spring.version}version>  
  66.         dependency>  
  67.   
  68.         <dependency>  
  69.             <groupId>org.springframeworkgroupId>  
  70.             <artifactId>spring-webmvcartifactId>  
  71.             <version>${spring.version}version>  
  72.         dependency>  
  73.   
  74.         <dependency>  
  75.             <groupId>org.springframeworkgroupId>  
  76.             <artifactId>spring-aopartifactId>  
  77.             <version>${spring.version}version>  
  78.         dependency>  
  79.   
  80.         <dependency>  
  81.             <groupId>org.springframeworkgroupId>  
  82.             <artifactId>spring-jdbcartifactId>  
  83.             <version>${spring.version}version>  
  84.         dependency>  
  85.   
  86.         <dependency>  
  87.             <groupId>org.springframeworkgroupId>  
  88.             <artifactId>spring-context-supportartifactId>  
  89.             <version>${spring.version}version>  
  90.         dependency>  
  91.   
  92.         <dependency>  
  93.             <groupId>org.springframeworkgroupId>  
  94.             <artifactId>spring-testartifactId>  
  95.             <version>${spring.version}version>  
  96.         dependency>  
  97.   
  98.         <dependency>  
  99.             <groupId>org.springframeworkgroupId>  
  100.             <artifactId>spring-aspectsartifactId>  
  101.             <version>${spring.version}version>  
  102.         dependency>  
  103.           
  104.   
  105.   
  106.           
  107.         <dependency>  
  108.             <groupId>com.alibabagroupId>  
  109.             <artifactId>dubboartifactId>  
  110.             <version>2.5.3version>  
  111.             <exclusions>  
  112.                 <exclusion>  
  113.                     <groupId>org.springframeworkgroupId>  
  114.                     <artifactId>springartifactId>  
  115.                 exclusion>  
  116.             exclusions>  
  117.         

你可能感兴趣的:(Manven+Eclipse+zookeeper搭建分布式架构)