零基础30分钟开启你的AgileEAS.NET SOA 中间件平台开发之旅

by 魏琼东 2014.4.25 11:20
接触AgileEAS.NET SOA 中间件平台(以下简称EAS.NET平台)有4个多月时间,经过试用认为可以把它作为一个开发的基础平台,开发团队可以把开发的重点放在需求的把控和项目的交付上,从而节省大量的时间,提高项目的开发、交付效率,降低对项目团队的深层技术要求,更重要的一点是EAS.NET平台的开发团队持续不断地维护和改进平台以及对反馈问题的快速反应,使我对平台的持续发展充满信心。

由于EAS.NET平台的资料比较多,需要花费较多的时间才能够初步了解平台并能够使用平台开始开发,所以,在此,我把学习EAS.NET平台的过程总结了一下,形成本篇短文,希望能够让初次接触EAS.NET平台的朋友能够用30分钟时间,跟着本文案例实际操作一遍,对EAS.NET平台有一个真实的体验,节省大家的时间,也算对EAS.NET平台的一点回报,希望有更多的人了解它的优势并真正用好它,为EAS.NET平台的使用者带来价值,也为EAS.NET平台的开发者带来效益,最终实现合作共赢的美好结局。 [更多...]

Tags:

.NET | C# | ESB | SOA | Socket | WCF | 三层架构 | 中间件 | 云计算 | 平台 | 应答 | 报表 | 权限 | 框架 | 模块 | 用户 | 负载均衡 | 通信框架

3小时搞定一个简单的MIS系统案例Northwind,有视频、有源代码下载、有真相

by 魏琼东 2014.4.14 14:09
一、瞎扯框架、架构      楼主自从1998年从C语言、MASM、Foxbase开始学计算机开始接触这个行当16年以来,2001年干第一份与程序、软件、然后是各种屌的东西开始,差不多干了13年了,这13年来,用过VF\VC\VB\C#搞过N多N多的项目,记得在2002年、2003年那个疯狂并且操蛋的年代,在整天VB代码与各种SQL、各种Bug、各种需求敲打、各种吐血的需求变更、各种大半夜还坐在医院的小板凳的加班与折磨之中,慢慢的学会去思考,他妈的这是为什么,写了程序那么的折磨人,从那时开始,就接触各种软件工程相关的东西,思考着是否可以发现能解决或者改变这种现关的东西,记得那个时间好像挺流行一本书,叫《银弹》,在那个年龄,也尝试对需求、变更进行控制和管理,但是在野蛮生长的中国软件业,用户这个上帝才是帮一位的,我们也尝试使用VB+COM/COM+进行加载和框架的提练,进行某些代码和架构级别的规范,试图使用那些技术去实现分布式架构的应用,以及通过插件机制去实现对需求的小范围控制,只是基于那些机制的先天不足和营养不良的环境,对项目与企业的现状改变不是多少。      在厌烦了VB开发之后,楼主也接触了Java,只是接触,没有做过多少开发,能大概看明白什么个意思,总体上来说,不是很喜欢基于Java开发,其中的原因第一是楼主在那个年代做的是CS类的MIS类应用,其实就是一直在做医疗行业的应用,Java做CS简直是弱爆了,再一个java IDE也直接太弱爆了,楼主是懒惰的一个人,不喜欢用记事本那种比较装的干法去写高深的代码。      2004年接触VS2003之后发现简直是找到了自己喜欢的东西了,VS2003配置.net1.1,也提供了简单的WebService和.NET Remoting技术,简直让以前在VB时候梦寐以求却难以搞定的机制就非常简单的实现了,.net所提供的反射机制可以实现很简单的插件开发,从那个时间起,楼主就写出了AgileEAS.NET SOA中间件平台的最初始版本,一个简单的winfrom插件平台。      从2004年到2014年,差不多快10年的时间,楼主也像所有的程序员一样,把AgileEAS.NET SOA当自己的宝贝一样的,升级、增加新的东西,早期关注各种IOC、各种AOP、各种ORM、各种通信等基础类的东西,2010年底专职从事咨询服务工具,为各种规模、各种业务的软件商提供框架定义、技术咨询服务、医疗行业业务咨询服务等服务。      也是自2011年之后对什么框架、什么架构、什么应用商店、各种云架构有了更简单的认识,整天没事扯架构、扯框架的人,或许压根就不知道什么是框架、什么是架构,架构、框架不是各种空泛的理论和各种看似华丽的词汇,架构或者框架、平台应该是一类能帮助开发人员、开发商提高效能的东西,好的框架一定是简单好用的,那怕是功能不是很强,也比较单一,但一定要好用,另外一个,框架或者架构一定要配合相应的工具,就比如.NET的种类库如果没有VS开发环境的配合,估计就是一堆废柴。      在很多人看来,能写框架、平台、架构的人都是牛人,实际上这是一个误导,写框架的人不一定是技术上的牛人,一个框架、平台、架构上没有什么多少高深的技术,比如做插件框架的,就一个简单的反射技术,相信一个C#程序员,用一周时间足够搞的很清楚了,再比如ORM框架,也没有什么高深的技术,动态拼接SQL加上动态反射创建实体,所以说从技术层面上来讲,写一个框架、类库不需要多少技术,因为这些东西都 是现成的并且可以你很容易找到。      但是一个好的框架或者平台,一定会有其配合很好的工具,比如对象建模工具、界面设计工具、文档生成工具、代码生成工具,以及相关的配置、管理、通信、监控工具,一个平台或者一个架构的生产力一方面体现在框架所提供的那引起基础类库所建立的规范,另一个很重要的原因是其配置工具所提供的快速开发能力是极其重要的,或者说一个框架是否能被应用的广泛,工具所带来的用处远远大于基础类库所提供的功能。      能写好一个优秀的框架并能提供大量、可用、好用的框架开发才不一定是技术上的牛人,但一定是对软件工程管理、企业软件生产组织模型或者某一业务领域的业务经验一定有其独到的理解,其框架之中所倾注的业务与软件工程管理经验才是框架作者最宝贵的财富,经验需要日积月累,可不是一天两天能练成的,不管在任何行业、经验都是非常值钱的东西。 二、3小时完成一个Northwind案例      在最近的一段时间之内,群里的好多朋友都希望我能给大家通过视频展示一下AgileEAS.NET SOA 中间件快速开发的相关技术,以便让更多的朋友学习和参考,但是一直忙于客户的各种项目、各种咨询服务以及家中的一些杂事,给大家拖了好久,拖的实在我都有点不好意思了,所以在上周做了一点准备,原本是想在原DrugShop的案例上进行,但是有朋友建议,在原项目基础上做,可以不一定让大家从头了解和从头开始学习、配置和如何从一个空白建立一个新的项目。      经过一些了解之后我们决定从SQLServer数据库所提供的案例Northwind基础上做一些简化和改动,为什么要使用Northwind案例呢,主要原因是其设计比较规范,了解和熟悉的人也非常的多,便于大于理解其业务需求。      楼主对Northwind做了一些简单的改进,主要是那方面的改进呢:        1)原来的Northwind主要重点再于客户和销售的管理,对采购入库业务处理的不是很好。        2)原来的Northwind对库存管理做的比较弱。        3)简化了原Northwind的客户、和销售管理,删除了对销售订单的区域等参数。        修改完成的Northwind主要提供了以下两大业务模型,采购入库业务:        销售订单业务:      Northwind的设计准备是前一天做好的,然后楼主通过YY为大家提供现场的快速开发培训,边讲角边做开发,从生成代码到第一个手工完成业务模块“商品分类”、“商品字典”、使用界面生成器生成了两个业务模块“员工管理”、“客户管理”,一直做到“采购入库”、“采购入库查询”、“库存查询”、“销售订单业务”一共8个模块,涉及数据查询、界面编辑、分层业务模型、输入字典、报表设计、检点控件挑战、输入焦点变色、文本输入验证等大量的工具、控件及相关技术,理论上已经完成了Northwind案例的所有业务,当然如果要完美的话可以增加“收支报表”、“销售订单查询”、以及界面的美化,界面验证的完善。      希望群里和各位朋友Northwind例没有完成的工具去做一做,把他做完,这一定是一个非常不错的项目模板,以下是几个做好的界面: 三、源代码、视频下载      在培训过程之中,楼主全程开启录相,录了大概。2.1G的高清视屏,目前已经全部上传在百度网盘和我们的服务器,源代码已经上传到我们的SVN服务器和下载服务器,请大家下载视频和源代码,视频时长4小时,请大家耐性观看。      视频下载地址,百度云:http://pan.baidu.com/s/1qW79ack      官网服务器:1.AgileEASNET SOA 5平台配置.avi                      2.AgileEAS.NET SOA 5元数据设计器.avi                      3.Northwind.WinForm案例.第1段.avi                      4.Northwind.WinForm案例.第2段.avi                      5.Northwind.WinForm案例.第3段.avi                      6.Northwind.WinForm案例.第4段.avi      源代码下载,源代码请通过AgileEAS.NET SOA 中间件平台官方网站下载,或者通过以下方式下载:      直接下载:AgileEAS.NET SOA  案例(Northwind)源码下载,http://112.74.66.105/downloads/eas/Northwind.rar。      SVN更新:https://112.74.66.105/svn/Northwind,登录用户:eas,密码eas. 四、问题反馈      麻烦大家在通过视频进行学习的时候能及时把问题反馈给楼主,或者有什么需要改进的一些建议都请向楼主直接反馈,以下是联系方式: AgileEAS.NET SOA 网站:http://www.smarteas.net 官方博客:http://eastjade.cnblogs.com 楼主QQ:47920381,AgileEAS.NET QQ群:113723486(AgileEAS SOA 平台)/上限1000人 199463175(AgileEAS SOA 交流)/上限1000人 120661978(AgileEAS.NET 平台交流)/上限1000人 邮件:james@agilelab.cn,mail.james@qq.com, 电话:18629261335。      另外,楼主将会不定期的通过YY举办类似本次活动的培训,所以麻烦大家都关注一下YY频道:65011880,也可以加一下楼主YY号:537601972。

Tags:

SOA | ActiveX | AgileEAS.NET | 三层架构 | C# | AppServer | 角色 | 设计模式 | 通信框架 | 框架

AgileEAS.NET SOA中间件平台简易入门,除加小案例下载

by 魏琼东 2014.1.15 11:25
本入门例子由网友狗头军师提供,感谢他的努力,以下是转自CSDN的原地址:http://blog.csdn.net/xueshaoyu/article/details/18304647?reload 首先说明此平台来自魏琼东大神,可被商业使用,但是不开源的哈。 AgileEAS.NET SOA中间件平台 下载 闲话少说,直接步入正题。 一、数据库的配置打开\agileeas.net.5.0\bin\dotnet\目录下的EAS.DbInitializer.exe文件进行数据连接配置如图。 点击下一步 点击完成,弹出的框选择是(如果原来数据库中有重要数据,记得先备份一下,以免失策…)。,数据库配置完成。 二、插件开发:打开\agileeas.net.5.0\bin\dotnet\目录下的EAS.OrmDesigner文件: ,配置解决方案如图: 打开刚才生成的工程文件。 可能需要引用两个文件(EAS.DATA, EAS.MicroKernel,在bin目录下找到并引用它), 基本的增删改查已经被封装好,下面我们编写界面                    这三个控件应该都了解撒,里面的逻辑代码,随后的附件中有。 Main.cs里面有最关键的两个特性: 完成之后,点击生成,ok,插件搞定。 三、插件安装: 运行\agileeas.net.5.0\bin\dotnet目录下的EAS.WinClient.Start.exe 账号Administrator,密码sa,注意大小写 登陆进去后,系统管理-〉模块管理-〉安装,选择刚才项目生成的程序集 点击安装,安装完成。在列表中查看 找到刚才安装的模块,右键-〉打开 。 整个插件开发搞定(后附源码),第一次写教程,如有不足,敬请谅解,如有不明之处,欢迎留言。 Demo源码下载

Tags:

.NET | AgileEAS.NET | BI | C# | ESB | NLB | SOA | WCF | 三层架构 | 平台 | 消息中间件 | 框架

拉风的应用程序服务器监控工具,随便掌握服务器动态,AgileEAS.NET SOA 中间件应用程序服务器监控工具集介绍

by 魏琼东 2013.12.19 21:55
一、前言      AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台。用于帮助中小型软件企业建立一条适合市场快速变化的开发团队,以达到节省开发成本、缩短开发时间,快速适应市场变化的目的。      AgileEAS.NET SOA中间件平台提供了敏捷快速开发软件工程的最佳实践,通过提供大量的基础支撑功能如IOC、ORM、SOA、分布式体系及敏捷并发开发方法所支撑的插件开发体系,以及提供了大量的实体、数据模型设计生成工具、代码生成工具,用于帮助中小软件开发商快速成长。      AgileEAS.NET平台充分把握目前软件行业快速发展的新趋势,基于敏捷并行开发、快速适应市场这样淳朴的软件工程实践,采用业界广泛使用的Microsoft .Net构件(组件)开发技术实践了这种开发思想,帮助软件企业实现“敏捷变化、快速适合”的目标,从而帮助软件企业在激烈的市场竞争中赢得先机并获得更高的回报。 二、AgileEAS.NET SOA中间件的分布式结构      AgileEAS.NET SOA中间件平台吸吸引人的一个特色就是其分布式架构体系,其可以基于高层的WCF协议和底层的.NET Socket通信建设统一一致的分布式通信服务,如下图所示的分布式结构:        系统中所有的客户端业务处理请求都经由AppServer处理之后返回结果给客户端,这个一个极其经典的SOA架构的分布式结构。      当系统的业务运行量大到一台AppServer无法满足情况下,那么我们就要考虑纵向扩展或者横向扩展以满足系统性能和业务响应的问题,最常用的选择是横向扩展,使用负载均衡机制以确保业务请求由多台AppServer完成;以及对系统的可靠性要求很高的时候,因为只有一台AppServer如果AppServer宕机了,那么整个系统都无法运行。我们就必须的考虑整个系统的故障切换能力,以确定系统的高可用性,系统的架构就会衍生为以下结构:      可以对比发布,前面架构图之中的AppServer已经由一台NlbServer和多台AppServer组成的服务器组合替换,系统之中不再存在当AppServer宕机之后系统无法服务的问题,也解决了随着业务量增加动态扩容的问题。 三、AgileEAS.NET SOA平台服务监控工具      为了方便系统维护人员,我们为AgileEAS.NET SOA中间件平台应用程序服务AppServer和负载均衡服务NlbServer提供了强大的可视化远程监控工具,让系统维护人员可以方便的通过远程监控工作进行监控。      应用程序服务监控工具为EAS.SOA.Monitor.exe应用程序:      其主要提供以下监控参数:      服务器资源监控:服务器CPU、内存、磁盘读取、网络通信等重要的服务器资料的实时监控及历史监控曲线图,如上图。      Socket服务监控:监控AppServer的Socket通信服务参数的各种状态,包括并发连接数、数据发送和接收速度:      WCF服务监控:监控AppServer的WCF通信服务参数的各种状态,包括实时服务调用、最大并发、服务实例、累计服务调用次数等:      应用服务监控,监控AgileEAS.NET SOA服务的并发调用和累计调用:     负载均衡服务监控工具为EAS.NLB.Monitor.exe应用程序:      其提供的监控功能和监控参数同应用程序服务监控工作提供的类型,都提供了服务器资源监控、WCF服务监控、Socket通信监控,不一样的是负载均衡服务提供了对负载简单应用程序服务器的状态监控: 四、如何操作服务监控      不管是应用程序服务监控还是负载均衡服务监控,启动监控程序之前都需要使用监控客户端连接到用程序服务或者负载均衡服务。          初始的监控程序需要通过服务连接登录界面新建一个服务监控连接,弹出新建连接对话框:     监控连接参数主要由服务器的IP地址及所开放的端口决定,WCF或者Socket,应用程序服务监控工作提供WCF和Socket的连接,而负载均衡服务监控仅提供WCF形式的连接。     当创建好监控连接之后,下一次使用的时候就不需要再次配置监控连接信息了,只需要在服务连接下拉列表框中选择合适的的连接信息即可:     我们计划为监控程序提供一个动态的连接密钥或者证书验证机制,以便阻止非授权的监控连接请求,但是目前还没有启动连接密钥或者安全证书,在稍后的不久我们将会为大家提供这方面的功能。 五、联系我们      为完善、改进和推广AgileEAS.NET而成立了敏捷软件工程实验室,是一家研究、推广和发展新技术,并致力于提供具有自主知识产权的业务基础平台软件,以及基于业务基础平台开发的管理软件的专业软件提供商。主要业务是为客户提供软件企业研发管理解决方案、企业管理软件开发,以及相关的技术支持,管理及技术咨询与培训业务。      AgileEAS.NET SOA中间件平台自2004年秋呱呱落地一来,我就一直在逐步完善和改进,也被应用于保险、医疗、电子商务、房地产、铁路、教育等多个应用,但一直都是以我个人在推广,2010年因为我辞职休息,我就想到把AgileEAS.NET推向市场,让更多的人使用。      我的技术团队成员都是合作多年的老朋友,因为这个平台是免费的,所以也没有什么收入,都是由程序员的那种理想与信念坚持,在此我感谢一起奋斗的朋友。 团队网站:http://www.agilelab.cn, AgileEAS.NET网站:http://www.smarteas.net 官方博客:http://eastjade.cnblogs.com QQ:47920381,AgileEAS.NET QQ群:113723486(AgileEAS SOA 平台)/上限1000人 199463175(AgileEAS SOA 交流)/上限1000人 212867943(AgileEAS.NET研究)/上限500人 147168308(AgileEAS.NET应用)/上限500人 172060626(深度AgileEAS.NET平台)/上限500人 116773358(AgileEAS.NET 平台)/上限500人 125643764(AgileEAS.NET探讨)/上限500人 193486983(AgileEAS.NET 平台)/上限500人 邮件:james@agilelab.cn,mail.james@qq.com, 电话:18629261335。

高并发应用场景下的负载均衡与故障转移实践,AgileEAS.NET SOA 中间件负载均衡服务介绍与实例

by 魏琼东 2013.12.19 18:59
一、前言      AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台。用于帮助中小型软件企业建立一条适合市场快速变化的开发团队,以达到节省开发成本、缩短开发时间,快速适应市场变化的目的。      AgileEAS.NET SOA中间件平台提供了敏捷快速开发软件工程的最佳实践,通过提供大量的基础支撑功能如IOC、ORM、SOA、分布式体系及敏捷并发开发方法所支撑的插件开发体系,以及提供了大量的实体、数据模型设计生成工具、代码生成工具,用于帮助中小软件开发商快速成长。      AgileEAS.NET平台充分把握目前软件行业快速发展的新趋势,基于敏捷并行开发、快速适应市场这样淳朴的软件工程实践,采用业界广泛使用的Microsoft .Net构件(组件)开发技术实践了这种开发思想,帮助软件企业实现“敏捷变化、快速适合”的目标,从而帮助软件企业在激烈的市场竞争中赢得先机并获得更高的回报。 二、关于AgileEAS.NET SOA中间件的分布式结构      AgileEAS.NET SOA中间件平台吸吸引人的一个特色就是其分布式架构体系,其可以基于高层的WCF协议和底层的.NET Socket通信建设统一一致的分布式通信服务,如下图所示的分布式结构:        系统中所有的客户端业务处理请求都经由AppServer处理之后返回结果给客户端,这个一个极其经典的SOA架构的分布式结构。      当系统的业务运行量大到一台AppServer无法满足情况下,那么我们就要考虑纵向扩展或者横向扩展以满足系统性能和业务响应的问题,最常用的选择是横向扩展,使用负载均衡机制以确保业务请求由多台AppServer完成;以及对系统的可靠性要求很高的时候,因为只有一台AppServer如果AppServer宕机了,那么整个系统都无法运行。我们就必须的考虑整个系统的故障切换能力,以确定系统的高可用性,系统的架构就会衍生为以下结构:      可以对比发布,前面架构图之中的AppServer已经由一台NlbServer和多台AppServer组成的服务器组合替换,系统之中不再存在当AppServer宕机之后系统无法服务的问题,也解决了随着业务量增加动态扩容的问题。 三、AgileEAS.NET SOA平台NLB支持      AgileEAS.NET SOA中间件平台的AppServer支持程序为EAS.SOA.Server.exe或EAS.SOA.Server.x64.exe,其中EAS.SOA.Server.exe为32位服务程序,EAS.SOA.Server.x64.exe为64位服务程序。      AppServer能在同一个进程之内同时支持Socket通信和WCF通信,即能同样的业务同步提供Socket和WCF通信方式,WCF通信提供http和net.tcp通道的访问,客户端应用使用何种通信方式由客户段程序决定。      AgileEAS.NET SOA中间件平台的在5.0版本之后增加了一个应用负载均衡服务程序EAS.NLB.Server,也同样提供了32位与64位的服务应用程序EAS.NLB.Server.exe或EAS.NLB.Server.x64.exe。      在AgileEAS.NET SOA中间件平台5.0版本之中为AppServer、NLB.Server提供了运行监控程序,NLB.Server的服务监控程序同时提供了NLB.Server的配置管理功能:      负载节点监控,会监控NLBServer后挂接的所有AppServer清单以及各个AppServer服务器的工作状态,是在线还是离线,在线的则能向客户端提供服务,如果离线了则表示不能向客户端提供服务了,在NLBServer负载过程之中,只会在在线的AppServr之间进行负载。 四、AgileEAS.NET NLBServer配置案例      在第三节我们已经对NLB做过一些简单的介绍,接下来我们以DrugShop案例环境为基础实例演示一下如何在应用环境之中启用NLBServer支持:      首先我们简单规划一下测试环境:      接下为我们一一配置,首先,我们参考AgileEAS.NET SOA 中间件平台5.2版本下载、配置学习(二):配置WinClient分布式运行环境一文配置好一个AppServer实例AppServer1,端口号设置Socket:6706,Wcf-tcp:6707,Wcf-http:6708: 1: <appserver> 2: <channel> 3: <wcf enable="true"> 4: <config tcpPort="6707" httpPort="6708"/> 5: <serviceThrottling maxConcurrentCalls="128" maxConcurrentInstances="128" maxConcurrentSessions="256"/> 6: <wcfServices> 7: <wcfService key="Key" type="TValue"/> 8: </wcfServices> 9: </wcf> 10: <socket enable ="true"> 11: <config tcpPort="6706"/> 12: <serviceThrottling maxConcurrence="1024"/> 13: <socketServices> 14: <socketService key="IMSocketService" type="AgileIM.Service.IMSocketService,AgileIM.Service"/> 15: </socketServices> 16: </socket> 17: </channel> 18: <appServices> 19: <appService key="Key" type="TValue"/> 20: </appServices> 21: </appserver>      然后复制配置好的AppServer目录到其他地方建立AppSerer2,端口信息修改为Socket:6706,Wcf-tcp:6707,Wcf-http:6708: 1: <channel> 2: <wcf enable="true"> 3: <config tcpPort="6807" httpPort="6808"/> 4: <serviceThrottling maxConcurrentCalls="128" maxConcurrentInstances="128" maxConcurrentSessions="256"/> 5: <wcfServices> 6: <wcfService key="Key" type="TValue"/> 7: </wcfServices> 8: </wcf> 9: <socket enable ="true"> 10: <config tcpPort="6806"/> 11: <serviceThrottling maxConcurrence="1024"/> 12: <socketServices> 13: <socketService key="IMSocketService" type="AgileIM.Service.IMSocketService,AgileIM.Service"/> 14: </socketServices> 15: </socket> 16: </channel> 17: <appServices> 18: <appService key="Key" type="TValue"/> 19: </appServices> 20: appserver>      同样复制AppServer目录配置NlbServer,NlbServer服务目前没有配置工具,只能自己修改配置文件EAS.NLB.Server.exe.config或者EAS.NLB.Server.x64.exe.config: 1: <?xml version="1.0"?> 2: <configuration> 3: <configSections> 4: <section name="eas" type="EAS.ConfigHandler,EAS.MicroKernel"/> 5: </configSections> 6: <!--支持混合程序集--> 7: <startup useLegacyV2RuntimeActivationPolicy="true"> 8: <supportedRuntime version="v4.0"/> 9: </startup> 10: <eas> 11: <configurations> 12: <item name="Key" value="Value"/> 13: </configurations> 14: <nlbserver> 15: <config> 16: <keepAlive timeSpan="6" chnanel="WCF"/> 17: </config> 18: <channel> 19: <wcf enable="true"> 20: <config tcpPort="6607" httpPort="6608"/> 21: <serviceThrottling maxConcurrentCalls="128" maxConcurrentInstances="128" maxConcurrentSessions="256"/> 22: <wcfServices> 23: <wcfService key="Key" type="TValue"/> 24: </wcfServices> 25: </wcf> 26: <socket enable ="true"> 27: <config tcpPort="6606" gatewayStyle="NetPacket"/> 28: <serviceThrottling maxConcurrence="10000"/> 29: </socket> 30: </channel> 31: </nlbserver> 32: <objects> 33: <!--NLB日志记录--> 34: <object name="Logger" assembly="EAS.MicroKernel" type="EAS.Loggers.TextLogger" LifestyleType="Singleton"> 35: <property name="Path" type="string" value="..\logs" /> 36: </object> 37: </objects> 38: </eas> 39: <startup> 40: <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/> 41: </startup> 42: </configuration>      配置其端口号为6606,Wcf-tcp:6607,Wcf-http:6608,配置完成后参考AgileEAS.NET SOA 中间件平台5.2版本下载、配置学习(二):配置WinClient分布式运行环境一文编写AppServer服务的安装、卸载和控制台启动脚本。      NLBServer的安装卸载和控制台启动脚本类似,都是由EAS.NLB.Server.exe -参数组成,只不过,EAS.NLB.Server只能支持在一台服务器安装一个实例,即同一台服务不充许像AppServer一样安装多个实现,以下是脚本示例: 1: @rem 安装NLB服务 2: EAS.NLB.Server.x64.exe -i 3:  4: @rem 卸载NLB服务 5: EAS.NLB.Server.x64.exe -u 6:  7: @rem 控制台启动NLB服务 8: EAS.NLB.Server.x64.exe -run 9: pause      OK,我们启动NLBServer和AppServer1、AppServer2:      接下来我们在客户端文件夹之中启动“负载均衡监控”程序EAS.NLB.Monitor.exe配置负载均衡服务的负载节点:     在服务连接之中选择新建连接,弹出新建连接对话框:     修改连接名为nlbServer,服务器为127.0.0.1,即连接本机nlbserver,实际情况之中请根据实际情况配置,端口号填入前面配置的NlbServer端口参数,我们此处选择以wcf-tcp连接,端口配置为6607,然后确定保存配置,并且进入“负载均衡监控”主界面:      “负载均衡监控”第一个界面为负载均衡服务器的CPU、内存、网络、磁盘等各种资源参数,供管理人员参考,我们切换到负载节点监控:      在空白区域右键打开快捷菜单点=>"添加节点":      根据AppServer参数添加负载节点信息,确定后保存负载节点信息,使用同样的方法添加AppSever2节点,完成后如下图:      也可以选择直接修改配置配置负载节点信息,负载节点信息存储在NlbServer工作目录中的“NLB.config”文件: 1: <?xml version="1.0" encoding="utf-16"?> 2: <NLB xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 3: <items> 4: <NlbWorkItem> 5: <host>127.0.0.1</host> 6: <wcfChannel> 7: <HttpPort>6708</HttpPort> 8: <TcpPort>6707</TcpPort> 9: </wcfChannel> 10: <socketChannel> 11: <TcpPort>6706</TcpPort> 12: </socketChannel> 13: <enabled>true</enabled> 14: <runing>true</runing> 15: </NlbWorkItem> 16: <NlbWorkItem> 17: <host>127.0.0.1</host> 18: <wcfChannel> 19: <HttpPort>6808</HttpPort> 20: <TcpPort>6807</TcpPort> 21: </wcfChannel> 22: <socketChannel> 23: <TcpPort>6806</TcpPort> 24: </socketChannel> 25: <enabled>true</enabled> 26: <runing>false</runing> 27: </NlbWorkItem> 28: </items> 29: </NLB>      OK,现在已经完成了对负载均衡的配置,接下来我们配置客户端程序“DrugShop.Main.exe”的连接信息,可以选择由配置工具生成,也可以选择手工书写,定义为SOA分布式环境下wcf-tcp连接,连接端口为127.0.0.1:6607(NLBServer),配置文件如下: 1: <?xml version="1.0" encoding="utf-8"?> 2: <configuration> 3: <configSections> 4: <section name="eas" type="EAS.ConfigHandler,EAS.MicroKernel" /> 5: </configSections> 6: <!--SQLite运行必需--> 7: <startup useLegacyV2RuntimeActivationPolicy="true"> 8: <supportedRuntime version="v4.0"/> 9: </startup> 10: <eas> 11: <configurations> 12: <item name="Key" value="Value" /> 13: </configurations> 14: <objects> 15: <!--分布式通信组件。--> 16: <object name="ServiceBridger" assembly="EAS.Distributed" type="EAS.Distributed.ServiceBridger" LifestyleType="Thread" > 17: <property name="ServiceName" type="string" value="EAS.RMI.Service" /> 18: </object> 19: <object name="DataAccessor" assembly="EAS.Distributed" type="EAS.Distributed.DataAccessor" LifestyleType="Thread" > 20: <property name="ServiceBridger" type="object" value="ServiceBridger" /> 21: </object> 22: <object name="OrmAccessor" assembly="EAS.Distributed" type="EAS.Distributed.OrmAccessor" LifestyleType="Thread" > 23: <property name="ServiceBridger" type="object" value="ServiceBridger" /> 24: <property name="DataAccessor" type="object" value="DataAccessor" /> 25: </object> 26: <!--日志管理--> 27: <object name="Logger" assembly="EAS.MicroKernel" type="EAS.Loggers.TextLogger" LifestyleType="Singleton" /> 28: <!--资源--> 29: <object name="EAS.Explorer.Resource" assembly="DrugShop.Res" type="DrugShop.Res.Resources" LifestyleType="Singleton" /> 30: </objects> 31: <services> 32: <service name="EAS.RMI.Service" service-type="WcfService" singleton="true" url="net.tcp://127.0.0.1:6607/eas/services/EAS.RMIService" /> 33: </services> 34: </eas> 35: </configuration>      OK,客户端程序配置完成。 五、测试验证      启动DrugShop.Main.exe,可以选择启动多个客户端程序实例,可以看到以控制台运行的两个服务实例都有不同程序的请求响应:      我们可以看到,客户端的业务请求被NLBServer进行了有效的负载,当我们随便停止其他任务一个AppServer,我们可以通过“负载均衡监控”程序看到其处于离线状态:      在实际项目之中可以是某一台AppServer宕机了或者人为的进行某种维护升级活动,在这个时间,所有的客户端程序的所有业务操作都是可以的,从这一点我们可以看出,AppServer被NLBServer进行了有效的故障转移,有效的提高了系统的高可用性。      如果所有的AppServer都离线了,即所有AppServer都宕机了,如下图:      那么这个时间,系统就不能提供任务的服务了,当我们在客户端执行任何操作都会报错:      当我们恢复负载之中的任务一个节点之后,系统则可以向使用者提供全部的业务服务。 六、联系我们      为完善、改进和推广AgileEAS.NET而成立了敏捷软件工程实验室,是一家研究、推广和发展新技术,并致力于提供具有自主知识产权的业务基础平台软件,以及基于业务基础平台开发的管理软件的专业软件提供商。主要业务是为客户提供软件企业研发管理解决方案、企业管理软件开发,以及相关的技术支持,管理及技术咨询与培训业务。      AgileEAS.NET SOA中间件平台自2004年秋呱呱落地一来,我就一直在逐步完善和改进,也被应用于保险、医疗、电子商务、房地产、铁路、教育等多个应用,但一直都是以我个人在推广,2010年因为我辞职休息,我就想到把AgileEAS.NET推向市场,让更多的人使用。      我的技术团队成员都是合作多年的老朋友,因为这个平台是免费的,所以也没有什么收入,都是由程序员的那种理想与信念坚持,在此我感谢一起奋斗的朋友。 团队网站:http://www.agilelab.cn, AgileEAS.NET网站:http://www.smarteas.net 官方博客:http://eastjade.cnblogs.com QQ:47920381,AgileEAS.NET QQ群:113723486(AgileEAS SOA 平台)/上限1000人 199463175(AgileEAS SOA 交流)/上限1000人 212867943(AgileEAS.NET研究)/上限500人 147168308(AgileEAS.NET应用)/上限500人 172060626(深度AgileEAS.NET平台)/上限500人 116773358(AgileEAS.NET 平台)/上限500人 125643764(AgileEAS.NET探讨)/上限500人 193486983(AgileEAS.NET 平台)/上限500人 邮件:james@agilelab.cn,mail.james@qq.com, 电话:18629261335。

Tags:

SOA | ESB | 云计算 | 中间件 | 平台 | .NET | 分布式 | 通信框架 | 消息中间件 | 框架 | NLB | AppServer | 应用程序服务 | 三层架构 | 负载均衡

最新评论

声明

本博所有网友评论不代表本博立场,版权归其作者所有。

© Copyright 2011