elasticsearch是分布式的搜索系统(全文搜索),
NoSQL非关系型数据库,主要用在大数据量,高并发情景下(非事务)
优点:
1.高并发。实测es单机分配10g内存单实例,写入能力1200qps,60g内存、12核CPU起3个实例预计可达到6000qps。
2.同机房单条数据写入平均3ms(比mysql慢,mg不清楚)
3.容错能力比mg强。比如1主多从,主片挂了从片会自动顶上
4.满足大数据下实时读写需求,无需分库(不存在库的概念)。
5.易扩展。实例间做下配置即可扩展并发性和容积,自动分配的写入机制,无需操心传统db中多主同步的诟病
6.支持较复杂的条件查询,group by、排序都不是问题
7.具有一定的关系性,但不用担心大字段的问题
缺点:
1.不支持事务
2.读写有一定延时(不知道其他大牛是否遇到这个问题),我是写入一分钟后再做读操作
3.无权限管理
也是最近开始用,说下我的应用场景,用来存储线上日志做实时分析(类似淘宝鹰眼,但是完全实时),存储结构化的日志及原文,也调研过很多db,mg也有考虑过,相比之下实现和运维成本mg都要高不少
我的场景如下:
1.高并发,设计日志并发80wqps(实际存储会用一些策略缩小规模,约万级别)
2.单条数据体积大,允许最大20k
3.要求支持条件查询
4.实时性高,目前从日志存储开始到出分析结果3分钟,包含前面提到的读写延时(求解决方案)