目录
1 分析
由于电子商城是基于soa的架构,表现层和服务层是不同的工程。所以要实现类似于商品列表查询这样的功能,需要两个系统之间进行通信。
如何实现远程通信?
1、Webservice:效率不高基于soap协议。项目中不推荐使用。
2、使用restful形式的服务:http+json。很多项目中应用。如果服务太多,服务之间调用关系混乱,需要治疗服务。
3、使用dubbo。(类似于服务中心)使用rpc协议进行远程调用,直接使用socket通信。传输效率高,并且可以统计出系统之间的调用关系、调用次数。
涉及dubbo和zookeeper的介绍及安装分别参见:
dubbo:https://blog.csdn.net/uu_uuu/article/details/100182295
zookeeper:https://blog.csdn.net/uu_uuu/article/details/100182493
2 工程改造
2.1 拆分工程
1)将表现层工程独立出来:
e3-manager-web
2)将原来的e3-manager改为如下结构
e3-manager
|--e3-manager-dao
|--e3-manager-interface
|--e3-manager-pojo
|--e3-manager-service(打包方式改为war)
2.2 服务层工程
第一步:把e3-manager的pom文件中删除e3-manager-web模块。
第二步:把e3-manager-web文件夹移动到e3-manager同一级目录。
第三步:e3-manager-service的pom文件修改打包方式
<packaging>war</packaging>
第四步:在e3-manager-service工程中添加web.xml文件。
第五步:把e3-manager-web的配置文件复制到e3-manager-service中。
删除springmvc.xml
第六步:web.xml 中只配置spring容器。删除前端控制器
第七步:发布服务
- 在e3-manager-Service工程中添加dubbo依赖的jar包。
<!