还在摸索中... 目前在试着当 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
是不是跑在 client (web browser, mobile) 和 server 端都不太费资源?
Kafka 的 load balancing cluster 一般是怎么配的. 求经验分享~~
http://gengwg.blogspot.com/
Comments
Post a Comment
https://gengwg.blogspot.com/