初步了解学习将传统单机应用改造成Dubbo服务的过程
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
總結
以上是生活随笔為你收集整理的初步了解学习将传统单机应用改造成Dubbo服务的过程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: bootstrap-datepicker
- 下一篇: Javascript中的关键字和保留字