当前的需求:
现在有个小软件可以收集单个机器(例如笔记本之类的)的功耗信息,在一个局域网下的多个机器下部署这个软件,现在想要实现的是:可以把任意一台机器设为主节点,然后其余是从属节点,这些从属节点周期性的(比如每秒)传输数据(功耗信息)给主节点。传输的数据大小算是很小的吧,必须要传输太多的信息。
当前的软件已经有 linux 版本和 windows 版本,因为有用 QT 作为界面实现的方法,所以现在的想法是最好使用的技术或者说第三方库能够跨平台。目前我还是个网络编程新手,目前我查了一下,大概的实现方法有以下几种:
基础 socket 编程。使用基础的带有 socket 方法的库,比如 QT 自带的网络功能, boost asio , POCO 等。
RPC 架构。 RPC 的话封装程度更高一些,可能会更好使用。目前有这些产品: RMI , Hessian , protobuf-rpc-pro , THRIFT , AVRO 。
消息队列。个人猜测可以利用 MQ 中的消息通讯功能实现,但是一样也有很多产品存在,例如 RabbitMQ , Redis , ZeroMQ , ActiveMQ , Jafka/Kafka 。
现在我的疑惑就是不太清楚到底使用哪种技术来实现,选择哪种产品。就我个人而言,我还是希望选择尽量轻量级的第三方库,希望各位老手给点建议。