我将在一个每天超过10亿次请求的非常高的交通环境中使用kafka。每个请求都会连接到kafka集群发送消息。因此,每秒钟都会有这么多的连接在不断地进行。这可能导致诸如套接字超时之类的问题。生产者正在建立所有的非持久连接。因此,在这种情况下,可能会出现套接字超时或端口耗尽问题。
大多数生态系统都在php中,所以我必须使用php库来实现kafka。现在如何有效地利用卡夫卡制作者来缓解这种连接争拗呢?
我想到了一个守护进程,它可以输入消息,然后将这些消息批量发送到kafka集群。另外,可以有有限数量的连接。另一方面,这种服务的响应延迟会妨碍应用程序。此外,我还必须使用一些中间存储来保存消息。
现在我知道有很多非常大的应用程序/站点使用kafka直接流消息。你们中有人能指导我如何解决这些问题吗?在这种情况下,持久连接有帮助吗?在这么大的容量环境中使用kafka-producer的php库本身是不是个坏主意?
发布于 2015-05-11 20:23:30
我们还使用了kafka java库,就像@apatel说的那样,我认为在您的情况下,您可以尝试使用php应用程序为服务器提供一些sidecar,sidecar将在开始时创建Producer,Kafka java驱动程序将管理多个连接。以下是关于Netflix的sidecar应用程序网飞Prana的一些有趣的文章
发布于 2015-05-08 15:40:46
我们使用kafka java库,并在服务器启动时连接到kafka。目前,我们每天向卡夫卡发送大约5亿条信息,而且从来没有遇到过任何问题。
当你创建生产者的时候,它基本上创建了多个连接..。每个分区一个。因此,只要使用分区,就可以直接将每条消息发送到kafka,而不必将它们缓存在您的一侧并批量发送。
https://stackoverflow.com/questions/30098076
复制相似问题