ZeroIce 的IcePatch2实现 客户端远程更新

简介: ZeroIce 的IcePatch2的远程更新样例

ZeroIce 的IcePatch2概念上相当简单,下面以Ice-3.6.3为例讲解如何实现远程更新:

在windows(Linux类似)下安装Ice-3.6.3后,在其\bin\有三款ZeroIce涉及更新功能的三个小工具,是动态版本的,如果需要静态版本请自行编译。

(1)icepatch2calc.exe该工具负责压缩指定目录下文件,并为每个文件生成一个包含校验和的索引。

(2)icepatch2server.exe是一个服务端,负责包含要分发给IcePatch2客户端的文件和子目录的文件系统目录(数据目录)。

(3)icepatch2client.exe是一个客户端,负责在客户端指定目录下重新创建数据目录及其内容或修补自上次运行以来更改的任何文件。


假如我们目前有一些需要更新到客户端的信息存放在D:\SYE_MCS_PRO\pcs_project\sye_mcs\mgr\serverData目录下,其结构为:

conf

      install.txt     test.ini

lib 

    read.txt

首先需要通过icepatch2calc工具将serverData目录下的文件进行压缩和生成校对信息,启动cmd窗口(管理员),运行命令:

cd  D:\SYE_MCS_PRO\pcs_project\sye_mcs\mgr\

D:\ZeroC\Ice-3.6.3\bin\icepatch2calc.exe .\\serverData

则serverData目录下发生变更:

conf

      install.txt    install.txt.bz2   test.ini test.ini.bz2

lib 

    read.txt    read.txt.bz2

IcePatch2.sum

接下来就是启动服务等待客户端的链接和更新数据,服务端需要配置其运行需要一些简要参数的配置文件iceSrv.patch如下,

#实例名

IcePatch2.InstanceName=MCSSVCGrid
#指定目录

IcePatch2.Directory=D:\SYE_MCS_PRO\pcs_project\sye_mcs\mgr\serverData
#服务地址与端口

IcePatch2.Endpoints=tcp -h 127.0.0.1 -p 9988

在刚启动cmd窗口运行命令启动服务:

D:\ZeroC\Ice-3.6.3\bin\icepatch2server.exe --Ice.Config=iceSrv.patch

最后我们用客户端去加载和更新配置,启动客户端样例前需要先配置客户端所需的运行参数简要配置文件iceClient.patch.

假如我的客户端配置文件iceClient.patch放置在本机D:\SYE_MCS_PRO\pcs_project\sye_mcs\mgr\icePathTestClient下,需要加载更新的资料指定为D:\SYE_MCS_PRO\pcs_project\sye_mcs\mgr\iceParhTestLoad下,则iceClient.patch配置为:

#服务端链接信息(实例、地址、端口)

IcePatch2Client.Proxy=MCSSVCGrid/server:tcp -h 127.0.0.1 -p 9988
#配置加载或更新的指定目录

IcePatch2Client.Directory=D:\SYE_MCS_PRO\pcs_project\sye_mcs\mgr\iceParhTestLoad

再启动一个cmd命令窗口,

cd D:\SYE_MCS_PRO\pcs_project\sye_mcs\mgr\icePathTestClient

D:\ZeroC\Ice-3.6.3\bin\icepatch2client.exe --Ice.Config=iceClient.patch

客户端会查询IcePatch2.sum文件进行校验,如果是第一次会进行创建,创建时会询问,进行确认即可,若存在该文件会将其与服务端的IcePatch2.sum进行比较,进行更新。

​

最终在iceParhTestLoad下

conf

      install.txt   test.ini

lib 

    read.txt

IcePatch2.sum


一个IcePatch远程更新样例如此简单部署就可实现,但实际中使用时需要注意几点:

1)目录文件和空文件不会生成压缩文件

2)只会在顶层目录(指定目录)下生成校验和文件

3)服务端需要给各个客户端分发的文件资料有更新,需要icepatch2calc重新校验并重启服务icepatch2server

4)可以在自身的客户端集成IcePatch2 Client实用库的API(IcePatch2/ClientUtil.h),实现客户端启动校对版本,自动更新升级等更复杂的功能要求。

目录
相关文章
|
1天前
|
人工智能 安全 API
阿里云百炼大模型 API 完整指南:免费 Token 领取、API Key 生成、环境配置与代码调用实战
对于零基础的AI开发者、技术爱好者和小型开发团队来说,低成本、低门槛调用主流大模型接口,是开启AI项目原型开发的必经之路。百炼大模型服务平台汇集了百余款主流大模型,面向新用户提供大规模免费推理额度,不需要预先充值,即可完成文本生成、逻辑推理、代码编写、多模态解析等各类开发验证工作。很多新手在初次接触平台时,常常遇到不清楚免费额度规则、不知道如何生成API‑Key、环境配置错误、调用接口持续报错等一系列问题。
167 0
|
1月前
|
人工智能 安全 API
零门槛接入大模型、免费千万Tokens上手:阿里云百炼API‑Key申领、权限管控、多系统配置与示例代码教程
大模型服务平台百炼汇集多款主流大模型,覆盖文本对话、多模态识图、文生视频、Agent智能体、知识库RAG等丰富能力。新开通服务的账号会自动发放超7000万免费Tokens额度,每款标准模型分配100万免费Token,非常适合开发者做原型验证、学习调试业务逻辑。想要通过程序、第三方AI工具调用平台各类大模型能力,API‑Key是核心身份凭证,每一次接口请求都依靠该密钥完成身份鉴权,确定调用账号、可用模型以及计费抵扣规则。
435 0
|
安全 Linux 网络安全
组网神器WireGuard安装与配置教程(超详细)
组网神器WireGuard安装与配置教程(超详细)
73945 2
|
7天前
|
缓存 JSON 自然语言处理
ICP 备案域名查询接口接入指南|输入域名实时核验备案状态,获取主办单位与备案号
本文介绍 ICP 备案域名查询接口的接入方法:输入一个域名,通过 GET 请求与 Authorization: APPCODE 鉴权,返回该域名的备案信息,包括备案号、主办企业、网站名、备案地址、更新时间与备案类型。正文梳理了从开通服务、获取 AppCode、发起调用到解析结果的完整流程,给出 Python/Java/PHP/Node.js 多语言调用示例、返回 JSON 结构与字段含义、在线调试方法,并覆盖调用限制与规范、能力边界与免责、错误码排查及工程化接入建议(参数前置校验、结果缓存、频控退避、熔断降级),适合作为风控、尽调、合规监测与备案数据支撑场景的工程参考。
197 0
ICP 备案域名查询接口接入指南|输入域名实时核验备案状态,获取主办单位与备案号
阿里云ICP备案服务码是什么?如何生成备案服务码?
阿里云ICP备案服务码是用于备案的验证码凭证,可替代云产品直接完成备案。免费版随符合条件的云服务器等自动生成;付费版100元/个,需绑定有效云产品后使用,有效期一年。阿里云备案官方系统:https://t.aliyun.com/U/YETxGF
|
9天前
|
缓存 运维 网络协议
从一次认证请求看网络准入系统的失效安全设计
本文剖析网络准入认证链路的六跳失效点(终端→交换机→Radius→策略引擎→VARP设备→管理中心→人工响应),揭示每跳故障现象与应答机制,强调“失效安全”设计哲学:组件故障时优先保连通、再恢复管控。以迪康系统为例,融合熔断、降级、双机、逃生、可观测等工程实践,拒绝纸上高可用。(239字)
66 0
|
3月前
|
IDE JavaScript 前端开发
【全网最详细】VS2022下载、安装、使用一篇搞定(附社区版安装包)
Visual Studio 2022(VS2022)是微软推出的首个原生64位IDE,突破4GB内存限制,性能更强。支持C/C++、C#、Python、JavaScript等多语言,提供免费社区版(功能完整)、专业版和企业版。推荐初学者与个人开发者使用社区版,安装灵活、学习成本低,是高效开发的理想选择。(239字)