Java学习笔记

传统的Web单工程项目进行改造(基础篇)

2017-08-25  本文已影响47人  ylcoder

声明

通过对吴水成老师dubbo教程的学习,本人以理解学习的角度向大家分享,希望能帮助到大家。本文中若存在不足,请大家积极留言互动。源码

介绍

当项目达到一定的规模时,传统的Web单工程项目实现复杂的业务就显得很臃肿。若需要对业务进行服务化的拆分,那就需要使用分布式应用系统开发。

Dubbo是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,是一个分布式、高性能、透明化的RPC服务框架,提供服务自动注册、自动发现等高效服务治理方案。

本文将从使用Dubbo对传统工程进行服务化改造的思路介绍,最终形成一套可应用于生产环境的高性能、高可用、高扩展性的分布式系统架构。希望帮助大家将Dubbo在实际项目中应用起来。

本文中所用到的技术:MyEclipse、Maven、JDK7、Dubbo2.5.3、Struts2、Spring3、MyBatis3.2、Druid、ActiveMQ、Tomcat7、MySQL5.6、VMWare、CentOS6.5

项目架构对比

1.传统的单项目工程(oa-demo)

使用MVC架构式的方式组织代码结构,Model View Controller,是模型(model)-视图(view)-控制器(controller)。

优点:分层,结构清晰,耦合性低,大型项目代码的复用性得到极大的提高,开发人员分工明确,提高了开发的效率,维护方便,降低了维护成本。

缺点:简单的小型项目,使用MVC设计反而会降低开发效率,层和层虽然相互分离,但是之间关联性太强,没有做到独立的重用。

2.改造成dubbo服务调用方式后的工程结构(多工程模式)

oa-common-parent(Maven父配置)【java maven工程】

oa-facade(门面服务模式接口)【java maven工程】

oa-service(业务服务实现)【java web maven工程】

oa-web(前端展示层)【java web maven工程】

使用dubbo是为了实现系统的分布式服务化,具有以下特点:

1)多个服务

2)多种类型的工程

3)工程间需要相互调用

4)实现工程间解耦(高内聚、低耦合)

5)工程该怎么样拆分?(请思考)

6)如何对大量的工程进行合理有效的管理?(高级篇:持续集成)

项目改造思路

1.oa-demo中业务逻辑层以下的做成dubbo的服务接口,供action层调用。

2.oa-web中的action不能直接访问oa-service中的实现,只能引用oa-facade工程。

3.oa-facade对oa-service中的服务进行包装成facade接口。

4.oa-service对oa-facade中的接口进行实现。调用业务逻辑biz接口。

5.oa-web引用oa-facade中的facade层接口。

6.mybatis的配置文件移动到oa-service中。

7.spring的配置文件移动到oa-service和oa-web中。

基于dubbo进行改造

1.在oa-service中添加spring-dubbo-provider.xml配置。【暴露服务】

2.在oa-web中添加dubbo-consumer.xml配置。【引用服务】

上一篇 下一篇

猜你喜欢

热点阅读