从性能角度来看,在Docker容器中运行Kafka是一个不错的选择吗?有没有人应该注意的事情,专门调整等等?
答案 0 :(得分:5)
关于这个话题有一个很好的research paper from IBM - 现在有点过时了,但我确信基本陈述仍然适用,并且只是在改进之后。要点是,Docker引入的开销在cpu和内存方面非常小,但对于IO繁重的应用程序,你需要更加小心。根据工作量,我将Kafka直接放在IO重组中,所以这可能不是一件容易的事。 Kafka从快速磁盘访问中获益良多,因此如果您在某种分布式平台上运行容器,并在SAN或NFS共享上附加存储,或者我认为,您会发现存在差异。但是,如果您只选择容器来简化部署并在一台物理机器上运行它们,那么我认为差异可以忽略不计。
但与所有性能问题一样,一般来说很难说这一点,您必须测试您的具体用例和环境才能确定。
答案 1 :(得分:2)
我认为性能很大程度上取决于您使用的机器类型。 Linkedin和Kafka的其他大型用户经常建议使用旋转磁盘而不是SSD,因为在Kafka协议中使用IBM Zerocopy时主要是线性读取和写入。在托管许多容器的计算机上,您将失去旋转磁盘给Kafka带来的所有优势。