还在摸索中... 目前在试着当 backend 的 logging service 用, 公司没人懂这个, 希 望这项目不要夭折了. 先分享点不成熟经验吧. 主要感觉是,ES 可以配置可使用的功能太多了 querying / indexing 功能上讲,我感觉 ES >> mongo > dynamoDB (我没用过 Cassandra, 就用 dynamoDB 来比较了) ES 内置那些 field 内的全文检索太给力,还可以配置不同的文本 analyzer,甚至有 中文的, 用来做 searching engine 都可以了. 反应速度上讲,据说是 ES < mongo ? dynamoDB 看了一堆 online posts,是不支持把 ES 当 primary DB 用的, 也就是说用 mongo/dynamoDB/Cassandra 存商业逻辑的 data,ES 存那些需要全文检索 的 (文本啊, log啊, analysis data 啊), ES 自己的定位也是 near-real-time searching (就是存入到能 indexing,有个 delay). ES 公司还有 logstash (log collecting agent), Kibana GUI, Kibana 用着还不错, logstash 是 ES公司后来买的,用着不是很爽. logstash 是默认跑在 JRuby 上的,如果公司 backend 端的所有 server 都跑一个 JRuby over JVM 来 collecting log,实在有点重,特别是考虑到有些小 server 就是 一个 AWS micro instance. 我考虑 deploy Go 版本的 logstash forwarder. 但是 logstash 这货做messaging queuing 不太给力,protocol 太简单,感觉还是得上 Kafka 这种专门做 logging 的 message queue. 顺便问下,Kafka 的 client 算轻量级吗, 我看什么语言都支持呀: https://cwiki.apache.org/confluence/display/KAFKA/Clients ...