构建分布式日志服务:写入日志
#braziliandevs #go #体系结构 #backend

介绍

分布式系统是我非常感兴趣的主题之一,开始进行研究,我决定从一种实用的方法开始,建立真实的事物,可以提供一般的视野,并且与我当前的现实相近,我选择了Travis JefferyDistributed Services with Go: Your Guide to Reliable, Scalable, and Maintainable Systems书,该书的建议是在建造

时了解分布式系统

这是关于本书中提议的记录分布的施工过程的实际研究的一部分,该研究包括使用日志以有序的,操作操作的云母进行存储,共享和处理数据组成。

按照Travis Jeffery在构建jocko时采取的类似方式,这是GO中的Kafka实施。

repositã°o do projeto:gmarcial/gproglog

日志

服务构建的想法是通过分布式系统(例如日志)的交易来理解基本概念。

我们将从服务的核心,定量日志,分布式系统中使用的解决方案,用于原子和耐用性,数据的复制/分布,备份,恢复失败,共识等等。

他们使用的系统示例:数据库,队列,共识算法,例如Paxos和Raft,存储引擎,更改数据捕获(CDC)和数据流。

写入log是序列注册的一件附加存储应用,按注册的注册顺序排序,每个注册都会收到一个顺序和顺序的ID,在注册发生时从位移中索引注册。

最终添加了新的记录,并按照记录发生的顺序和顺序在日志的登录中进行读取,从最古老到最年轻。

Representação visual do log.

为了对该概念进行深入而详细的解释,我建议阅读Jay KrepsThe Log: What every software engineer should know about real-time data's unifying abstraction文章,Jay Kreps是Kafka的创建者之一,Kafka的创建者之一,这是我们今天的活动流,流程和实时的许多内容的先驱engenharia do Linkedin的经验。

在文章中它仅解决该概念,但日志是分布式,使用,集成,实时流处理,Kafka的出现以及该概念在我们的日常生活中如何存在的核心广泛使用的服务。

我推荐的另一篇非常有趣并且相关的文章是Martin KleppmannStream processing, Event sourcing, Reactive, CEP… and making sense of it all

Soluã§o

Componentes

该服务将是注册管理的日志客户。

解决方案由操作日志的API组成,本质上是在段中结构的记录的写作和阅读。

为了撰写新记录,Log将委派给Active Segment,该过程涉及通过Store存储注册并通过Index进行索引以进行以后阅读。

同样,对于读取寄存器,Log将委派给Active Segment,该过程涉及在Index中查找登记,并且是否存在以通过其位移在Store中恢复它。

根据当前的Segment限制,创建了一个新的,并表示为活动。

对数的结构方式的视觉,以绿色表示Segment active:

estrutura

帖子

随着日志的实现,服务构建的下一步是将这些功能提供给网络,以便它可以运行。

这涉及在图书研究过程中徒劳的步骤和部署。

额外

Livro I心脏日志:事件数据,流处理和数据集成

Jay Kreps关于日志的书,明显的进化并继续您有关日志的帖子,但我仍然读过,但这似乎很有趣。

目前我写的那一刻,可以通过此Abiaqian24中的Confluent免费获得这本书,另一种选择是comprar

瓦伦西亚:盘子结构的盘中哈希

ValenciaJay Kreps日志的实现,非常类似于Travis Jeffery的版本。

分布式系统的模式por unmesh joshi

Unmesh Joshipadrões de sistemas distribuídos上有一个博客文章martinfowler,其中包含与日志相关的日志,其中徒劳无功,在本书的解决方案中应用于:

反思

Distributed Services with Go: Your Guide to Reliable, Scalable, and Maintainable Systems.

The Log: What every software engineer should know about real-time data's unifying abstraction.

Stream processing, Event sourcing, Reactive, CEP… and making sense of it all.

Patterns of Distributed Systems