【技术实现步骤摘要】
一种批量发布服务的实现方法
本专利技术属于计算机
,特别涉及一种快速发布或更新服务的实现方法。
技术介绍
随着计算机软件技术的不断发展,尤其微服务的概念被提出后,服务器上需要发布的服务数量越来越多,对于发布和更新服务的要求也越来越高。目前发布服务的主要方式有IIS寄宿和应用程序寄宿(包含windows服务)。1.IIS寄宿:一次只能发布一个服务,配置起来麻烦,更新时需要分别找到对应的文件覆盖。服务越多,发布和更新的难度就越大。2.应用程序寄宿:每一个服务都要启动一个应用程序,服务多了也难以管理。无论使用现有的哪种方式,服务数量变多都会面临管理维护难度增大、维护成本上升的问题。
技术实现思路
本专利技术的目的在于克服现有技术的缺点与不足,提供一种批量发布服务的实现方法,以C#技术实现WCF服务的快速发布或更新方案,使得个别服务的更新不会影响其他服务的正常运行;服务进程启动后,只需要将需要发布或更新的子服务压缩包放入指定文件夹中,服务进程自动解压识别,完成指定操作。本专利技术的目的通过以下的技术方案实现:一种批量发布服务的实现方法,方法实现的应用程序进程包含了服务进程和子服务,服务进程和子服务各自属于不同的应用程序域,服务进程通过跨域通信来管理子服务;服务进程包括应用程序域管理模块,跨域通信模块,文件夹监听模块,文件校验模块和文件操作模块;应用程序域管理模块:实现子服务的应用程序域的创建和卸载;跨域通信模块:实现服务进程与子服务之间的通信,用于启动和停止子服务;文件夹监听模块:实现固定文件夹的实时监听,过滤文件类型;文件校验模块:实现子服务文件的校验,包括错 ...
【技术保护点】
1.一种批量发布服务的实现方法,其特征在于,方法实现的应用程序进程包含了服务进程和子服务,服务进程和子服务各自属于不同的应用程序域,服务进程通过跨域通信来管理子服务;服务进程包括应用程序域管理模块,跨域通信模块,文件夹监听模块,文件校验模块和文件操作模块;应用程序域管理模块:实现子服务的应用程序域的创建和卸载;跨域通信模块:实现服务进程与子服务之间的通信,用于启动和停止子服务;文件夹监听模块:实现固定文件夹的实时监听,过滤文件类型;文件校验模块:实现子服务文件的校验,包括错误校验,操作校验;文件操作模块:实现文件夹解压,移动和读取;子服务实现与服务进程协定的交互接口:启动和停止服务的接口;子服务还需编译Dll类库文件用于被服务进程动态加载。
【技术特征摘要】
1.一种批量发布服务的实现方法,其特征在于,方法实现的应用程序进程包含了服务进程和子服务,服务进程和子服务各自属于不同的应用程序域,服务进程通过跨域通信来管理子服务;服务进程包括应用程序域管理模块,跨域通信模块,文件夹监听模块,文件校验模块和文件操作模块;应用程序域管理模块:实现子服务的应用程序域的创建和卸载;跨域通信模块:实现服务进程与子服务之间的通信,用于启动和停止子服务;文件夹监听模块:实现固定文件夹的实时监听,过滤文件类型;文件校验模块:实现子服务文件的校验,包括错误校验,操作校验;文件操作模块:实现文件夹解压,移动和读取;子服务实现与服务进程协定的交互接口:启动和停止服务的接口;子服务还需编译Dll类库文件用于被服务进程动态加载。2.根据权利要求1所述的批量发布服务的实现方法,其特征在于,子服务的文件需要压缩后才能被服务进程识别,压缩文件中需包含可被校验识别的配置文件,用以标识子服务的唯一信息。3.根据权利要求1所述的批量发布服务的实现方法,其特征在于,批量发布服务过程包括启动时和启动后2个部分;启动时:读取配置文件,检查是否有需要启动的子服务,如果有就启动子服务;根据配置文件对指定文件夹监听;启动后,当指定文件夹中有压缩文件时,自动解压压缩文件,并校验解压出来的文件;如果校验成功,根据获取的服务信息进行发布或更新操作;校验不成功则删除所有文件。4.根据权利要求1所述的批量发布服务的实现方法,其特征在于,发布子服务时,首先,需要在本地目录创建服务的文件夹,并拷贝子服务文件;然后,根据服务信息创建应用程序域;最后,启动子服务;更新子服务时,首先,需要停止运行中的子服务,卸载应用程序域;然后,将需要更新的子服务文件覆盖到原来的文件夹中;最后,启动子服务。5.根据权利要求1所述的批量发布服务的实现方法,其特征在于,整个方法实现的过程包括:S1、加载固定目录下的文件夹,读取路径,名称和服务地址配置;S2、创建应用程序域;创建应用程序域的代理对象;S3、代理对象加载服务程序集,导出接口对象并封装接口调用方法;S4、实现文件夹监听功能,实时解压压缩文件;S5、处理解压出来的文件夹。6.根据权利要求5所述的批量发布服务的实现方法,其特征在于,对于步骤S1,在Services文件夹下有多个文件夹,文件夹的名称为Servicename,文件夹下为各个服务的DLL文件;程序启动时获取Services目录下所有的文件夹路径和文件夹名称,并根据每个文件夹的名称读取地址的配置文件。7.根据权利要求5所述的批量发布服务的实现方法,其特征在于,对于步骤S2,遍历获取的结果创建服务的应用程序域,使用CreateDomain(name)新建一个应用程序域AppDomain,并赋予名称“ServiceName",此时新创建的AppDomain的Loader堆是空的,此时线程还处于默认的A...
【专利技术属性】
技术研发人员:曾令清,
申请(专利权)人:广州慧睿思通信息科技有限公司,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。