频道栏目
首页 > 程序开发 > 软件开发 > 其他 > 正文
Manven+Eclipse+zookeeper搭建分布式架构
2016-12-22 09:28:00         来源:广信_古真虎的博客  
收藏   我要投稿

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文件配置


	4.0.0

	end.gx.servicedao
	servicedao
	0.0.1-SNAPSHOT
	jar

	servicedao
	https://maven.apache.org

	
		
		3.2.4.RELEASE
		
		3.2.4
		
		1.6.6
		1.2.17
		1.1.33
		1.6
		2.5
		3.3.3
		0.1
		UTF-8
	

	

		
		
			end.gx.entity
			po
			0.0.1-SNAPSHOT
		

		
		
			org.springframework
			spring-core
			${spring.version}
		

		
			org.springframework
			spring-web
			${spring.version}
		

		
			org.springframework
			spring-oxm
			${spring.version}
		

		
			org.springframework
			spring-tx
			${spring.version}
		

		
			org.springframework
			spring-webmvc
			${spring.version}
		

		
			org.springframework
			spring-aop
			${spring.version}
		

		
			org.springframework
			spring-jdbc
			${spring.version}
		

		
			org.springframework
			spring-context-support
			${spring.version}
		

		
			org.springframework
			spring-test
			${spring.version}
		

		
			org.springframework
			spring-aspects
			${spring.version}
		
		
		
		
		
			org.mybatis
			mybatis
			${mybatis.version}
		
		
		
			org.mybatis
			mybatis-spring
			1.2.2
		
		
		
			mysql
			mysql-connector-java
			5.1.22
		

		
		
			junit
			junit
			4.11
			test
		

		
		
			com.alibaba
			druid
			1.0.2
		
		
		
			com.alibaba
			fastjson
			${fastjson.version}
		
		
			org.codehaus.jackson
			jackson-mapper-asl
			1.9.13
		
		
			com.google.code.gson
			gson
			2.8.0
		
		
		
			net.sf.json-lib
			json-lib
			2.4
			jdk15
		

		
		
			commons-fileupload
			commons-fileupload
			1.3.1
		

		
			commons-lang
			commons-lang
			${commons-lang.version}
		

		
			org.apache.commons
			commons-lang3
			3.4
		

		
			commons-codec
			commons-codec
			${commons-codec.version}
		
		
		
			javax.servlet
			jstl
			1.2
			runtime
		

		
			javax.servlet
			servlet-api
			2.5
			provided
		

		
			javax.servlet.jsp
			jsp-api
			2.0
			provided
		

		
		
		
			log4j
			log4j
			${log4j.version}
		
		
			org.slf4j
			slf4j-api
			${slf4j.version}
		
		
			org.slf4j
			slf4j-log4j12
			${slf4j.version}
		
		

		
		
			org.freemarker
			freemarker
			2.3.22
		

		
		
			jsptags
			pager-taglib
			2.0
		
		
		
			javax.mail
			mail
			1.4
		
		
		
			net.sf.ehcache
			ehcache
			2.9.1
		
	

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

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

先是pom.xml的配置:


	4.0.0
	end.gx.service
	service
	war
	0.0.1-SNAPSHOT
	service Maven Webapp
	https://maven.apache.org


	
		
		3.2.4.RELEASE
		
		3.2.4
		
		1.6.6
		1.2.17
		1.1.33
		1.6
		2.5
		3.3.3
		0.1
		UTF-8
	
	
		
		
			end.gx.entity
			po
			0.0.1-SNAPSHOT
		

		
		
			end.gx.servicedao
			servicedao
			0.0.1-SNAPSHOT
		

		
		
			org.springframework
			spring-core
			${spring.version}
		

		
			org.springframework
			spring-web
			${spring.version}
		

		
			org.springframework
			spring-oxm
			${spring.version}
		

		
			org.springframework
			spring-tx
			${spring.version}
		

		
			org.springframework
			spring-webmvc
			${spring.version}
		

		
			org.springframework
			spring-aop
			${spring.version}
		

		
			org.springframework
			spring-jdbc
			${spring.version}
		

		
			org.springframework
			spring-context-support
			${spring.version}
		

		
			org.springframework
			spring-test
			${spring.version}
		

		
			org.springframework
			spring-aspects
			${spring.version}
		
		

		
		
			com.alibaba
			dubbo
			2.5.3
			
				
					org.springframework
					spring
				
			
		
		
		
		
			org.apache.zookeeper
			zookeeper
			3.3.3
		
		
			com.github.sgroschupf
			zkclient
			0.1
		
		
			org.codehaus.xfire
			xfire-all
			1.2.6
			
				
					org.springframework
					spring
				
			
		
		
		
		
			org.mybatis
			mybatis
			${mybatis.version}
		
		
		
			org.mybatis
			mybatis-spring
			1.2.2
		
		
		
			mysql
			mysql-connector-java
			5.1.22
		

		
		
			junit
			junit
			4.11
			test
		

		
		
			com.alibaba
			druid
			1.0.2
		
		
		
			com.alibaba
			fastjson
			${fastjson.version}
		
		
			org.codehaus.jackson
			jackson-mapper-asl
			1.9.13
		
		
			com.google.code.gson
			gson
			2.8.0
		
		
		
			net.sf.json-lib
			json-lib
			2.4
			jdk15
		

		
		
			commons-fileupload
			commons-fileupload
			1.3.1
		

		
			commons-lang
			commons-lang
			${commons-lang.version}
		

		
			org.apache.commons
			commons-lang3
			3.4
		

		
			commons-codec
			commons-codec
			${commons-codec.version}
		
		
		
			javax.servlet
			jstl
			1.2
			runtime
		

		
			javax.servlet
			servlet-api
			2.5
			provided
		

		
			javax.servlet.jsp
			jsp-api
			2.0
			provided
		

		
		
		
			log4j
			log4j
			${log4j.version}
		
		
			org.slf4j
			slf4j-api
			${slf4j.version}
		
		
			org.slf4j
			slf4j-log4j12
			${slf4j.version}
		
		

		
		
			org.freemarker
			freemarker
			2.3.22
		

		
		
			jsptags
			pager-taglib
			2.0
		
		
		
			javax.mail
			mail
			1.4
		
		
		
			net.sf.ehcache
			ehcache
			2.9.1
		
	
	
		service
	

接着applicationContext.xml配置:



	
	
	
	
		
		
	

再接着spring-mybatis.xml和jdbc.properties配置:

jdbc.properties:

 

driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://192.168.3.16:3306/hotelmanagementsystem?useUnicode=true&characterEncoding=utf-8
username=root
password=123
validationQuery=SELECT 1

spring-mybatis.xml:



	
	  
	
	       
		
		   
              
                classpath:jdbc.properties  
              
          
	
	
	
    
    
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
    
	
	
    
    
        
        
        
       	
		
    
    
    
    
        
        
        
    
	
	
	
		
	
	
	
	
		
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
		
	
	
			
		
	
	
	
	
		
			
				com.gx.service_dao.service.*
			
		
	
	
		
	
	
	

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





    
    
         
    
        
    

最后web.xml配置:



	
  Archetype Created Web Application
  
  
		contextConfigLocation
		
			classpath:applicationContext.xml,
			classpath:spring-mybatis.xml,
			classpath:spring-dubbo-provider.xml
		
	

	
		spring监听器
		org.springframework.web.context.ContextLoaderListener
	

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

 

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

先是pom.xml配置:


	4.0.0
	end.gx.service
	serviceweb
	war
	0.0.1-SNAPSHOT
	serviceweb Maven Webapp
	https://maven.apache.org

	
		
		3.2.4.RELEASE
		
		3.2.4
		
		1.6.6
		1.2.17
		1.1.33
		1.6
		2.5
		3.3.3
		0.1
		UTF-8
	

	

		
		
			end.gx.servicedao
			servicedao
			0.0.1-SNAPSHOT
		

		
		
			end.gx.entity
			po
			0.0.1-SNAPSHOT
		

		
		
			org.springframework
			spring-core
			${spring.version}
		

		
			org.springframework
			spring-web
			${spring.version}
		

		
			org.springframework
			spring-oxm
			${spring.version}
		

		
			org.springframework
			spring-tx
			${spring.version}
		

		
			org.springframework
			spring-webmvc
			${spring.version}
		

		
			org.springframework
			spring-aop
			${spring.version}
		

		
			org.springframework
			spring-jdbc
			${spring.version}
		

		
			org.springframework
			spring-context-support
			${spring.version}
		

		
			org.springframework
			spring-test
			${spring.version}
		

		
			org.springframework
			spring-aspects
			${spring.version}
		
		


		
		
			com.alibaba
			dubbo
			2.5.3
			
				
					org.springframework
					spring
				
			
		

		
		
			org.apache.zookeeper
			zookeeper
			3.3.3
		
		
			com.github.sgroschupf
			zkclient
			0.1
		

		
		
			org.mybatis
			mybatis
			${mybatis.version}
		
		
		
			org.mybatis
			mybatis-spring
			1.2.2
		
		
		
			mysql
			mysql-connector-java
			5.1.22
		

		
		
			junit
			junit
			4.11
			test
		

		
		
			com.alibaba
			druid
			1.0.2
		
		
		
			com.alibaba
			fastjson
			${fastjson.version}
		
		
			org.codehaus.jackson
			jackson-mapper-asl
			1.9.13
		
		
			com.google.code.gson
			gson
			2.8.0
		
		
		
			net.sf.json-lib
			json-lib
			2.4
			jdk15
		

		
		
			commons-fileupload
			commons-fileupload
			1.3.1
		

		
			commons-lang
			commons-lang
			${commons-lang.version}
		

		
			org.apache.commons
			commons-lang3
			3.4
		

		
			commons-codec
			commons-codec
			${commons-codec.version}
		
		
		
			javax.servlet
			jstl
			1.2
			runtime
		

		
			javax.servlet
			servlet-api
			2.5
			provided
		

		
			javax.servlet.jsp
			jsp-api
			2.0
			provided
		

		
		
		
			log4j
			log4j
			${log4j.version}
		
		
			org.slf4j
			slf4j-api
			${slf4j.version}
		
		
			org.slf4j
			slf4j-log4j12
			${slf4j.version}
		
		

		
		
			org.freemarker
			freemarker
			2.3.22
		

		
		
			jsptags
			pager-taglib
			2.0
		
		
		
			javax.mail
			mail
			1.4
		
		
		
			net.sf.ehcache
			ehcache
			2.9.1
		
	
	
		serviceweb
	

接着spring-mvc.xml配置:



	
	
		
	
	
	
	
	  
    
	  
      
          
          
      

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



    
   
    
    
    

最后web.xml配置:




	
		contextConfigLocation
		
			classpath:spring-dubbo-customer.xml
		
	

	
		spring监听器
		org.springframework.web.context.ContextLoaderListener
	

	
		characterEncodingFilter
		org.springframework.web.filter.CharacterEncodingFilter
		
			encoding
			UTF-8
		
		
			forceEncoding
			true
		
	
	
		characterEncodingFilter
		/*
	
  
  
		spring mvc servlet
		springMvc
		org.springframework.web.servlet.DispatcherServlet
		
			spring mvc 配置文件
			contextConfigLocation
			classpath:spring-mvc.xml
		
		
			activeReverseAjaxEnabled
			true
		
		1
	
	
		springMvc
		*.do
	

简单的分别式架构搭建完成,接下来就是将提供者(service)运行成功,接着将service打包成war包,放在tomcat下运行。在运行service的前提是zookeeper要运行。这样service服务才能正常注册到zk服务中心。

接着在Eclipse运行消费方(web),当界面能把数据查询出来,证明分布式架构才是完全搭建成功。

点击复制链接 与好友分享!回本站首页
上一篇:原型模式
下一篇:log4j+logback+slf4j+commons-logging的区别
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站