我使用elasticsearch查询股票报价。我的浏览器调用了弹性簇,该簇返回<img>标签内的URL列表。然后,浏览器调用图像(相关报价的股票图表)。这些图像位于单独的Apache 2 http服务器上。这两台服务器都是相同的Centos四核2.0Ghz,16GB RAM,1Tb HD。
<img>
通过阅读以前的SO帖子,似乎可以在Elasticsearch中存储base64图像。
有没有人在elasticsearch中创建过生产图像服务器,或者将基准与静态Web服务器进行了比较?就我而言,图像为80到150 kb
我的具体问题是(1)将文档映射中的图像作为二进制和弹性回复base64图像而不是<img>标签,然后再调用Apache 会更快吗?(2)Elasticsearch作为图像服务器是否可以与静态Nginx或Apache图像服务器媲美?
Elasticsearch是一个 搜索引擎 (除其他外),擅长为您的数据提供快速搜索。它 不是内容服务器 。
我将图像存储在ES中的唯一原因是是否需要搜索类似图像。对于您的情况,您似乎愿意使用Elasticsearch作为内容服务器来检索图像,最好将其存储在内容传送网络(CDN)中,就像现在使用第二个Apache服务器一样。
但实际上,如果您有少量的股票报价文件,即没有数百万个,则可以在ES中将图像的base64存储在ES中。
最好的办法是始终尝试一下,看看集群如何处理它。也许对于您的特定用例来说完全可以。只是您将在ES上增加额外的负载,这并不是要一开始就处理的。
例如,如果您返回十个结果,您的响应将从几KB增长到至少1 MB,并且您的用户将需要等待该传输完成才能看到一些结果,而如果您将图像存储在其他位置,您至少可以非常快速地向用户显示结果,并让浏览器以异步方式处理图像检索,而无需关心它。