这几个月一直在修改架构,所以迟迟没有更新博客。

  新的架构是一个基于简单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[]);

                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:本人博客写的很乱,后续慢慢加强文笔。

新项目架构从零开始(三)------基于简单ESB的服务架构的更多相关文章

  1. 简单ESB的服务架构

    简单ESB的服务架构 这几个月一直在修改架构,所以迟迟没有更新博客. 新的架构是一个基于简单esb的服务架构,主要构成是esb服务注册,wcf服务,MVC项目构成. 首先,我门来看一看解决方案, 1. ...

  2. 基于 Docker 的微服务架构实践

    本文来自作者 未闻 在 GitChat 分享的{基于 Docker 的微服务架构实践} 前言 基于 Docker 的容器技术是在2015年的时候开始接触的,两年多的时间,作为一名 Docker 的 D ...

  3. 微服务实战(三):深入微服务架构的进程间通信 - DockOne.io

    原文:微服务实战(三):深入微服务架构的进程间通信 - DockOne.io [编者的话]这是采用微服务架构创建自己应用系列第三篇文章.第一篇介绍了微服务架构模式,和单体式模式进行了比较,并且讨论了使 ...

  4. “快的打车”创始人陈伟星的新项目招人啦,高薪急招Java服务端/Android/Ios 客户端研发工程师/ mysql DBA/ app市场推广专家,欢迎大家加入我们的团队! - V2EX

    "快的打车"创始人陈伟星的新项目招人啦,高薪急招Java服务端/Android/Ios 客户端研发工程师/ mysql DBA/ app市场推广专家,欢迎大家加入我们的团队! - ...

  5. 基于netty的微服务架构

    基于netty的微服务架构 微服务一篇好文章 http://san-yun.iteye.com/blog/1693759 教程 http://udn.yyuap.com/doc/essential-n ...

  6. GPS部标平台的架构设计(三) 基于struts+spring+hibernate+ibatis+quartz+mina框架开发GPS平台

    注意,此版本是2014年研发的基于Spring2.5和Struts2的版本,此版本的源码仍然销售,但已不再提供源码升级的服务,因为目前我们开发的主流新版本是2015-2016年近一年推出的基于spri ...

  7. 基于AWS的云服务架构最佳实践

    ZZ from: http://blog.csdn.net/wireless_com/article/details/43305701 近年来,对于打造高度可扩展的应用程序,软件架构师们挖掘了若干相关 ...

  8. 基于.net的微服务架构的开发测试环境运维实践

    眼下,做互联网应用,最火的架构是微服务,最热的研发管理就是DevOps, 没有之一.微服务.DevOps已经被大量应用,它们已经像传说中的那样,可以无所不能.特来电云平台,通过近两年多的实践,发现完全 ...

  9. iUAP云运维平台v3.0全面支持基于K8s的微服务架构

    什么是微服务架构? 微服务(MicroServices)架构是当前互联网业界的一个技术热点,业内各公司也都纷纷开展微服务化体系建设.微服务架构的本质,是用一些功能比较明确.业务比较精练的服务去解决更大 ...

随机推荐

  1. DB2错误码解释对照

    表 2. SQLSTATE 类代码 类  代码    含义 要获得子代码,  参阅...  00 完全成功完成 表 3  01 警告 表 4  02 无数据 表 5  07 动态 SQL 错误 表 6 ...

  2. boost库在工作(33)网络服务端之三

    在这个例子里,表示服务器与一个客户端的沟通渠道,就是一个连接,封装为类CConnect.它是当服务器接收到一个客户端连接请求之后创建的,主要用来就是管理这个连接的生命周期,以及数据的接收和发送.从生命 ...

  3. 浅谈Jquery的使用上篇

    一. 1.Jquery是什么?有什么特性? jQuery 是一个 JavaScript 函数库. jQuery 库包含以下特性: HTML 元素选取.HTML 元素操作. CSS 操作 .HTML 事 ...

  4. 模块化手机project ara之我见

    组装电脑,已被大部分人所熟知,只是像玩具一样组装手机,应该还仅仅是停留在想象.谷歌Project Ara将这一想象一步一步拉进现实,她希望提供一块框架,使用者能够自由地替换摄像头.显示屏.处理器.电池 ...

  5. hdu 3221 Brute-force Algorithm(高速幂取模,矩阵高速幂求fib)

    http://acm.hdu.edu.cn/showproblem.php?pid=3221 一晚上搞出来这么一道题..Mark. 给出这么一个程序.问funny函数调用了多少次. 我们定义数组为所求 ...

  6. XML语法规范

    1: 怎样声明一个xml文件 答:由2部分组成 声明部分,声明xml的版本号与编码(版本号仅仅有1.0) <? xml version="1.0" encoding=&quo ...

  7. UVA1450-Airport

    题目链接 题意:有一个飞机场.有两条待飞跑到w和e.一条起飞跑道.每一时刻仅仅能起飞一架飞机,然后有w[i]和e[i]架飞机进入w和e跑道.飞机编号从0開始,问说怎样安排起飞能够使得飞机编号的最大值最 ...

  8. shu_1241 邮局位置问题

    http://202.121.199.212/JudgeOnline/problem.php?cid=1078&pid=5 分析: 由于题目中的距离是折线距离,所以能够分别考虑两个方向.又x方 ...

  9. VSTO之旅系列(一):VSTO入门

    原文:VSTO之旅系列(一):VSTO入门 引言: 因为工作的原因,这段时间一直在看VSTO的相关的内容的,因此希望通过这个系列来记录下我学习的过程和大家分享Office开发的相关知识,希望以后有朋友 ...

  10. java socket 的参数选项解读(转)

    java socket中有很多参数可以选择,这篇博客的目的是沉淀出这些参数的语义和用法,供自己以后查阅. 1.java socket参数选项总览 在JDK1.6中有如下参数选项: 1 public f ...