博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
初步了解学习将传统单机应用改造成Dubbo服务的过程
阅读量:5276 次
发布时间:2019-06-14

本文共 1360 字,大约阅读时间需要 4 分钟。

Dubbo作为RPC框架,实现的效果就是调用远程的方法就像在本地调用一样。如何做到呢?就是本地有对远程方法的描述,包括方法名、参数、返回值,在Dubbo中是远程和本地使用同样的接口;然后呢,要有对网络通信的封装,要对调用方来说通信细节是完全不可见的,网络通信要做的就是将调用方法的属性通过一定的协议(简单来说就是消息格式)传递到服务端;服务端按照协议解析出调用的信息,执行相应的方法,在将方法的返回值通过协议传递给客户端,客户端再解析。在调用方式上又可以分为同步调用和异步调用。简单来说基本就这个过程。

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

如果要对传统的单机MVC项目进行分布式服务改造,那么一般将业务逻辑层及以下的做成服务,biz层的接口全部要对外公布,Web控制层去调用服务,服务完成拿到数据就与视图层进行交互。改造后控制层只有极少量的判断去调用服务,再跟界面进行交互。

改造过程

  服务接口<Provider和Consumer子项目均会依赖>
    将与Web无关的Common放置在此目录下
    服务接口facade暴露服务接口

  服务实现<Provider>

    原有系统中业务逻辑放置在此目录下
    服务接口facade实现<直接调用biz的方法即可>
    Spring、MyBatis、JDBC、log4j配置文件
    若想将服务部署在Servlet容器中,则需在此子项目的web.xml中引入spring-context.xml
    加入dubbo-provider的配置文件,并在spring-context.xml中引入之。

  Web控制<Consumer>

    将与Web有关的Common放置在此目录下
    Action类
    Web Pages
    Spring、Struts、log4j配置文件
    加入dubbo-consumer的配置文件,并在spring-context.xml中引入之。

工程结构优化:考虑到真实系统中可能会有大量的服务提供者和消费者,而其中总有很多共用的代码(Common),可将其抽取出作为一个单独子项目,其他项目需使用时依赖即可!

如:
  edu-common-parent (Maven父配置)
  edu-common (公共工程)
  edu-common-config (公共配置工程)
  edu-common-core (公共core工程)
  edu-common-web (公共web工程)
  edu-facade-user (用户服务接口)
  edu-service-user (用户服务实现)
  edu-web-boss (服务消费者)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

转载于:https://www.cnblogs.com/gotodsp/p/6392619.html

你可能感兴趣的文章
安装开源项目 MultiType (基于 RecyclerView)出现的各种问题 -- 自己的第一篇博客...
查看>>
4、spring核心AOP
查看>>
Vue学习之不同组件之间的消息传递
查看>>
@Scheduled(cron = "0/5 * * * * *")将时间改为配置
查看>>
spring -boot定时任务 quartz 基于 MethodInvokingJobDetailFactoryBean 实现
查看>>
Javascript——说说js的调试
查看>>
BZOJ.2707.[SDOI2012]走迷宫(期望 Tarjan 高斯消元)
查看>>
android权限大全
查看>>
《设计师要懂心理学》-第五章-人如何集中注意力
查看>>
MVC3 - 控制器
查看>>
[源码]解析 SynchronousQueue 上界,下界.. 数据保存和数据传递. 堵塞队列. 有无频繁await?...
查看>>
PHPStorm默认在新窗口打开
查看>>
MongoDB基本概念和安装配置
查看>>
Linux&shell之高级Shell脚本编程-创建菜单
查看>>
Swift Objective-C 访问级别控制
查看>>
Mac 10.11系统下cocoaPods安装注意事项
查看>>
Phthon语言
查看>>
高质量程序设计指南c++/c语言(17)--函数
查看>>
pku 1573 Robot Motion 第一周训练——模拟
查看>>
Algorithms学习笔记-Chapter0序言
查看>>