soa dubbo zookeeper

改造工程为soa架构使用dubbo进行远程通信, zookeeper做dubbo的注册中心

SOA
面向服务的架构。也就是把工程拆分成服务层、表现层两个工程。服务层中包含业务逻辑,只需要对外提供服务即可。表现层只需要处理和页面的交互,业务逻辑都是调用服务层的服务来实现。

工程改造

拆分工程

原来的结构
*-manager (打包方式pom)
       |-- * -manager-dao (打包方式jar)
       |-- * -manager-interface (打包方式jar)
       |-- * -manager-pojo (打包方式jar)
       |-- * -manager-service (打包方式jar)
       |-- *- manager-web (打包方式war)

将表现层工程独立出来
*-manager-web

将原来的*-manager改为如下结构
*-manager (打包方式pom)
       |-- * -manager-dao (打包方式jar)
       |-- * -manager-interface (打包方式jar)
       |-- * -manager-pojo (打包方式jar)
       |-- * -manager-service(打包方式改为war)


服务层工程

第一步:把*-manager的pom文件中删除*-manager-web模块。
第二步:把*-manager-web文件夹移动到*-manager同一级目录。
第三步:* -manager-service的pom文件修改打包方式

<packaging>war</packaging>

第四步:在*-manager-service工程中添加web.xml文件
第五步:把*-manager-web的配置文件复制到*-manager-service中。
删除springmvc.xml
第六步:web.xml 中只配置spring容器。删除前端控制器

发布服务

在*-manager-Service工程中添加dubbo依赖的jar包

<!-- dubbo相关 -->
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>dubbo</artifactId>
			<exclusions>
				<exclusion>
					<groupId>org.springframework</groupId>
					<artifactId>spring</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.jboss.netty</groupId>
					<artifactId>netty</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.apache.zookeeper</groupId>
			<artifactId>zookeeper</artifactId>
		</dependency>
		<dependency>
			<groupId>com.github.sgroschupf</groupId>
			<artifactId>zkclient</artifactId>
		</dependency>

在spring的配置文件中添加dubbo的约束,然后使用dubbo:service发布服务

	<!-- 使用dubbo发布服务 -->
	<!-- 提供方应用信息,用于计算依赖关系 -->
	<dubbo:application name="zq-manager" />
	<dubbo:registry protocol="zookeeper"
		address="192.168.25.154:2181,192.168.25.154:2182,192.168.25.154:2183" />
	<!-- 用dubbo协议在20880端口暴露服务 -->
	<dubbo:protocol name="dubbo" port="20880" />
	<!-- 声明需要暴露的服务接口 -->
	<dubbo:service interface="cn.zq.service.ItemService" ref="itemServiceImpl" />

表现层工程

改造*-manager-web工程。
第一步:删除mybatis、和spring的配置文件。只保留springmvc.xml
第二步:修改*-manager-web的pom文件,
    1.修改parent为*-parent
    2.添加spring和springmvc的jar包的依赖
    3.删除 *-mangager-service的依赖
    4.添加dubbo的依赖

<!-- dubbo相关 -->
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>dubbo</artifactId>
			<exclusions>
				<exclusion>
					<groupId>org.springframework</groupId>
					<artifactId>spring</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.jboss.netty</groupId>
					<artifactId>netty</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.apache.zookeeper</groupId>
			<artifactId>zookeeper</artifactId>
		</dependency>
		<dependency>
			<groupId>com.github.sgroschupf</groupId>
			<artifactId>zkclient</artifactId>
		</dependency>

    5.*-mangager-web添加对 *-manager-Interface的依赖。

第三步:修改springmvc.xml,在springmvc的配置文件中添加服务的引用。

	<!-- 引用dubbo服务 -->
	<dubbo:application name="zq-manager-web"/>
	<dubbo:registry protocol="zookeeper" address="192.168.25.154:2181,192.168.25.154:2182,192.168.25.154:2183"/>	
	<dubbo:reference interface="cn.zq.service.ItemService" id="itemService" />

第四步:在e3-manager-web工程中添加tomcat插件配置。
<build>
		<plugins>
			<!-- 配置Tomcat插件 -->
			<plugin>
				<groupId>org.apache.tomcat.maven</groupId>
				<artifactId>tomcat7-maven-plugin</artifactId>
				<configuration>
					<path>/</path>
					<port>8081</port>
				</configuration>
			</plugin>
		</plugins>
	</build>
发布了21 篇原创文章 · 获赞 4 · 访问量 1885

猜你喜欢

转载自blog.csdn.net/qq_40803085/article/details/105048803