.
.
参考老刘博客
https://www.cnblogs.com/liuqingzheng/p/16002298.html
.
.
产生背景
# 1.1 大规模数据如何检索
如:当系统数据量上了10亿、100亿条的时候,我们在做系统架构的时候通常会从以下角度去考虑问题:
1)用什么数据库好?(mysql、oracle、mongodb、hbase…)
2)如何解决单点故障;(lvs、F5、A10、Zookeeper、MQ)
3)如何保证数据安全性;(热备、冷备、异地多活)
4)如何解决检索难题;(数据库代理中间件:mysql-proxy、Cobar、MaxScale等;)
5)如何解决统计分析问题;(离线、近实时)
# 1.2 传统数据库的应对解决方案
对于关系型数据,我们通常采用以下或类似架构去解决查询瓶颈和写入瓶颈:
解决要点:
1)通过主从备份解决数据安全性问题;
2)通过数据库代理中间件心跳监测,解决单点故障问题;
3)通过代理中间件将查询语句分发到各个slave节点进行查询,并汇总结果
# 1.3 非关系型数据库解决方案
对于Nosql数据库,以mongodb为例,其它原理类似:
解决要点:
1)通过副本备份保证数据安全性;
2)通过节点竞选机制解决单点问题;
3)先从配置库检索分片信息,然后将请求分发到各个节点,最后由路由节点合并汇总结果
----------------------------
# 一句话,用这些方法,做很麻烦,而且检索的速度也不快
# 所以有了Elasticsearch
----------------------------
.
.
.
.
Elasticsearch介绍 ES
# 使用场景:
要存储的数据量很大,又要求检索的速度很快,就用它!!
-----------------------------------------
# 专注于大数据量的存储和检索(主要是大数据量的检索)
# Elasticsearch 分布式全文检索引擎
Elasticsearch 是一个开源的高扩展的,
基于Lucene的分布式的,全文搜索和分析引擎。
它可以近乎实时的存储、检索数据;
本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据。
-----------------------------------------
Elasticsearch使用Java开发,在Apache许可条款下开放源码发布,
设计用于云计算中,能够达到实时搜索,
稳定,可靠,快速,安装使用方便
使用Lucene作为其核心来实现所有索引和搜索的功能,
但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,
使得全文检索变得简单
# 设计用途:
用于分布式全文检索,通过HTTP使用JSON进行数据索引,速度快
标签:检索,数据库,介绍,全文检索,Elasticsearch,数据量,解决
From: https://www.cnblogs.com/tengyifan888/p/17379287.html