神奇的守护神

有一个程序, 缺少实时更新数据的功能, 但是在程序启动的时候会自动更新数据, 于是每次需要更新数据的时候就要手动重启这个程序。

然而, 这个程序运行在各大机房的计算机/虚拟机中, 每次都要一一重启就显得十分麻烦。

为了能够统一重启这个程序, 我设计了一个神奇的守护神, 它可以:

1. 守护一个程序运行

2. 连接到一个集中控制器, 接收管理人员发送的命令, 执行一定操作(不止包括重启程序)

神奇的守护神分为Server, Slave, Admin三个部分。

Server:

接受Admin和Slave的登录请求, 根据ConnectKey区分。

将Slave发送的Message转发给相应Admin, 如果是广播并且恰好此时没有Admin在线则保存这个Message到一个队列里面, 待有Admin上线时一并发送给该Admin

将Admin发送的Command转发给相应Slave, 无Slave在线则丢弃

Slave:

守护一个应用程序的运行。

使用SlaveConnectKey登录Server, 然后向Server发送setname命令, 以设置自己的名字

每隔30秒发送heartbeat

收到Server发来的Command后执行, 发送结果Message给Server

Admin:

使用AdminConnectKey登录Server

每隔30秒发送heartbeat

接收从控制台得到的命令, 处理后发给Server

显示Server发来的Message

收到Server发来的Command后执行

发表评论

注意 - 你可以用以下 HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

:wink: :twisted: :roll: :oops: :mrgreen: :lol: :idea: :evil: :cry: :arrow: :?: :-| :-x :-o :-P :-D :-? :) :( :!: 8-O 8)

本文链接:https://twd2.me/archives/6194QrCode