簡單ESB的服務架構
這幾個月一直在修改架構,所以遲遲沒有更新博客。
新的架構是一個基於簡單esb的服務架構,主要構成是esb服務注冊,wcf服務,MVC項目構成。
首先,我門來看一看解決方案,
1.Common
在Common文件夾中主要是基礎設施層common.Infrastructure 以及ESB面向於web端的請求層 ESBLayout。
基礎設施層主要包含了一些基本的幫助類,第三方dll,和常用的組件,比如緩存,ioc,日志,郵件,支付等。
ESBLayout這個項目主要集成服務的一些調用,在此項目中添加了對與esb服務的引用,所有的服務請求通過該esb服務進行路由。請求方式如下
public List<Test_StudentDto> GetStudentListByPage(int pageIndex, int pageSize, string queryPredicate, object[] paramValues, string orderBy, ref int record) { using (var client = new ESBServiceClient()) { string str = string.Format("{0}{1}{2}{3}{4}{5}", pageIndex, pageSize, queryPredicate, paramValues, orderBy, record); string sign = ServiceEncrypt(str, key); var param = new object[] { pageIndex, pageSize, queryPredicate, paramValues, orderBy, record }; var res = client.InvokeRef("689745d4-2218-4464-b207-d7dd61ce6bf8", sign, ref param); record = Convert.ToInt32(param[5]); if (res != null) { return ConvertJsonTo<List<Test_StudentDto>>(res.ToString()); } else { return null; } } }
通過方法的guid code進行查找服務。
2.Persistence
該文件夾中的sln 主要是數據庫訪問層,該架構數據庫訪問層,主要是用EF框架進行交互,數據庫采用Mysql(至於為什么使用Mysql,原因在於公司沒有自己的機房,使用的是阿里雲,但是阿里雲的SQLServer RDS數據庫 對於主從服務器的支持不是太完美)。
Tonsin.IRepositories 倉儲接口,定義訪問數據庫的操作接口
Tonsin.Repositories.Mysql 倉儲實現,基於EF框架對Mysql數據庫進行訪問
Tonsin.Model 數據庫實體
Tonsin.Model.DTO 服務傳輸實體
3.PlatFormService
該文件夾中主要是ESB的實現,以及系統技術平台的服務實現。
下圖為技術平台的展示
該平台集成了esb服務注冊,服務器管理,系統管理,以及日志處理,定時任務,控件庫等需求。
目的在於打造公司系統實時的技術支持平台。
4.Service
這一層就不用細說了,根據需求分化的服務站點項目。
5.Web
基於MVC的web站點。
大致的項目解決方案說明就是這些,該項目可以說是從0開始的一個大型項目,對於我這種初學者來說,壓力很大,動力十足,也許會有很多不足的地方,希望能夠在日后的時間內逐一改善。
PS:本人博客寫的很亂,后續慢慢加強文筆。