为网络设备配置数百万个配置对象

时间:2012-10-23 20:06:19

标签: configuration-management apache-zookeeper

我有一种独特的配置管理问题。我不 我认为动物园是为解决它而建的,但我可能错了。

系统将配置到多个设备 在网络中。配置本身由数千万个组成 配置对象。

如果尚未配置设备,则需要读取当前设备 整个配置的版本(数以千万计的对象)。

配置设备后,需要接收版本 更改配置。变化只发生在 数百/秒,或数千/秒。

使用zookeeper的基于文档的模型,以及1 MB的响应限制, 这似乎不太合适。我错了吗?

1 个答案:

答案 0 :(得分:2)

ZooKeeper仍然可能不适合您的应用程序,但每次操作的响应限制为1 MB。因此,如果所有配置对象的大小都不到1 MB,则读/写时不会有问题。

对于这种情况,需要记住以下几点:所有数据都存储在内存中。它通过记录到磁盘并使用复制可靠而变得持久,但如果内存不足则完成。还有每个znode内存开销(大约100个字节)。如果您有10,000,000个对象,并且每个对象只存储100个字节,则您的内存占用量大约为2G。假设您有一个配置相对较好的服务器,这不应该是一个太大的问题。另请注意,从崩溃中恢复需要更长时间,因为您必须在启动期间读入2G数据的顺序。

您在客户端也遇到了相关问题:如果客户端确实要读取所有配置对象,他们会通过网络提取大量数据!假设每个对象低于1 MB,您将不会遇到任何限制,但这需要一点时间。

相关问题