.NET应用程序管理服务AMS设计

目标功能

AMS的主要功能是可以根据需要在服务上创建多个进程,而每个进程里都可以挂载多个应用服务。其实进程挂载应用服务在之前的Glue4Net里已经实现,由于Glue4Net是针对单进程设计的会导致应用服务之间的隔离级别不够;因此在AMS的设计上有所改进,采用进程的方式来隔离应用;不过在实际应用中是可以根据业务的需要来选择:一个进程一个应用或一个进程多个应用的方式。除了在部署运行提供统一管理外,还提供应用程序向AMS注册具体的业务统计信息,方便AMS统一监控进程的业务信息情况.以下列出AMS的基础功能:

  1. 创建进程,可对已有的进程进行启动,停止和重启等操作。
  2. 根据需要把应用挂载到不同的进程中,可对已有的应用启动,停止和重启等操作。
  3. 查看进程和应用的情况,包括进程使用的内存和CPU信息。
  4. 允许应用自定义信息属性提交给AMS,方便AMS监控管理
  5. 提供AMS向应用发送符指令,允许管理人员向应用发送具体的操作指令。
  6. 对应用进行复制加载,允许应用在运行的情况更新相应的文件。
  7. 自动监控应用的文件更新情况,自动更新应用
  8. 应用日志跟踪
  9. 提供CLI和GUI管理功能,方便相关员对AMS进行维护管理

设计

AMS主要分三大模块,分另是应用管理服务,应用进程和管理端。

AMS是主要核心部分,它的主要工作是对进程和应用的管理,负责进程和应用启动监控工作。AMS会以windows service的方式存在,而它除了对进程维护和监控外不会加添加任何业务功能,简单的工作从而保证AMS可以更可靠地运行。

AMS&AMS-Process交互

AMS根据数据信息启动应用进程,并提供相应的应用名称。应用进程启动后会向AMS发送一条注册信息,告诉AMS当前进程应用名称。AMS确认进程注册后会把该进程需要启动的应用发送过去,之后进程会定时把应用的状态信息回发到AMS上。具体交互流程如下:

CLI

CLI全称是(Command Line Interface),主要用于方便对AMS进行方便的管理。初期规划的命令如下:

  • create process <-p processName> <-r remark>
  • create app <-p processName> <-a appName> <-d appPath> [-w true|false] [-f *.cs|*.config] [-c true|false]
  • process <-p test> <-s start|stop|restart|delete>
  • app <-p processName> <-a appName> <-s start|stop|restart|delete>
  • info <-p processName> <-a appName>
  • modify <-p processName> <-a appName> <-n property> <-v value>
  • cmd <-p processName> <-a appName> <-c command>
  • log  <-p processName> [-a appName] [-a yyyyMMdd]
  • ls [-p processName]
  • cls
  • stop

通讯方式

AMS几个模块之间的通讯方式使用TCP,这样可以实现不同服务器上的维护和管理,通讯应用协议则使用protobuf来统一和简化消息的定义。

 

 

未经允许不得转载:聚艺帮 » .NET应用程序管理服务AMS设计

分享到:更多 ()

牛评 抢沙发

爱生活 爱设计

齐聚智慧联系我们