落盘机制

一、Redis

1、落盘策略

AOF日志会先写入操作系统系统的内存缓冲区,当缓冲区满、超过指定时间、执行fsync命令时会进行落盘。

阅读更多

顺序消费

1、全局有序

一个Topic下的所有消息都需要按照生产顺序消费。

此时要求topic只有1个partion,使用1个消费者,且单线程消费模型。

阅读更多

Zookeeper概念

一、Zookeeper协调框架

1、Zookeeper是一个基于内存的分布式协调框架。其暴漏一些简单元语,基于此可以synchronization、configuration maintenance、group and naming。

2、关键特性

阅读更多

ES分页

ES分页查询指定页时,需要从头查起,即需要查询出前置页 + 当前页的数据,然后返回当前页的数据。以操作文件举例,例如要取文件的第41行到50行,需要执行head -n 50 file | tail -n 10。所以使用from…size进行深分页查询时必然会消耗性能。

一、from…size的限制

1)分页查询语法

阅读更多

分布式网络及共识协议

一、分布式网络的概念

1、分布式网络的必要性

网络上的有些服务提供者(如消息队列,ElasticSearch,Redis,Zookeeper等)需要通过水平扩展的方式来扩展其计算能力,存储能力,故障容错能力。

阅读更多

ES分片和副本

一、为什么要设置分片和副本

摘自:动态更新索引

一个 Lucene 索引 我们在 Elasticsearch 称作分片 。一个 Elasticsearch 索引 是分片的集合。 当 Elasticsearch 在索引中搜索的时候, 他发送查询到每一个属于索引的分片(Lucene 索引),然后像 执行分布式检索 提到的那样,合并每个分片的结果到一个全局的结果集。

阅读更多

ES倒排索引

一、倒排索引

倒排索引概念

倒排索引是适用于全文检索的一种索引结构,ES使用的正是这种结构。把一段需要建立倒排索引的文本(document)进行分词,然后建立词(term)到文本(document)的一对多的映射关系。这种由document内容反向索引documentId的映射结构,称为反向索引。

阅读更多

ES索引分片数设置原则

一、ES索引分片设置原则

存储的数据如果是持续增长的,需要周期建索引进行水平拆分(按小时,按日,按月等),来保证以下的分片原则。

1)副本分片用于保证安全,至少设置为1。副本约多,越影响写入性能。

阅读更多

一致性hash

一、一致性Hash概念

image-20210119214800124

一致性哈希算法在1997年由麻省理工学院提出,它是一种分布式缓存协议,用来减轻或解决网络中的热点问题。它是一种分布式散列方案,它通过在抽象圆或散列环上为服务器或对象分配一个位置,从而独立于分布式散列表中的服务器或对象的数量进行操作。这允许服务器和对象在不影响整个系统的情况下进行扩展。

阅读更多