Uninote
Uninote
用户根目录
emoji test🧚
欢迎你
爱神的飞刀
都市风光
🧚🧚
🧚🧚2
🧚🧚3
__import__
ELK集群部署
JS面向对象函数的四种调用模式
Java入门学习路线目录索引(持续更新中)
c
个人文库
掘金
ElasticSearch + Logstash进行数据库同步
ElasticSearch两个节点的情况下,shard是如何分配的
ElasticSearch安装教程
ElasticSearch设置用户名密码访问
ElasticSearch适用场景,功能以及特点介绍
Kali Linux安装教程
Linux设置虚拟内存教学和实战
Xdebug文档(一)基本特性
docker
init
vuex的源码一些理解
使用nginx控制ElasticSearch访问权限
使用python的scrapy来编写一个爬虫
再见 Docker,是时候拥抱下一代容器工具了
前端工具集(辅助工具、开发工具、技术栈、学习网站)
剖析ElasticSearch基础分布式架构
剖析ElasticSearch核心概念,NRT,索引,分片,副本等
原型链
推荐几款Linux下比Notepad++好的编辑器软件
搭了一个 wordpress 站点
收集整理的一些前端资源
浏览 GitHub 太卡了?教你两招!
用最简单的话告诉你什么是ElasticSearch
网络是怎样连接的?从浏览器输入URL开始
解决ChromeDriver安装与配置问题
**游记/杂记**
a
a
a
b
c
c
b
a
a
x
s
a
c
network
https
vue-src
index
_posts
hello
about
index
coc
index
menu
index
perf
index
support-vuejs
index
v2
api
index
cookbook
adding-instance-properties
avoiding-memory-leaks
client-side-storage
creating-custom-scroll-directives
debugging-in-vscode
dockerize-vuejs-app
editable-svg-icons
form-validation
index
packaging-sfc-for-npm
practical-use-of-scoped-slots
serverless-blog
unit-testing-vue-components
using-axios-to-consume-apis
examples
commits
deepstream
elastic-header
firebase
grid-component
hackernews
index
modal
select2
svg
todomvc
tree-view
guide
class-and-style
comparison
components
components-custom-events
components-dynamic-async
components-edge-cases
components-props
components-registration
components-slots
computed
conditional
custom-directive
deployment
events
filters
forms
index
installation
instance
join
list
migration
migration-vue-router
migration-vuex
mixins
plugins
reactivity
render-function
routing
single-file-components
ssr
state-management
syntax
team
transitioning-state
transitions
typescript
unit-testing
search
index
style-guide
index

ElasticSearch对复杂分布式机制的透明

前面已经介绍了ElasticSearch是一个分布式系统,分布式是为了应付大数据量。ElasticSearch它实现分布式的时候就已经将所有复杂的操作自己都实现了。比如:

分片机制

ElasticSearch的分片机制给我们带来了什么好处?当我们想要存储一篇文档的时候不用去手动选择应该将文档存到那个分片上面。

claster discovery 集群发现机制

集群发现机制, 它可以在我们有了多个elasticSearch节点的时候自动将我们的ElasticSearch组成一个集群,不用我们去配置(前提是同一台机器上, 不同的机器需要配置IP)

shard负载均衡

当我们有3个节点需要分配25个shard的时候,ElasticSearch会自动将这25个分片平均分配到每个节点上面

shard副本

当我们新增一个索引时,不需要去维护它的备份这些,ElasticSearch会自动帮我们完成这些复杂的操作。

请求路由

当我们想要获取某条数据时,并不用管到底到那个分片或者节点上面去获取,ElasticSearch会自动将我们的请求路由到有该数据的地方。

集群扩容

当我们新启动一个节点的时候会自动加入到当前已经有了的集群里。

shard重分配

当我们有有没有分配的shard的时候,如果这个时候有了新的节点加入进来,那么会自动分配该shard

ElasticSearch的垂直扩容和水平扩容

垂直扩容

我们现在有4台服务器,每台服务器的容量是1T,最多能够存储4T的数据 现在的需求是要存6T数据,那么我们如果采用垂直扩容的方案,升级其中两台服务器的容量为2T,然后让它加入集群就可以实现了,这是垂直扩容的解决方案。

水平扩容

水平扩容就是在原有的基础上面直接加上两台新服务器,容量是1T,那么这个时候到底是使用水平扩容还是垂直扩容呢?一般情况是是采用水平扩容,因为水平扩容的价格更便宜。

增加或减少节点时数据的自动rebalance

在ElasticSearch集群中总有一些节点会负载要重一些,因为当我们的分片分配的时候可能不能平均分配,某些节点需要担任更多的负载,比如我们有10个分片,但是有只有3台服务器,那么就会有一台会多承担负载,这个时候如果我们新增分片的时候,这个分片会自动分配到负载较轻的节点上面。

ElasitcSearch里面的master节点

默认情况下ElasticSearch中的会选择出一个master节点,这个master节点主要管理集群的元数据,比如说索引的创建和删除,维护索引元数据,节点的增加和移除,维护集群的元数据(元数据是指index,type,id这三个元数据)。

节点平等的分布式架构

在ElasticSearch中,所有的节点功能都是相同的也就是节点平等,都可以进行增删改查,比如现在有4个节点,user数据存储在节点1上面,我们可能直接访问到节点1上面获取数据,也可能是访问到节点2上面,然后节点2去节点1上面拿数据,然后在从节点2返回回来。

点赞(0) 阅读(41) 举报