分布式流数据收集方案解析
1. 大规模数据收集面临的问题
在大规模数据收集场景中,虽然消息传递理论上可以以可扩展的方式执行,但当应用需要接收大量发布者的消息时,容纳订阅者的代理可能会导致网络进程过载。这是因为每个发布者异步运行,节点在短时间内需要接收的消息数量最多可达发布者的数量。此外,由于结构化覆盖网络上数据转发的路径集中,少数发布者需要转发的消息数量比其他发布者更多,导致网络进程负载容易超过节点的容量。
2. 提出的TBPS方案
2.1 方法论原理
为解决大规模数据收集问题,提出了TBPS(Topic-Based Publish-Subscribe)方案,其核心思想是通过“消息合并”来减少大量消息的转发开销。
一般来说,在传输相同大小的数据时,将多个数据项作为一个大的数据块发送比分成多个小的数据段发送性能更好。因此,当有大量小消息需要传递时,将它们合并成一个大消息可以减少消息传输时间。
下面是初步实验的设置参数:
| 参数 | 值 |
| ---- | ---- |
| 虚拟CPU | 1 core/2.1 GHz |
| 虚拟机数量 | 1/Host |
| 内存 | 2 Gbyte |
| 网络 | 1000 BASE - T |
| 操作系统 | Ubuntu 12.04 |
| 协议 | TCP/IP |
| 虚拟机管理程序 | KVM 3.5 |
实验结果表明,当消息大小较小时,网络速度受限;随着消息大小的增加,网络速度上升;当消息大小大于16 kbyte时,网络速度达到饱和。速度受限的原因
超级会员免费看
订阅专栏 解锁全文
169万+

被折叠的 条评论
为什么被折叠?



