首页 > 嗟来之食 > 新项目架构从零开始(三)——基于简单ESB的服务架构 – 放学别走丶 –
2016
07-05

新项目架构从零开始(三)——基于简单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站点。
  下图为esb服务编写流程
  

  大致的项目解决方案说明就是这些,该项目可以说是从0开始的一个大型项目,对于我这种初学者来说,压力很大,动力十足,也许会有很多不足的地方,希望能够在日后的时间内逐一改善。
  PS:本人博客写的很乱,后续慢慢加强文笔。

最后编辑:
作者:
这个作者貌似有点懒,什么都没有留下。

留下一个回复