我想制作“陷阱代理”库。陷阱代理程序库跟踪客户端系统的各种参数。如果客户端系统的参数更改为超过阈值,则客户端的陷阱代理库将有关该参数的信息通知服务器。例如,如果CPU使用率超过阈值,它将通知服务器CPU使用率已超过。我必须在客户端测量50-100个参数(例如内存使用率,网络使用率等)。
现在,我对设计有了基本的了解,但是我对整个库的设计都感到困惑。

我想到了以下解决方案:


我可以为每个参数创建一个线程(即每个线程将监视单个参数)。
我可以为每个参数创建一个进程(即每个进程将监视单个参数)。
我可以将各种参数分为不同的组,例如数据使用情况参数将属于网络组,CPU内存使用情况参数将属于系统组,然后为每个组创建线程。


现在第一解决方案比第二解决方案看起来更好。如果我采用第一种解决方案,则当我想将库升级为100到1000个参数时,它可能会失败。因为我当时必须创建1000个线程,所以这不是一个好的设计(我认为是这样;如果我做错了,请更正我。)

第三个解决方案是好的,但是响应时间会很高,因为许多参数将在单个线程中进行监视。

有没有更好的办法?

最佳答案

您可以遵循以下方法:

1.您可以有两个线程,一个线程专用于测量紧急参数,第二个线程监视非紧急参数。
因此紧急参数的响应时间将更少。

2.您可以定义3个线程。第一个线程将监视高优先级(紧急参数)。第二个线程将监视中优先级参数。最后一个线程将监视最低优先级参数。
因此,与第一个解决方案相比,整体响应时间将得到改善。

3.如果不关心响应时间,则可以在单个线程中监视所有参数。但是,在这种情况下,如果升级库以监视100到1000个参数,响应时间将变得最差。

因此在第一种情况下,非紧急参数的响应时间会更长,而在第三种情况下,肯定会有非常高的响应时间。
因此,解决方案2更好。

07-24 15:56