降级与熔断 1.1、降级 降级也就是服务降级,当我们的服务器压力剧增,为了保证核心功能的可用性,可以选择性的降低一些功能的可用性,或者直接关闭该功能。典型的弃车保帅!就比如贴...
降级与熔断 1.1、降级 降级也就是服务降级,当我们的服务器压力剧增,为了保证核心功能的可用性,可以选择性的降低一些功能的可用性,或者直接关闭该功能。典型的弃车保帅!就比如贴...
1、过期时间(TTL) 通过消息的timestamp字段和ConsumerInterface接口的onConsumer()方法可实现消息的TTL功能,但是有一个局限,就是每条...
1、文件目录布局 不考虑多副本的情况,一个分区对应一个日志(log)。为了防止log过大,Kafka还引入了日志分段(LogSegment)的概念,将log切分为多个LogS...
主题作为消息的归类,可以再细分为一个或多个分区,分区可以看作对消息的二级归类。分区的划分不仅为Kafka提供了可伸缩性、水平扩展的功能,还通过多副本机制为Kafka提供数据冗...
https://www.jianshu.com/p/aa0d4808cbb8 1、底层数据结构 hashmap的定义位于src/runtime/hashmap.go 中,...
1、消费者和消费者组 消费者负责订阅Kafka中的主题,并从订阅的主题中拉取消息。与其他消息中间件不同的是:Kafka中的消费理念中还有一层消费者组(consumer gro...
1、客户端开发 下面是构造的消息对象ProducerRecord. public class ProducerRecord<K,V>( private final St...
前言:切片的设计思想来源于动态数组,是为了开发者能更加方便地使用使一个数据结构能自动增加和减少,但是切片本身并不是动态数组。 1、切片与数组 Go是值传递的,用切片传递数组参...
前言: Kafka虽然是基于磁盘做的数据存储,但却具有高性能、高吞吐、低延时的特点,其吞吐量动辄几万、几十上百万。总结起来大致就5个原因,顺序读写、零拷贝、分区、批量发送、数...
概述 Kafka目前被定义为一个分布式流式处理平台,它以高吞吐、可持久化、可水平扩展、支持流数据处理等多种特性被广泛使用。 1、消息系统:Kafka和传统的消息中...
并发!=并行 首先,假如我们有一段CPU密集型任务,我们创建2000个gorountine是否真的可以将性能提升2000倍?答案是肯定不能,因为我们只是做到了2000次的并发...
前言:Redis服务器是一个事件驱动程序,服务器需要处理两种事件: 1、文件事件:Redis服务器通过套接字和客户端进行链接,而文件事件就是服务器对套接字操作的抽象。服务端和...
1、混合持久化 重启redis时,我们很少使用RDB来恢复内存状态,因为会丢失大量数据。我们通常使用AOF日志重放,但是重放AOF日志性能相对RDB来说要慢很多,这样在r...
前言:redis还提供了AOF持久化功能。于RDB持久化不同,AOF持久化是通过保存redis服务器所执行的写命令来记录数据库状态的。服务器在启动时,通过载入和执行AOF文件...
前言:redis是内存数据库,它将自己的数据保存在内存中,所以如果不想办法将内存中的数据保存到磁盘里面,那么一旦服务器程序退出,服务器中的数据就会消失不见。 为了解决这个问题...
1、服务器中的数据库 redis服务器将所有数据库都保存在服务器状态redis.h/redisServer结构体,db数组的每个项都是一个redis.h/redisDb结...
前言:Reids并没有直接使用这些数据结构来实现数据库的键值对,而是基于这些数据结构创建了一个对象系统,这个对象系统包括字符串对象、列表对象、哈希对象、集合对象、有序集合对象...
前言:压缩列表是列表键、哈希键、有序集合的底层实现之一。 当一个列表键只包含少量列表项,并且每个项要么是小整数或者短字符串的时候,redis使用压缩列表来实现列表键。 当一个...