本文讨论一下Kafka广义上的可靠性,所谓广义是从不同的角度、不同维度去观察系统的可靠性,比如从生产者(Producer)的角度看如何保证已经确认的数据一定写入了系统,不会丢失;从消费者(Consumer)的角度,只要数据没有彻底丢失,就可以读取。再比如从服务端(Broker)的角度,如何保证在可用性(Availability)和持久性(Durability)方面做权衡。副本机制分布式系统的...
Kafka在大数据领域消息中间件的位置独占鳌头很多年了,很重要的一个原因就是其能很高效的承载海量数据,这里的高效指读写能做到低延迟、高吞吐。要做到高效,不是特别难,有很多MQ以及Redis之类的组件都可以做到;要做到支撑海量数据且有良好的水平扩展性,也有很多组件,但能同时兼顾二者的,的确就不多了。而Kafka能同时兼顾,主要是在设计上花费了很多心思,核心的一些点包括:磁盘的连续读写充分利用操...
ES作为全文检索兼存储系统,数据可靠性至关重要,本文讨论ES是如何实现数据可靠性的。ES底层基于Lucene,所以有必要先搞清楚一些相关的概念。refresh && flush && commitLucene中,有flush和commit的概念。所谓flush,就是定期将内存Buffer里面的数据刷新到Directory这样一个抽象的文件存储层,其实就是生成segment。需要注意的是,因为...
如之前的文章所介绍,Skywalking主要由Agent、OAP、Storage、UI四大模块组成(如下图):Agent和业务程序运行在一起,采集链路及其它数据,通过gRPC发送给OAP(部分Agent采用http+json的方式);OAP还原链路(图中的Tracing),并分析产生一些指标(图中的Metric),最终存储到Storage中。本文从源码角度来串联一下这整个流程(基于目前最新的...
本来计划接着上文介绍Skywalking的架构,但是我想了一下,觉得还是有必要先把链路跟踪里面涉及的一些基础概念术语介绍一下,介绍这些Skywalking并不是一个比较好的选择。原因一方面是Skywalking只是众多APM实现之一,里面有些设计并不适合其它APM,另一方面Skywalking提供的比较好的探针多时Java的,而且是字节码注入的,不利于观察学习。当然最重要的是有一个更合适的选...
本文内容主要翻译(意译)自Yurishkuro大神的opentracing-tutorial java,加了一些补充说明,方便理解,习惯看英文的也可以看原文。总共4篇,本文是第4篇。如果你还没接触过OpenTracing,建议先读这篇文章《OpenTracing概念术语介绍》和官方文档。第1篇:单span的trace创建。第2篇:多span的trace创建(进程内SpanContext传递)...
本文内容主要翻译(意译)自Yurishkuro大神的opentracing-tutorial java,加了一些补充说明,方便理解,习惯看英文的也可以看原文。总共4篇,本文是第3篇。如果你还没接触过OpenTracing,建议先读这篇文章《OpenTracing概念术语介绍》和官方文档。第1篇:单span的trace创建。第2篇:多span的trace创建(进程内SpanContext传递)...
本文内容主要翻译(意译)自Yurishkuro大神的opentracing-tutorial java,加了一些补充说明,方便理解,习惯看英文的也可以看原文。总共4篇,本文是第2篇。如果你还没接触过OpenTracing,建议先读这篇文章《OpenTracing概念术语介绍》和官方文档。第1篇:单span的trace创建。第2篇:多span的trace创建(进程内SpanContext传递)...
- « 前一页
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- ...
- 35
- 后一页 »