AgileEAS.NET SOA 中间件平台5.2版本下载、配置学习(二):配置WinClient分布式运行环境

本文涉及的产品
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
云原生网关 MSE Higress,422元/月
注册配置 MSE Nacos/ZooKeeper,118元/月
简介:

一、前言

     AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台。用于帮助中小型软件企业建立一条适合市场快速变化的开发团队,以达到节省开发成本、缩短开发时间,快速适应市场变化的目的。

     AgileEAS.NET SOA中间件平台提供了敏捷快速开发软件工程的最佳实践,通过提供大量的基础支撑功能如IOC、ORM、SOA、分布式体系及敏捷并发开发方法所支撑的插件开发体系,以及提供了大量的实体、数据模型设计生成工具、代码生成工具,用于帮助中小软件开发商快速成长。

     AgileEAS.NET平台充分把握目前软件行业快速发展的新趋势,基于敏捷并行开发、快速适应市场这样淳朴的软件工程实践,采用业界广泛使用的Microsoft .Net构件(组件)开发技术实践了这种开发思想,帮助软件企业实现“敏捷变化、快速适合”的目标,从而帮助软件企业在激烈的市场竞争中赢得先机并获得更高的回报。

二、配置分布式方式运行WinClient运行容器

     在前面的AgileEAS.NET SOA 中间件平台5.2版本下载、配置学习(一):下载平台并基于直连环境运行一文之中,为大家介绍了如何下载AgileEAS.NET SOA中间件平台,以及如何初始化数据库运行环境、配置以直连方式运行AgileEAS.NET SOA 中间件WinCleint以直接数据库方式运行。

     本文我们将为大家讲解如何以配置以”SOA服务-分布式客户端”方向运行AgileEAS.ENT SOA中间件平台WinClient容器。

三、配置SOA分布式服务端

     在配置服务端之湔我们抚运动一下下载包根目录之中的”EAS.Publisher.exe”应用程序:

     ”EAS.Publisher.exe”控件台应用程序是一个用于帮助开发人员进行分布式部署时的分发程序,其本质是将发布包“bin\dotnet”之中的程序集复制到“SOA服务”运行的环境目录“AppServer”下面的各级目录,运行程序如下:

运行时自动调用“eas.publish.cmd”脚本,将文件分发到“AppServer”下面的各级目录,其脚本内容如下:

   1: @rem 复制到下载目录
   2: copy @RootDirectory\bin\dotnet\AgileIM.Client.exe @RootDirectory\appserver\xclient\files\AgileIM.Client.exe /y
   3: copy @RootDirectory\bin\dotnet\AgileIM.Client.exe.config @RootDirectory\appserver\xclient\files\AgileIM.Client.exe.config /y
   4: copy @RootDirectory\bin\dotnet\AgileIM.Contracts.dll @RootDirectory\appserver\xclient\files\AgileIM.Contracts.dll /y
   5: copy @RootDirectory\bin\dotnet\AgileIM.Service.dll @RootDirectory\appserver\xclient\files\AgileIM.Service.dll /y
   6: copy @RootDirectory\bin\dotnet\AxInterop.grdesLib.dll @RootDirectory\appserver\xclient\files\AxInterop.grdesLib.dll /y
   7: copy @RootDirectory\bin\dotnet\AxInterop.grproLib.dll @RootDirectory\appserver\xclient\files\AxInterop.grproLib.dll /y
   8: copy @RootDirectory\bin\dotnet\EAS.ActiveXForm.ClientClasp.AddIn.dll @RootDirectory\appserver\xclient\files\EAS.ActiveXForm.ClientClasp.AddIn.dll /y
   9: copy @RootDirectory\bin\dotnet\EAS.BPM.Activities.dll @RootDirectory\appserver\xclient\files\EAS.BPM.Activities.dll /y
  10: copy @RootDirectory\bin\dotnet\EAS.BPM.BLL.Host.dll @RootDirectory\appserver\xclient\files\EAS.BPM.BLL.Host.dll /y
  11: copy @RootDirectory\bin\dotnet\EAS.BPM.WinUI.dll @RootDirectory\appserver\xclient\files\EAS.BPM.WinUI.dll /y
  12: copy @RootDirectory\bin\dotnet\eas.client.ini @RootDirectory\appserver\xclient\files\eas.client.ini /y
  13: copy @RootDirectory\bin\dotnet\EAS.Configure.exe @RootDirectory\appserver\xclient\files\EAS.Configure.exe /y
  14: copy @RootDirectory\bin\dotnet\EAS.Configure.exe.config @RootDirectory\appserver\xclient\files\EAS.Configure.exe.config /y
  15: copy @RootDirectory\bin\dotnet\EAS.Data.Controls.dll @RootDirectory\appserver\xclient\files\EAS.Data.Controls.dll /y
  16: copy @RootDirectory\bin\dotnet\EAS.Data.dll @RootDirectory\appserver\xclient\files\EAS.Data.dll /y
  17: copy @RootDirectory\bin\dotnet\EAS.Data.Provider.dll @RootDirectory\appserver\xclient\files\EAS.Data.Provider.dll /y
  18: copy @RootDirectory\bin\dotnet\EAS.Distributed.dll @RootDirectory\appserver\xclient\files\EAS.Distributed.dll /y
  19: copy @RootDirectory\bin\dotnet\EAS.Explorer.BLL.Contracts.dll @RootDirectory\appserver\xclient\files\EAS.Explorer.BLL.Contracts.dll /y
  20: copy @RootDirectory\bin\dotnet\EAS.Explorer.BLL.Host.dll @RootDirectory\appserver\xclient\files\EAS.Explorer.BLL.Host.dll /y
  21: copy @RootDirectory\bin\dotnet\EAS.Explorer.dll @RootDirectory\appserver\xclient\files\EAS.Explorer.dll /y
  22: copy @RootDirectory\bin\dotnet\EAS.Explorer.Entities.dll @RootDirectory\appserver\xclient\files\EAS.Explorer.Entities.dll /y
  23: copy @RootDirectory\bin\dotnet\EAS.Explorer.Res.dll @RootDirectory\appserver\xclient\files\EAS.Explorer.Res.dll /y
  24: copy @RootDirectory\bin\dotnet\EAS.Explorer.WinUI.dll @RootDirectory\appserver\xclient\files\EAS.Explorer.WinUI.dll /y
  25: copy @RootDirectory\bin\dotnet\EAS.FormDesigner.exe @RootDirectory\appserver\xclient\files\EAS.FormDesigner.exe /y
  26: copy @RootDirectory\bin\dotnet\EAS.GReport.Controls.dll @RootDirectory\appserver\xclient\files\EAS.GReport.Controls.dll /y
  27: copy @RootDirectory\bin\dotnet\EAS.MicroKernel.dll @RootDirectory\appserver\xclient\files\EAS.MicroKernel.dll /y
  28: copy @RootDirectory\bin\dotnet\EAS.Monitor.dll @RootDirectory\appserver\xclient\files\EAS.Monitor.dll /y
  29: copy @RootDirectory\bin\dotnet\EAS.NLB.Monitor.exe @RootDirectory\appserver\xclient\files\EAS.NLB.Monitor.exe /y
  30: copy @RootDirectory\bin\dotnet\EAS.NLB.Server.exe @RootDirectory\appserver\xclient\files\EAS.NLB.Server.exe /y
  31: copy @RootDirectory\bin\dotnet\EAS.OrmDesigner.exe @RootDirectory\appserver\xclient\files\EAS.OrmDesigner.exe /y
  32: copy @RootDirectory\bin\dotnet\EAS.OrmDesigner.exe.config @RootDirectory\appserver\xclient\files\EAS.OrmDesigner.exe.config /y
  33: copy @RootDirectory\bin\dotnet\EAS.Report.Controls.dll @RootDirectory\appserver\xclient\files\EAS.Report.Controls.dll /y
  34: copy @RootDirectory\bin\dotnet\EAS.SmartUpdater.exe @RootDirectory\appserver\xclient\files\EAS.SmartUpdater.exe /y
  35: copy @RootDirectory\bin\dotnet\EAS.SOA.Monitor.exe @RootDirectory\appserver\xclient\files\EAS.SOA.Monitor.exe /y
  36: copy @RootDirectory\bin\dotnet\EAS.ThirdParty.Controls.dll @RootDirectory\appserver\xclient\files\EAS.ThirdParty.Controls.dll /y
  37: copy @RootDirectory\bin\dotnet\EAS.WinClient.dll @RootDirectory\appserver\xclient\files\EAS.WinClient.dll /y
  38: copy @RootDirectory\bin\dotnet\EAS.WinClient.Start.exe @RootDirectory\appserver\xclient\files\EAS.WinClient.Start.exe /y
  39: copy @RootDirectory\bin\dotnet\EAS.WinClient.Start.exe.config @RootDirectory\appserver\xclient\files\EAS.WinClient.Start.exe.config /y
  40: copy @RootDirectory\bin\dotnet\EAS.Windows.dll @RootDirectory\appserver\xclient\files\EAS.Windows.dll /y
  41: copy @RootDirectory\bin\dotnet\EAS.Wpf.Controls.dll @RootDirectory\appserver\xclient\files\EAS.Wpf.Controls.dll /y
  42: copy @RootDirectory\bin\dotnet\grdes50.dll @RootDirectory\appserver\xclient\files\grdes50.dll /y
  43: copy @RootDirectory\bin\dotnet\gregn50.dll @RootDirectory\appserver\xclient\files\gregn50.dll /y
  44: copy @RootDirectory\bin\dotnet\ICSharpCode.AvalonEdit.dll @RootDirectory\appserver\xclient\files\ICSharpCode.AvalonEdit.dll /y
  45: copy @RootDirectory\bin\dotnet\Interop.grdesLib.dll @RootDirectory\appserver\xclient\files\Interop.grdesLib.dll /y
  46: copy @RootDirectory\bin\dotnet\Interop.grproLib.dll @RootDirectory\appserver\xclient\files\Interop.grproLib.dll /y
  47: copy @RootDirectory\bin\dotnet\itextsharp.dll @RootDirectory\appserver\xclient\files\itextsharp.dll /y
  48: copy @RootDirectory\bin\dotnet\lua51.x64.dll @RootDirectory\appserver\xclient\files\lua51.x64.dll /y
  49: copy @RootDirectory\bin\dotnet\lua51.x86.dll @RootDirectory\appserver\xclient\files\lua51.x86.dll /y
  50: copy @RootDirectory\bin\dotnet\LuaInterface.x64.dll @RootDirectory\appserver\xclient\files\LuaInterface.x64.dll /y
  51: copy @RootDirectory\bin\dotnet\LuaInterface.x86.dll @RootDirectory\appserver\xclient\files\LuaInterface.x86.dll /y
  52: copy @RootDirectory\bin\dotnet\Microsoft.Data.ConnectionUI.Dialog.dll @RootDirectory\appserver\xclient\files\Microsoft.Data.ConnectionUI.Dialog.dll /y
  53: copy @RootDirectory\bin\dotnet\Microsoft.Data.ConnectionUI.dll @RootDirectory\appserver\xclient\files\Microsoft.Data.ConnectionUI.dll /y
  54: copy @RootDirectory\bin\dotnet\Microsoft.XmlNotepad.dll @RootDirectory\appserver\xclient\files\Microsoft.XmlNotepad.dll /y
  55: copy @RootDirectory\bin\dotnet\MongoDB.dll @RootDirectory\appserver\xclient\files\MongoDB.dll /y
  56: copy @RootDirectory\bin\dotnet\MySql.Data.dll @RootDirectory\appserver\xclient\files\MySql.Data.dll /y
  57: copy @RootDirectory\bin\dotnet\NetronGraphLib.dll @RootDirectory\appserver\xclient\files\NetronGraphLib.dll /y
  58: copy @RootDirectory\bin\dotnet\protobuf-net.xml @RootDirectory\appserver\xclient\files\protobuf-net.xml /y
  59: copy @RootDirectory\bin\dotnet\RdlDesigner.dll @RootDirectory\appserver\xclient\files\RdlDesigner.dll /y
  60: copy @RootDirectory\bin\dotnet\RdlEngine.dll @RootDirectory\appserver\xclient\files\RdlEngine.dll /y
  61: copy @RootDirectory\bin\dotnet\RdlViewer.dll @RootDirectory\appserver\xclient\files\RdlViewer.dll /y
  62: copy @RootDirectory\bin\dotnet\System.Data.SQLite.DLL @RootDirectory\appserver\xclient\files\System.Data.SQLite.DLL /y
  63: copy @RootDirectory\bin\dotnet\System.Workflow.Activities.dll @RootDirectory\appserver\xclient\files\System.Workflow.Activities.dll /y
  64: copy @RootDirectory\bin\dotnet\System.Workflow.ComponentModel.dll @RootDirectory\appserver\xclient\files\System.Workflow.ComponentModel.dll /y
  65: copy @RootDirectory\bin\dotnet\System.Workflow.Runtime.dll @RootDirectory\appserver\xclient\files\System.Workflow.Runtime.dll /y
  66: copy @RootDirectory\bin\dotnet\update.ini @RootDirectory\appserver\xclient\files\update.ini /y
  67: copy @RootDirectory\bin\dotnet\WF.Demo.DAL.dll @RootDirectory\appserver\xclient\files\WF.Demo.DAL.dll /y
  68: copy @RootDirectory\bin\dotnet\WF.Demo.UI.dll @RootDirectory\appserver\xclient\files\WF.Demo.UI.dll /y
  69: @rem 复制到下载配置目录
  70: copy @RootDirectory\bin\dotnet\EAS.SmartUpdateConfig.exe @RootDirectory\appserver\xclient\EAS.SmartUpdateConfig.exe /y
  71: copy @RootDirectory\bin\dotnet\EAS.SmartUpdateConfig.exe.config @RootDirectory\appserver\xclient\EAS.SmartUpdateConfig.exe.config /y
  72: @rem 复制到SOA服务Bin目录
  73: copy @RootDirectory\bin\dotnet\AgileIM.Contracts.dll @RootDirectory\appserver\bin\AgileIM.Contracts.dll /y
  74: copy @RootDirectory\bin\dotnet\AgileIM.Service.dll @RootDirectory\appserver\bin\AgileIM.Service.dll /y
  75: copy @RootDirectory\bin\dotnet\EAS.BPM.Activities.dll @RootDirectory\appserver\bin\EAS.BPM.Activities.dll /y
  76: copy @RootDirectory\bin\dotnet\EAS.BPM.BLL.Host.dll @RootDirectory\appserver\bin\EAS.BPM.BLL.Host.dll /y
  77: copy @RootDirectory\bin\dotnet\EAS.Configure.exe @RootDirectory\appserver\bin\EAS.Configure.exe /y
  78: copy @RootDirectory\bin\dotnet\EAS.Configure.exe.config @RootDirectory\appserver\bin\EAS.Configure.exe.config /y
  79: copy @RootDirectory\bin\dotnet\EAS.Data.dll @RootDirectory\appserver\bin\EAS.Data.dll /y
  80: copy @RootDirectory\bin\dotnet\EAS.Data.Provider.dll @RootDirectory\appserver\bin\EAS.Data.Provider.dll /y
  81: copy @RootDirectory\bin\dotnet\EAS.Data.xml @RootDirectory\appserver\bin\EAS.Data.xml /y
  82: copy @RootDirectory\bin\dotnet\EAS.DbInitializer.exe @RootDirectory\appserver\bin\EAS.DbInitializer.exe /y
  83: copy @RootDirectory\bin\dotnet\EAS.DbInitializer.exe.config @RootDirectory\appserver\bin\EAS.DbInitializer.exe.config /y
  84: copy @RootDirectory\bin\dotnet\EAS.Distributed.dll @RootDirectory\appserver\bin\EAS.Distributed.dll /y
  85: copy @RootDirectory\bin\dotnet\EAS.Explorer.BLL.Contracts.dll @RootDirectory\appserver\bin\EAS.Explorer.BLL.Contracts.dll /y
  86: copy @RootDirectory\bin\dotnet\EAS.Explorer.BLL.Host.dll @RootDirectory\appserver\bin\EAS.Explorer.BLL.Host.dll /y
  87: copy @RootDirectory\bin\dotnet\EAS.Explorer.dll @RootDirectory\appserver\bin\EAS.Explorer.dll /y
  88: copy @RootDirectory\bin\dotnet\EAS.Explorer.Entities.dll @RootDirectory\appserver\bin\EAS.Explorer.Entities.dll /y
  89: copy @RootDirectory\bin\dotnet\EAS.MicroKernel.dll @RootDirectory\appserver\bin\EAS.MicroKernel.dll /y
  90: copy @RootDirectory\bin\dotnet\EAS.Monitor.dll @RootDirectory\appserver\bin\EAS.Monitor.dll /y
  91: copy @RootDirectory\bin\dotnet\EAS.NLB.Monitor.exe @RootDirectory\appserver\bin\EAS.NLB.Monitor.exe /y
  92: copy @RootDirectory\bin\dotnet\EAS.NLB.Server.exe @RootDirectory\appserver\bin\EAS.NLB.Server.exe /y
  93: copy @RootDirectory\bin\dotnet\EAS.NLB.Server.exe.config @RootDirectory\appserver\bin\EAS.NLB.Server.exe.config /y
  94: copy @RootDirectory\bin\dotnet\EAS.NLB.Server.x64.exe @RootDirectory\appserver\bin\EAS.NLB.Server.x64.exe /y
  95: copy @RootDirectory\bin\dotnet\EAS.SOA.Server.exe @RootDirectory\appserver\bin\EAS.SOA.Server.exe /y
  96: copy @RootDirectory\bin\dotnet\EAS.SOA.Server.exe.config @RootDirectory\appserver\bin\EAS.SOA.Server.exe.config /y
  97: copy @RootDirectory\bin\dotnet\EAS.SOA.Server.x64.exe @RootDirectory\appserver\bin\EAS.SOA.Server.x64.exe /y
  98: copy @RootDirectory\bin\dotnet\EAS.SOA.Server.x64.exe.config @RootDirectory\appserver\bin\EAS.SOA.Server.x64.exe.config /y
  99: copy @RootDirectory\bin\dotnet\lua51.x64.dll @RootDirectory\appserver\bin\lua51.x64.dll /y
 100: copy @RootDirectory\bin\dotnet\lua51.x86.dll @RootDirectory\appserver\bin\lua51.x86.dll /y
 101: copy @RootDirectory\bin\dotnet\LuaInterface.x64.dll @RootDirectory\appserver\bin\LuaInterface.x64.dll /y
 102: copy @RootDirectory\bin\dotnet\LuaInterface.x86.dll @RootDirectory\appserver\bin\LuaInterface.x86.dll /y
 103: copy @RootDirectory\bin\dotnet\MongoDB.dll @RootDirectory\appserver\bin\MongoDB.dll /y
 104: copy @RootDirectory\bin\dotnet\MySql.Data.dll @RootDirectory\appserver\bin\MySql.Data.dll /y
 105: copy @RootDirectory\bin\dotnet\RdlEngine.dll @RootDirectory\appserver\bin\RdlEngine.dll /y
 106: copy @RootDirectory\bin\dotnet\RdlViewer.dll @RootDirectory\appserver\bin\RdlViewer.dll /y
 107: copy @RootDirectory\bin\dotnet\soaserver.start.bat @RootDirectory\appserver\bin\soaserver.start.bat /y
 108: copy @RootDirectory\bin\dotnet\soaserver.start.bat @RootDirectory\appserver\bin\install.bat /y
 109: copy @RootDirectory\bin\dotnet\soaserver.start.bat @RootDirectory\appserver\bin\uinstall.bat /y
 110: copy @RootDirectory\bin\dotnet\System.Data.SQLite.DLL @RootDirectory\appserver\bin\System.Data.SQLite.DLL /y
 111: copy @RootDirectory\bin\dotnet\System.Workflow.Activities.dll @RootDirectory\appserver\bin\System.Workflow.Activities.dll /y
 112: copy @RootDirectory\bin\dotnet\System.Workflow.ComponentModel.dll @RootDirectory\appserver\bin\System.Workflow.ComponentModel.dll /y
 113: copy @RootDirectory\bin\dotnet\System.Workflow.Runtime.dll @RootDirectory\appserver\bin\System.Workflow.Runtime.dll /y
 114: copy @RootDirectory\bin\dotnet\WF.Demo.DAL.dll @RootDirectory\appserver\bin\WF.Demo.DAL.dll /y
 115:  

     其中@RootDirectory程序会根据运行时工作目录进行替换,注意:下载的AgileEAS.NET SOA中间件平台的解压目录路径之中最好不要带空格和中文

     接下来我们配置服务端,数据库我们将使用“AgileEAS.NET SOA 中间件平台5.2版本下载、配置学习(一):下载平台并基于直连环境运行一文所建立和初始化的”eas_demo”数据库。

     我们运行“AppServer\Bin”目录之中的“EAS.Configure.exe”AgileEAS.NET SOA中间件配置文件生成工具生成服务端配置:

     一定要选中“生成SOA分布式服务器配置”和“保存配置到AgileEAS.NET SOA 平台相关配置文件”然后点“下一步”:

     填写WCF服务所需要的通信端口号(http和tcp各一个)、以及Socket通信服务的tcp的端口”以及数据库连接信息,然后点“下一步”:

     界面上方是根据所设参数生成的配置信息,此处,可以改变配置信息的输出路径,默认为当前目录之中的“EAS.SOA.Server.exe.config”,点击“完成”输出配置:

     至此,服务端的配置已经完成,接焉为我们以控件台方式运行一下SOA服务端,运行“AppServer\Bin”目录之中的“soaserver.start.bat”指处理文件:

     “soaserver.start.bat”批处理文件是SOA服务的控制台运行脚本,即以控制台模式运行SOA服务端,我们运行如下:

     “appServer\Binsoaserver.start.bat”批处理文件其内容如下:

   1: EAS.soa.Server.exe -run
   2: pause

     其本质是“EAS.soa.Server.exe -run”这一旬,EAS.SOA.Server.exe带了一个启动参考 -run,即告诉EAS.SOA.Server.exe以控制台方式运行承载服务,除-run参数之外,EAS.SOA.Server.exe还支持以下参数:

     -i 或者/i:向Windows服务控制器安装AgileEAS.NET SOA中间件平台SOA服务。

     -u 或者/u:卸载已存在的AgileEAS.NET SOA中间件平台SOA服务。

     /name=实例名:在安装、卸载AgileEAS.NET SOA中间件平台SOA服务的时候,告诉服务控制器,要安装什么实例的名称是什么,AgileEAS.NET SOA中间件的服务设计为可以多服务实例运行,即一台电脑上可以运行实例名称为”EAS”、“Demo”、“HIS”、“EMR”、“PACS”等不同的服务实例,类似于SQL的命名实现,当然这个参数是一个可选参考,如果不使用本参数,则安装和卸载默认实例,一台电脑只能安装一个默认实例,比如以下脚本:

     “AppServer\Bin\install.bat”脚本

EAS.SOA.Server.exe /i /name=demo 
pause

     表现安装一个实例名称为“demo”的AgileEAS.NET SOA中间件平台SOA服务实例,我们可以执行这个脚本:

     我们打开系统管理工具之中的服务管理:

     那以在生产环境之中我们就可以通过这种方式部署AgileEAS.NET SOA 中间件平台的SOA服务,服务安装之后会随计算机启动而自动启动,我们可以很方便的通过系统服务管理工具进行启动、停止服务,如果我们不使用这个服务了,我们可以使用以下脚本卸载这个服务:

     “AppServer\Bin\uinstall.bat”脚本

   1: EAS.SOA.Server.exe /u /name=demo
   2: pause

     执行脚本如下:

     我们运行“appServer\Bin\soaserver.start.bat”启动服务进行下一步配置。

四、配置分布式WinClient客户段

     在第三节中我们使用”EAS.Publisher.exe”分发程序分发文件,会自动把客户段运行文件复制到”appServer\xclient\files”之中,那么我们运行”appServer\xclient\files\EAS.Configure.exe”配置程序配置客户端

    选中“生成客户端配置(分布式访问结果)”和“保存配置到AgileEAS.NET SOA 平台相关配置文件”然后点击“下一步”:

    这里需要注意的是端口号要根据选择的通信模式和第三节所设置的服务器参数进行决定,tcp对应第三节服务器设置之中的WCF服务之中的Tcp端口号,http对应WCF服务之中的http端口号,socket对应socket服务模式之中的tcp端口号。

    点击“下一步”继续:

    点击“完成”输出客户端配置到“EAS.WinClient.Start.exe.config”配置文件之中,内容如下:

   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="EAS.Explorer.Res" type="EAS.Explorer.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:       <service name="EAS.Storage.Service" service-type="WcfService" singleton="true" url="net.tcp://127.0.0.1:6607/eas/services/EAS.StorageService" />
  34:     </services>
  35:   </eas>
  36: </configuration>

    至此为止,我们完成了不带自动升级功能的分布式客户端配置,我们启动客户程序“EAS.WinClient.Start.exe”,并使用账号:Adminstrator,密码:sa登录,看到如下界面:

     那么如何分辨程序是以分布式方式运行的呢,我们打开以控件台运行的SOA服务程序CMD窗口,就会看到其中一些消息通信记录:

五、配置自动升级

     第四节我们在”appServer\xclient\files”目录之中成功配置了分布式客户端并且成功运行,那么我们”appServer\xclient\files”为基础配置一个自升级服务。

     打开”appServer\xclient\files\update.ini”文件进行修改:

   1: # AgileEAS.Net 平台升级控件文件。
   2:  
   3: [config]
   4:  
   5: allow = 0
   6: application = EAS.WinClient.Start.exe
   7: url = net.tcp://localhost:6607/eas/services/EAS.UpdateService

    其中allow表示是否升级,url为升级服务地址,地址组成为wcf协议net.tcp://或http://+主机名称为IP+端口号+/eas/services/eas.updateservice,application表示升级完成之后启动运行的程序,我们根据第三节的配置修改如下:

   1: # AgileEAS.Net 平台升级控件文件。
   2:  
   3: [config]
   4:  
   5: allow = 1
   6: application = EAS.WinClient.Start.exe
   7: url = net.tcp://localhost:6607/eas/services/EAS.UpdateService

    然后我们删除目录里面的临时文件夹“Data”和“logs”,进行”appServer\xclient”,运行目录之中的”EAS.SmartUpdateConfig.exe“程序:

     ”EAS.SmartUpdateConfig.exe“程序是AgileEAS.NET  SOA 中间件平台的升级配置程序,即当我们的应用的程序文件发生了新级和变更,需要把文件复制”appServer\xclient\files”目录之中,并且运行”EAS.SmartUpdateConfig.exe“程序以生成升级配置文件,升级配置文件存储在”appServer\xclient\conig”目录之中的”SmartUpdate.xml“文件之中,其内容如下:

   1: <?xml version="1.0" encoding="utf-8"?>
   2: <SmartConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   3:   <URI>http://www.smarteas.net/</URI>
   4:   <Name>AgileEAS.NET SOA平台升级配置文件</Name>
   5:   <Description>用于AgileEAS.NET SOA平台SmartClient/ActiveX运行容器模块升级之用</Description>
   6:   <StartEx />
   7:   <Time>2013-10-16T08:56:44.67765+08:00</Time>
   8:   <Files>
   9:     <SmartFile>
  10:       <FileName>AgileIM.Client.exe</FileName>
  11:       <Version>1.0.0.0</Version>
  12:       <Time>2013-10-15T16:59:23.5252+08:00</Time>
  13:     </SmartFile>
  14:     <SmartFile>
  15:       <FileName>AgileIM.Client.exe.config</FileName>
  16:       <Time>2013-08-27T12:10:12.0756571+08:00</Time>
  17:     </SmartFile>
  18:     <SmartFile>
  19:       <FileName>AgileIM.Contracts.dll</FileName>
  20:       <Version>1.0.0.0</Version>
  21:       <Time>2013-10-12T19:50:18.155+08:00</Time>
  22:     </SmartFile>
  23:     <SmartFile>
  24:       <FileName>AgileIM.Service.dll</FileName>
  25:       <Version>1.0.0.0</Version>
  26:       <Time>2013-10-15T16:59:24.5722599+08:00</Time>
  27:     </SmartFile>
  28:     <SmartFile>
  29:       <FileName>AxInterop.grdesLib.dll</FileName>
  30:       <Version>5.0.0.0</Version>
  31:       <Time>2013-10-12T19:50:02.442+08:00</Time>
  32:     </SmartFile>
  33:     <SmartFile>
  34:       <FileName>AxInterop.grproLib.dll</FileName>
  35:       <Version>5.0.0.0</Version>
  36:       <Time>2013-10-12T19:50:02.975+08:00</Time>
  37:     </SmartFile>
  38:     <SmartFile>
  39:       <FileName>EAS.ActiveXForm.ClientClasp.AddIn.dll</FileName>
  40:       <Version>1.0.0.0</Version>
  41:       <Time>2013-10-15T17:00:44.6468399+08:00</Time>
  42:     </SmartFile>
  43:     <SmartFile>
  44:       <FileName>EAS.BPM.Activities.dll</FileName>
  45:       <Version>1.1.0.0</Version>
  46:       <Time>2013-10-15T16:59:38.4650545+08:00</Time>
  47:     </SmartFile>
  48:     <SmartFile>
  49:       <FileName>EAS.BPM.BLL.Host.dll</FileName>
  50:       <Version>1.0.0.0</Version>
  51:       <Time>2013-10-15T17:00:41.6456682+08:00</Time>
  52:     </SmartFile>
  53:     <SmartFile>
  54:       <FileName>EAS.BPM.WinUI.dll</FileName>
  55:       <Version>2.0.0.0</Version>
  56:       <Time>2013-10-15T16:59:45.0194294+08:00</Time>
  57:     </SmartFile>
  58:     <SmartFile>
  59:       <FileName>eas.client.ini</FileName>
  60:       <Time>2013-10-15T21:22:56.5866492+08:00</Time>
  61:     </SmartFile>
  62:     <SmartFile>
  63:       <FileName>EAS.Configure.exe</FileName>
  64:       <Version>2.0.0.0</Version>
  65:       <Time>2013-10-15T16:59:27.6444356+08:00</Time>
  66:     </SmartFile>
  67:     <SmartFile>
  68:       <FileName>EAS.Configure.exe.config</FileName>
  69:       <Time>2013-04-15T19:59:09.4420283+08:00</Time>
  70:     </SmartFile>
  71:     <SmartFile>
  72:       <FileName>EAS.Data.Controls.dll</FileName>
  73:       <Version>1.0.0.0</Version>
  74:       <Time>2013-10-15T17:36:07.4252559+08:00</Time>
  75:     </SmartFile>
  76:     <SmartFile>
  77:       <FileName>EAS.Data.dll</FileName>
  78:       <Version>5.0.0.0</Version>
  79:       <Time>2013-10-15T16:59:34.241813+08:00</Time>
  80:     </SmartFile>
  81:     <SmartFile>
  82:       <FileName>EAS.Data.Provider.dll</FileName>
  83:       <Version>5.0.0.0</Version>
  84:       <Time>2013-10-15T16:59:59.6222646+08:00</Time>
  85:     </SmartFile>
  86:     <SmartFile>
  87:       <FileName>EAS.Distributed.dll</FileName>
  88:       <Version>5.0.0.0</Version>
  89:       <Time>2013-10-15T17:00:39.8145635+08:00</Time>
  90:     </SmartFile>
  91:     <SmartFile>
  92:       <FileName>EAS.Explorer.BLL.Contracts.dll</FileName>
  93:       <Version>5.0.0.0</Version>
  94:       <Time>2013-10-12T19:50:17.932+08:00</Time>
  95:     </SmartFile>
  96:     <SmartFile>
  97:       <FileName>EAS.Explorer.BLL.Host.dll</FileName>
  98:       <Version>5.0.0.0</Version>
  99:       <Time>2013-10-15T17:00:14.297104+08:00</Time>
 100:     </SmartFile>
 101:     <SmartFile>
 102:       <FileName>EAS.Explorer.dll</FileName>
 103:       <Version>5.0.0.0</Version>
 104:       <Time>2013-10-12T19:50:16.931+08:00</Time>
 105:     </SmartFile>
 106:     <SmartFile>
 107:       <FileName>EAS.Explorer.Entities.dll</FileName>
 108:       <Version>5.0.0.0</Version>
 109:       <Time>2013-10-15T17:00:16.9642565+08:00</Time>
 110:     </SmartFile>
 111:     <SmartFile>
 112:       <FileName>EAS.Explorer.Res.dll</FileName>
 113:       <Version>1.1.0.0</Version>
 114:       <Time>2013-10-12T19:50:50.7467432+08:00</Time>
 115:     </SmartFile>
 116:     <SmartFile>
 117:       <FileName>EAS.Explorer.WinUI.dll</FileName>
 118:       <Version>5.0.0.0</Version>
 119:       <Time>2013-10-15T16:59:56.5250875+08:00</Time>
 120:     </SmartFile>
 121:     <SmartFile>
 122:       <FileName>EAS.FormDesigner.exe</FileName>
 123:       <Version>5.0.0.0</Version>
 124:       <Time>2013-10-15T16:59:46.1954967+08:00</Time>
 125:     </SmartFile>
 126:     <SmartFile>
 127:       <FileName>EAS.GReport.Controls.dll</FileName>
 128:       <Version>1.0.0.0</Version>
 129:       <Time>2013-10-15T17:00:07.2997038+08:00</Time>
 130:     </SmartFile>
 131:     <SmartFile>
 132:       <FileName>EAS.MicroKernel.dll</FileName>
 133:       <Version>5.0.0.0</Version>
 134:       <Time>2013-10-15T16:59:29.7545563+08:00</Time>
 135:     </SmartFile>
 136:     <SmartFile>
 137:       <FileName>EAS.Monitor.dll</FileName>
 138:       <Version>1.0.0.0</Version>
 139:       <Time>2013-10-12T19:50:10.901+08:00</Time>
 140:     </SmartFile>
 141:     <SmartFile>
 142:       <FileName>EAS.NLB.Monitor.exe</FileName>
 143:       <Version>1.0.0.0</Version>
 144:       <Time>2013-10-15T17:00:08.143752+08:00</Time>
 145:     </SmartFile>
 146:     <SmartFile>
 147:       <FileName>EAS.NLB.Server.exe</FileName>
 148:       <Version>1.0.0.0</Version>
 149:       <Time>2013-10-15T17:00:16.3272201+08:00</Time>
 150:     </SmartFile>
 151:     <SmartFile>
 152:       <FileName>EAS.OrmDesigner.exe</FileName>
 153:       <Version>5.0.0.0</Version>
 154:       <Time>2013-10-15T16:58:10.8720445+08:00</Time>
 155:     </SmartFile>
 156:     <SmartFile>
 157:       <FileName>EAS.OrmDesigner.exe.config</FileName>
 158:       <Time>2012-01-07T11:28:39.2362631+08:00</Time>
 159:     </SmartFile>
 160:     <SmartFile>
 161:       <FileName>EAS.Report.Controls.dll</FileName>
 162:       <Version>3.0.0.0</Version>
 163:       <Time>2013-10-15T17:00:11.6179508+08:00</Time>
 164:     </SmartFile>
 165:     <SmartFile>
 166:       <FileName>EAS.SmartUpdater.exe</FileName>
 167:       <Version>1.0.0.0</Version>
 168:       <Time>2013-10-15T16:59:54.662981+08:00</Time>
 169:     </SmartFile>
 170:     <SmartFile>
 171:       <FileName>EAS.SOA.Monitor.exe</FileName>
 172:       <Version>1.0.0.0</Version>
 173:       <Time>2013-10-15T17:00:20.4044533+08:00</Time>
 174:     </SmartFile>
 175:     <SmartFile>
 176:       <FileName>EAS.ThirdParty.Controls.dll</FileName>
 177:       <Version>1.0.0.0</Version>
 178:       <Time>2013-10-12T19:49:55.311+08:00</Time>
 179:     </SmartFile>
 180:     <SmartFile>
 181:       <FileName>EAS.WinClient.dll</FileName>
 182:       <Version>5.1.0.0</Version>
 183:       <Time>2013-10-15T17:00:24.8407071+08:00</Time>
 184:     </SmartFile>
 185:     <SmartFile>
 186:       <FileName>EAS.WinClient.Start.exe</FileName>
 187:       <Version>5.0.0.0</Version>
 188:       <Time>2013-10-15T16:59:14.0236565+08:00</Time>
 189:     </SmartFile>
 190:     <SmartFile>
 191:       <FileName>EAS.WinClient.Start.exe.config</FileName>
 192:       <Time>2013-10-15T21:20:03.86277+08:00</Time>
 193:     </SmartFile>
 194:     <SmartFile>
 195:       <FileName>EAS.Windows.dll</FileName>
 196:       <Version>5.0.0.0</Version>
 197:       <Time>2013-10-15T17:00:30.9600571+08:00</Time>
 198:     </SmartFile>
 199:     <SmartFile>
 200:       <FileName>EAS.Wpf.Controls.dll</FileName>
 201:       <Version>1.0.0.0</Version>
 202:       <Time>2013-10-15T17:00:38.075464+08:00</Time>
 203:     </SmartFile>
 204:     <SmartFile>
 205:       <FileName>grdes50.dll</FileName>
 206:       <Version>5, 8, 13, 620</Version>
 207:       <Time>2013-06-24T23:11:32+08:00</Time>
 208:     </SmartFile>
 209:     <SmartFile>
 210:       <FileName>gregn50.dll</FileName>
 211:       <Version>5, 8, 13, 620</Version>
 212:       <Time>2013-06-24T23:10:26+08:00</Time>
 213:     </SmartFile>
 214:     <SmartFile>
 215:       <FileName>ICSharpCode.AvalonEdit.dll</FileName>
 216:       <Version>4.3.1.9429</Version>
 217:       <Time>2013-10-12T19:50:15.045+08:00</Time>
 218:     </SmartFile>
 219:     <SmartFile>
 220:       <FileName>Interop.grdesLib.dll</FileName>
 221:       <Version>5.0.0.0</Version>
 222:       <Time>2013-10-12T19:50:01.56+08:00</Time>
 223:     </SmartFile>
 224:     <SmartFile>
 225:       <FileName>Interop.grproLib.dll</FileName>
 226:       <Version>5.0.0.0</Version>
 227:       <Time>2013-10-12T19:50:02.088+08:00</Time>
 228:     </SmartFile>
 229:     <SmartFile>
 230:       <FileName>itextsharp.dll</FileName>
 231:       <Version>4.1.2.0</Version>
 232:       <Time>2011-04-19T10:03:14+08:00</Time>
 233:     </SmartFile>
 234:     <SmartFile>
 235:       <FileName>lua51.x64.dll</FileName>
 236:       <Time>2013-09-30T13:25:51.209+08:00</Time>
 237:     </SmartFile>
 238:     <SmartFile>
 239:       <FileName>lua51.x86.dll</FileName>
 240:       <Time>2013-09-30T13:27:36.369897+08:00</Time>
 241:     </SmartFile>
 242:     <SmartFile>
 243:       <FileName>LuaInterface.x64.dll</FileName>
 244:       <Version>2.0.4.24313</Version>
 245:       <Time>2013-09-30T13:30:27.8847071+08:00</Time>
 246:     </SmartFile>
 247:     <SmartFile>
 248:       <FileName>LuaInterface.x86.dll</FileName>
 249:       <Version>2.0.4.24313</Version>
 250:       <Time>2013-09-30T13:30:27.8937076+08:00</Time>
 251:     </SmartFile>
 252:     <SmartFile>
 253:       <FileName>Microsoft.Data.ConnectionUI.Dialog.dll</FileName>
 254:       <Version>8.0.50727.42 (RTM.050727-4200)</Version>
 255:       <Time>2011-04-19T14:03:22+08:00</Time>
 256:     </SmartFile>
 257:     <SmartFile>
 258:       <FileName>Microsoft.Data.ConnectionUI.dll</FileName>
 259:       <Version>8.0.50727.42 (RTM.050727-4200)</Version>
 260:       <Time>2011-04-19T14:03:22+08:00</Time>
 261:     </SmartFile>
 262:     <SmartFile>
 263:       <FileName>Microsoft.XmlNotepad.dll</FileName>
 264:       <Version>2.5.3145.19740</Version>
 265:       <Time>2008-08-11T11:58:04+08:00</Time>
 266:     </SmartFile>
 267:     <SmartFile>
 268:       <FileName>MongoDB.dll</FileName>
 269:       <Version>0.90.0.1</Version>
 270:       <Time>2012-03-16T19:11:12.6696083+08:00</Time>
 271:     </SmartFile>
 272:     <SmartFile>
 273:       <FileName>MySql.Data.dll</FileName>
 274:       <Version>5.0.9.0</Version>
 275:       <Time>2008-04-14T12:04:28+08:00</Time>
 276:     </SmartFile>
 277:     <SmartFile>
 278:       <FileName>NetronGraphLib.dll</FileName>
 279:       <Version>2.2.3328.30433</Version>
 280:       <Time>2009-02-10T16:54:28+08:00</Time>
 281:     </SmartFile>
 282:     <SmartFile>
 283:       <FileName>RdlDesigner.dll</FileName>
 284:       <Version>3.9.7.0</Version>
 285:       <Time>2013-10-12T19:50:00.225+08:00</Time>
 286:     </SmartFile>
 287:     <SmartFile>
 288:       <FileName>RdlEngine.dll</FileName>
 289:       <Version>3.9.7.0</Version>
 290:       <Time>2013-10-12T19:49:53.522+08:00</Time>
 291:     </SmartFile>
 292:     <SmartFile>
 293:       <FileName>RdlViewer.dll</FileName>
 294:       <Version>3.9.6.0</Version>
 295:       <Time>2013-10-12T19:49:56.182+08:00</Time>
 296:     </SmartFile>
 297:     <SmartFile>
 298:       <FileName>System.Data.SQLite.DLL</FileName>
 299:       <Version>1.0.66.0</Version>
 300:       <Time>2010-04-18T13:34:12+08:00</Time>
 301:     </SmartFile>
 302:     <SmartFile>
 303:       <FileName>System.Workflow.Activities.dll</FileName>
 304:       <Version>4.0.30319.1 (RTMRel.030319-0100)</Version>
 305:       <Time>2010-03-18T19:31:26+08:00</Time>
 306:     </SmartFile>
 307:     <SmartFile>
 308:       <FileName>System.Workflow.ComponentModel.dll</FileName>
 309:       <Version>4.0.30319.1 (RTMRel.030319-0100)</Version>
 310:       <Time>2010-03-18T19:31:26+08:00</Time>
 311:     </SmartFile>
 312:     <SmartFile>
 313:       <FileName>System.Workflow.Runtime.dll</FileName>
 314:       <Version>4.0.30319.1 (RTMRel.030319-0100)</Version>
 315:       <Time>2010-03-18T19:31:26+08:00</Time>
 316:     </SmartFile>
 317:     <SmartFile>
 318:       <FileName>update.ini</FileName>
 319:       <Time>2013-10-15T21:32:33.0976238+08:00</Time>
 320:     </SmartFile>
 321:     <SmartFile>
 322:       <FileName>WF.Demo.DAL.dll</FileName>
 323:       <Version>1.0.0.0</Version>
 324:       <Time>2013-10-12T19:49:57.9107211+08:00</Time>
 325:     </SmartFile>
 326:     <SmartFile>
 327:       <FileName>WF.Demo.UI.dll</FileName>
 328:       <Version>1.0.0.0</Version>
 329:       <Time>2013-10-12T19:50:49.1896541+08:00</Time>
 330:     </SmartFile>
 331:   </Files>
 332: </SmartConfig>

     ”SmartUpdate.xml“文件为平台的升级配置文件,其本质是存储一个文件及其最后修改时间的一个清单,客户端也持有这么一份清单,客户端会依据自己持有的清单与服务器上的清单比对以判定需要升级更新那些文件。

      ”appServer\xclient”为AgileEAS.NET SOA 中间件的服务端升级目录,这个路径是不能更改的,在AgileEAS.NET SOA 中间件有服务设计之中更新了硬性的规定,其中”appServer\xclient\files”目录其本质就是客户端的最新复制。

     当我们完成以上配置之后,我们来验证一个自动升级是否可以使用,我们把”appServer\xclient\files”复制到其他地方,比如我们复制到“D:\”并重命名为”d:\eas.client”,如下图:

     然后我们运行“d:\eas.client\eas.winclient.start.exe”,系统有如下提示:

     我们点击“确定”将会启动升级程序进行升级:

     升级完成之后点击“关闭”,系统将会自己启动“d:\eas.client\eas.winclient.start.exe”,打开登录窗口:

     输入用户:Administrator密码:sa,点击登录,打开主界面:

六、联系我们

     为了完善、改进和推广AgileEAS.NET而成立了敏捷软件工程实验室,是一家研究、推广和发展新技术,并致力于提供具有自主知识产权的业务基础平台软件,以及基于业务基础平台了开发的管理软件的专业软件提供商。主要业务是为客户提供软件企业研发管理解决方案、企业管理软件开发,以及相关的技术支持,管理及技术咨询与培训业务。

     AgileEAS.NET平台自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人

120661978(AgileEAS.NET 平台交流)/上限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。


    本文转自魏琼东博客园博客,原文链接:http://www.cnblogs.com/eastjade/p/3406150.html,如需转载请自行联系原作者

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。 &nbsp; 相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
3月前
|
存储 缓存 监控
分布式链路监控系统问题之kywalking在后期维护过程中可能会遇到中间件版本升级的问题如何解决
分布式链路监控系统问题之kywalking在后期维护过程中可能会遇到中间件版本升级的问题如何解决
|
9天前
|
存储 设计模式 编解码
.NET 8.0 通用管理平台,支持模块化、WinForms 和 WPF
【11月更文挑战第5天】本文分析了.NET 8.0 通用管理平台在模块化、WinForms 和 WPF 方面的优势。模块化设计提升了系统的可维护性和可扩展性,提高了代码复用性;WinForms 提供了丰富的控件库和简单易用的开发模式,技术成熟稳定;WPF 支持强大的数据绑定和 MVVM 模式,具备丰富的图形和动画功能,以及灵活的布局系统。
|
1月前
|
分布式计算 Hadoop 网络安全
Hadoop-08-HDFS集群 基础知识 命令行上机实操 hadoop fs 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
Hadoop-08-HDFS集群 基础知识 命令行上机实操 hadoop fs 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
30 1
|
1月前
|
存储 机器学习/深度学习 缓存
Hadoop-07-HDFS集群 基础知识 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
Hadoop-07-HDFS集群 基础知识 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
44 1
|
1月前
|
分布式计算 资源调度 Hadoop
Hadoop-05-Hadoop集群 集群WordCount 超详细 真正的分布式计算 上传HDFS MapReduce计算 YRAN查看任务 上传计算下载查看
Hadoop-05-Hadoop集群 集群WordCount 超详细 真正的分布式计算 上传HDFS MapReduce计算 YRAN查看任务 上传计算下载查看
47 1
|
3月前
|
开发者 API Windows
从怀旧到革新:看WinForms如何在保持向后兼容性的前提下,借助.NET新平台的力量实现自我进化与应用现代化,让经典桌面应用焕发第二春——我们的WinForms应用转型之路深度剖析
【8月更文挑战第31天】在Windows桌面应用开发中,Windows Forms(WinForms)依然是许多开发者的首选。尽管.NET Framework已演进至.NET 5 及更高版本,WinForms 仍作为核心组件保留,支持现有代码库的同时引入新特性。开发者可将项目迁移至.NET Core,享受性能提升和跨平台能力。迁移时需注意API变更,确保应用平稳过渡。通过自定义样式或第三方控件库,还可增强视觉效果。结合.NET新功能,WinForms 应用不仅能延续既有投资,还能焕发新生。 示例代码展示了如何在.NET Core中创建包含按钮和标签的基本窗口,实现简单的用户交互。
66 0
|
4月前
|
JSON 中间件 数据处理
实践出真知:通过项目学习Python Web框架的路由与中间件设计
【7月更文挑战第19天】探索Python Web开发,掌握Flask或Django的关键在于理解路由和中间件。路由连接URL与功能,如Flask中@app.route()定义请求响应路径。中间件在请求处理前后执行,提供扩展功能,如日志、认证。通过实践项目,不仅学习理论,还能提升构建高效Web应用的能力。示例代码展示路由定义及模拟中间件行为,强调动手实践的重要性。
56 1
|
5月前
|
存储 搜索推荐 Java
微服务SpringCloud ES分布式全文搜索引擎简介 下载安装及简单操作入门
微服务SpringCloud ES分布式全文搜索引擎简介 下载安装及简单操作入门
77 2
|
1月前
|
NoSQL Java Redis
太惨痛: Redis 分布式锁 5个大坑,又大又深, 如何才能 避开 ?
Redis分布式锁在高并发场景下是重要的技术手段,但其实现过程中常遇到五大深坑:**原子性问题**、**连接耗尽问题**、**锁过期问题**、**锁失效问题**以及**锁分段问题**。这些问题不仅影响系统的稳定性和性能,还可能导致数据不一致。尼恩在实际项目中总结了这些坑,并提供了详细的解决方案,包括使用Lua脚本保证原子性、设置合理的锁过期时间和使用看门狗机制、以及通过锁分段提升性能。这些经验和技巧对面试和实际开发都有很大帮助,值得深入学习和实践。
太惨痛: Redis 分布式锁 5个大坑,又大又深, 如何才能 避开 ?
|
3月前
|
NoSQL Redis
基于Redis的高可用分布式锁——RedLock
这篇文章介绍了基于Redis的高可用分布式锁RedLock的概念、工作流程、获取和释放锁的方法,以及RedLock相比单机锁在高可用性上的优势,同时指出了其在某些特殊场景下的不足,并提到了ZooKeeper作为另一种实现分布式锁的方案。
110 2
基于Redis的高可用分布式锁——RedLock