一 数据同步方案
1 ES-JDBC 不能实现删除同步操作.MYSQL如果删除,ES不会删除
2 logstash-input-jdbc 能实现insert update,但是仍然不能实现删除操作
3 canal+Bulk API 能同步实现mysql内部的所有操作,消费binlog(推荐使用)
二 注意点
1 设定好分片数量和index结构
2 避免关联查询
三 定义
1 全文检索
将非结构化数据中的一部分信息提取出来,重新组织,使其变得有一定结构,然后对此有一定结构的数据进行搜索,从而达到搜索相对较快的目的。这部分从非结构化数据中提取出的然后重新组织的信息,我们称之索引。
先建立索引,再对索引进行搜索的过程就叫全文检索(Full-text Search)。
四 所要思考的问题
1 是否需要实时同步mysql数据到ES里
2 ES是否支持业务的所有查询需求,如果不能,该怎么更改
五 为什么那么多工具适配Elasticsearch?主要原因如下:
1 Elasticsearch是开源的
2 Elasticsearch提供了JAVA API接口。
3 Elasticsearch提供了RESTful API接口
4 REST请求和应答是典型的JSON(JavaScript对象 符号)格式。通常情况下,一个REST请求包含一个JSON文件,其回复都 也是一个JSON文件。
六 汇总问题
1 ES集群可以实现在线扩展,而且不用配置VIP
2 ES 三种角色扮演
Master
node.master: true 节点可以作为主节点
DataNode
node.data: true 默认是数据节点。
Coordinate node 协调节点 如果仅担任协调节点,将上两个配置设为false。
备注
1 一个节点可以充当一个或多个角色,默认三个角色都有
2 协调节点:一个节点只作为接收请求、转发请求到其他节点、汇总各个节点返回数据等功能的节点。就叫协调节点
3 ES 分片数是不能改变的,所以要预先进行设置
4 ElasticSearch推荐的最大JVM堆空间是30~32G, 所以把你的分片最大容量限制为30GB,然后进行节点的扩展
5 关于副本集设置
1 为保证高可用,副本数设置为2即可。要求集群至少要有3个节点,来分开存放主分片、副本。
2 新增副本时主节点会自动协调,然后拷贝数据到新增的副本节点
3 副本的根本是分片,分片的根本是索引