1、ES的分布式和Kafka
1)es中1个index分成多个shard,每个shard都有副本。这与kafka中的topic、partition相似。
2)集群中有一个节点会被识别成master node。如果master挂了,会将别的节点选举为master。
3)es写只能往master 写,但是读既可以读master,也可以读slave。kafka是读写都只能走master。
2、es是数据结构
index -> type -> mapping -> document -> field
index:mysql中的一张表
type:一个index可有多个type,每个type的字段都差不多,但有略微差别。比如,有一个订单index,专门存放订单数据。其中,有些订单是实物商品;有些订单是虚拟商品订单,比如电影票。这两种订单少部分字段略微差别。这时一个具体的type就对应着mysql中的表。
index通常只有一个type,一个type对应一个具体的表,mapping就是type的表结构定义,定义type中有哪些字段,是什么类型。
往index里的一个type里面写一条数据,叫做一条document,对应着mysql某个表里的一行记录,每个document有多个field,每个field就是document中的一个字段的值。
3、ES分布式架构
分析:
es集群多个节点,会自动选举一个为master节点,这个master其实就是干一些管理工作的,比如维护索引元数据,切换primary shard和replica shard身份等。