Php 快速将数据从websocket传送/接收到elasticsearch,以避免缓冲区过载
我正在从事的项目以难以置信的速度从单个WebSocket读取数据。我遇到的问题是websocket提供程序要求您尽快处理数据,以避免数据端的临时缓冲区溢出 我遇到的问题是,我使用PHP尝试在我们从websocket收到的每条消息上将文档索引到elasticsearch中,但速度不够快,最终导致套接字关闭,因为缓冲区/队列已满 我希望能寻求一些帮助,在不丢失套接字中的任何数据的情况下,找到最好的解决方案 我的理论是:Php 快速将数据从websocket传送/接收到elasticsearch,以避免缓冲区过载,php,
elasticsearch,websocket,logstash,data-ingestion,Php,
elasticsearch,Websocket,Logstash,Data Ingestion,我正在从事的项目以难以置信的速度从单个WebSocket读取数据。我遇到的问题是websocket提供程序要求您尽快处理数据,以避免数据端的临时缓冲区溢出 我遇到的问题是,我使用PHP尝试在我们从websocket收到的每条消息上将文档索引到elasticsearch中,但速度不够快,最终导致套接字关闭,因为缓冲区/队列已满 我希望能寻求一些帮助,在不丢失套接字中的任何数据的情况下,找到最好的解决方案 我的理论是: 连接到sock并保持连接 接收到的每条消息都会切换到一个异步进程或日志存储,该进
谢谢您每秒收到多少封邮件?您是如何在elasticsearch中编写、使用官方库还是构建自己的请求?elasticsearch是否在同一台机器上?磁盘是基于HDD还是基于SSD?您需要提供更多信息,但是如果您的elasticsearch能够跟上每秒事件的数量,那么最好使用类似Kafka的消息队列。写进卡夫卡,而不是使用logstash或其他东西来读取卡夫卡并写进elasticsearch。同时尝试使用批量请求,我知道在流量较低的情况下,它可能比直接发送要慢,但这是一种调整,这样你就可以发送尽可能多的集群能够处理的数据,我可以问一下你想以什么速度进食吗?我有一个每秒约120K事件的集群,如果它能够更高,请让我知道!