零售网站建设方案搜索引擎简称seo
- 集群环境下数据往哪个节点放?
路由计算:hash(id) %主分片的数量
- 集群环境下查数据怎么查?
分配控制:访问任何一个节点都能获取数据,随机访问到的这个节点称为协调节点(访问了当前节点,不一定从当前节点取数据,可能当前节点负载比较高,他会分配其他节点来给数据)
- 集群数据写流程
- 客户端请求集群节点,取到的节点称为协调节点a
- 协调节点将数据转发到 路由计算 得到的节点b
- 节点b保存主分片数据
- 节点b向将数据发送给副本节点c
- 副本节点c保存数据后反馈节点b
- 节点b主分片反馈
- 客户端获取反馈
注意:文档变更,是主分片和副本分片执行完成,客户端才收到响应。但是有一些可选参数,可以影响上面流程。consistency 参数 one(主分片写完即可访问),all(所有分片写完才能访问),quorum(默认配置,超出半数的分片写完,就能访问)。timeout参数,当我们没有足够的副本更新,等待的超时时间,最多一分钟。
- 集群查询数据的流程
- 客户端请求集群节点,取到的节点称为协调节点
- 协调节点计算数据所在的分片,以及所有的分片位置
- 为了保证负载均衡,轮询所有分片
- 将请求转发给具体的节点
- 节点返回数据给客户端
- 集群数据的部分更新流程
先读后写(写要获取锁),之后同步副本
- 倒排索引:文本分成多份,每一份对应的id都一样
- 词条:索引中最小的存储单元
- 词典:词条的集合,b+,hashmap