问题描述
我正在从事的项目以极快的速度从单个 WebSocket 读取数据。我遇到的问题是 websocket 提供程序要求您尽快处理数据,以避免在它们结束时溢出临时缓冲区。
我遇到的问题是我使用 PHP 尝试将文档索引到 elasticsearch 中我们从 websocket 收到的每条消息中,这速度不够快,由于缓冲区/队列已满,导致我们的套接字关闭结束。
我希望寻求一些帮助,以便在不丢失套接字中的任何数据的情况下建立最佳解决方案。
我的理论是:
- 连接到袜子并保持连接
- 收到的每条消息都被移交给异步进程或日志存储,该进程或日志存储可以处理 Elasticsearch 中的摄取,而无需 websocket 在发送/处理下一条消息之前等待。
使用 elasticsearch PHP 索引每条消息根本不会切断它,10 分钟后套接字关闭。
服务器资源很好,16 核,128gb 内存和 10gbps 连接。如果我从 PHP 代码中删除 elasticsearch 索引函数,套接字保持连接良好,服务器资源使用率约为 10%。
有更多经验的人能否提出更好的解决方案,或者可能让 logstash 在不同的线程上处理这个问题。
谢谢
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)