大家好,这是一个为了梦想而保持学习的博客。这个专题会记录我对于 KAFKA 的学习和实战经验,希望对大家有所帮助,目录形式依旧为问答的方式,相当于是模拟面试。【概述】从第二章我们知道 replica 的本质是对分区数据的一个冗余,那么为什么 KAFKA 中要设计这个数据冗余呢?咱们一点一点来看。【能否说下 Replica 的主从设计?】冗余,可以理解为一个动作,就是把一份数据多拷贝了几份出来。而拷
Acceptor客户端的连接请求,并建立和客户端的数据传输通道,然后为这个客户端指定一个Processor,它的工作就
原创 2022-03-14 14:52:06
85阅读
Acceptor 监听客户端的连接请求,并建立和客户端的数据传输通道,然后为这个客户端指定一个Processor,它的工作就到此结束,这样它就可以去响应下一个客户端的连接请求了。 Processor 主要职责是负责从客户端读取数据和将响应返回给客户端,它本身不处理具体的业务逻辑,每个Processor都有一个Selector,用来监听多个客户端,因此可以非阻塞地处理多个客户端的读写请求,Pro
原创 2021-06-24 14:43:32
222阅读
Kafka 请求处理处理请求方案网络处理架构数据/控制请求 Kafka 客户端/ Broker 端的交互都是通过 请求/响应 方式完成客户端把消息生产请求给 Broker,Broker 处理完后,会发送对应的响应给客户端所有的请求都是通过 TCP 以 Socket 方式进行通讯Kafka 定义了一组请求协议,用于交互操作 :PRODUCE 请求 : 用于生产消息FETCH 请求 : 用于消费消息
# Kafka Reactor模型架构实现指南 ## 简介 Kafka Reactor模型架构是一种基于Kafka消息队列和Reactor模式的开发模式。它通过结合Kafka的高吞吐量和低延迟特性以及Reactor模式的高并发处理能力,实现了高效的消息处理和数据流转。在本文中,将会介绍Kafka Reactor模型架构的实现步骤,并给出相应的代码示例。 ## 步骤概览 下面是实现Kafka R
原创 2023-07-04 17:55:55
67阅读
一、Reactor模式1、Reactor模式概述在多线程并发模式,最简单的就是与“线程”捆绑,1个线程处理1个连接的全部生命周期。优点:这个模型足够简单,它可以实现复杂的业务场景,同时,线程个数是可以远大于CPU个数的。然而,线程个数又不是可以无限增大的,因为线程什么时候执行是由操作系统内核调度算法决定的,调度算法并不会考虑某个线程可能只是为了一个连接服务的,它会做大一统的玩法:时间片到了就执行一
文章目录一. 什么是Reactor模式二. Reactor模式实现种类1.单Reactor单线程模式2.单Reactor多线程模式:3.主从Reactor多线程 在正式进入Netty编程模型之前,还需要了解Reactor模式,因为netty就是基于Reactor模式做了一定的改进形成的netty模型。一. 什么是Reactor模式首先,Reactor是一种设计模式,不是具体的类,上篇文章中《Ne
Reactor模型 Reactor分为单线程版和多线程版,主从Reactor多线程模型(Nginx、Memcached和Netty都是采用这种实现)如下: 从主线程池中随机选择一个Reactor线程作为acceptor线程,用于绑定监听端口,接收客户端连接 acceptor线程接收客户端连接请求之后 ...
转载 2021-04-23 22:58:00
328阅读
2评论
消费者 rebalance 策略 1.什么是Rebalance重新负载?      Rebalance,即对 Kafka 中的分区进行重新分配的过程。如需详细了解 Kafka 的分区分配策略2.什么时候触发Rebalance操作     当出现以下几种情况时,Kafka 会进行一次重新分区分配操作,即 Kafka 消费者端的 R
reactor-core 文档 下载链接(含jar包、源码、pom)组件名称中文-文档-下载链接中英对照-文档-下载链接reactor-core-3.1.6.RELEASE.jarreactor-core-3.1.6.RELEASE-API文档-中文版.zipreactor-core-3.1.6.RELEASE-API文档-中英对照版.zipreactor-core-3.1.8.RELEASE.j
转载 10月前
363阅读
一、Reactor单线程模型Reactor单线程模型,指的是所有的I/O操作都在同一个NIO线程上面完成,NIO线程的职责如下:作为NIO服务端,接收客户端的TCP连接;作为NIO客户端,向服务端发起TCP连接;读取通信对端的请求或者应答消息;向通信对端发送消息请求或者应答消息;单线程模型如图18-1所示:由于Reactor模式使用的是异步非阻塞I/O,所有的I/O操作都不会导致阻塞,理论上一个线
原创 2022-07-26 08:16:28
166阅读
一、参考
原创 2022-07-28 14:26:48
235阅读
Reactor线程模型详解 简介 一、单Reactor单线程 二、单Reactor多线程 三、主从Reactor多线程 简介 在目前的线程模型中一种是传统阻塞的I/O模型,一种是Reactor线程模型Reactor模型根据Reactor的数量和处理资源线程池的数量不同又分为三种Reactor线程模 ...
转载 2021-09-20 10:32:00
624阅读
2评论
Reactor模式基于事件驱动,特别适合处理海量的I/O事件。1. 单线程模型Reactor单线程模型,指的是所有的IO操作都在同一个NIO线程上处理。2. 多线程模型Reactor多线程模型,指的是存在一组NIO线程处理IO操作。有一个专门的NIO线程-Acceptor线程用于监听服务端,接收客户端的TCP连接请求。网络IO操作-读、写等由一个NIO线程池负责,该线程池包含一个任务队列和N个可用线程,由这些NIO线程负责消息的读取、解码、编码和发送。1个NIO线程可以同时处理N条链路,
原创 2023-04-11 09:50:56
136阅读
我们平常应该会遇到一个redis的面试题Redis 的线程模型是什么? 简单来说就是内部采用的是reactor单线程模型,它内部用的是一个叫做文件事件处理器的东西,这个文件事件处理器这个东西就是单线程的,所以说redis也是一个单线程的模型 这个可能涉及到一些网络编程的知识:什么是BIO,NIO,两者的区别是什么 BIO (Blocking I/O): 同步阻塞I/O模式,数据的读取写入必须阻塞在
纯内存访问,所有数据都在内存中,所有的运算都是内存级别的运算,内存响应时间的时间为纳秒级别。因此 redis 进程的 cpu 基本不存在磁盘 I/O 等待时间、内存读写性能问题,CPU 不是 redis 的瓶颈(内存大小和网络I/O 才是 redis 的瓶颈,也就是客户端和服务端之间的网络传输延迟)。redis 的高性能纯内存访问,所有数据都在内存中,所有的运算都是内存级别的运算,内存响应时间的时
转载 2023-08-22 23:41:48
36阅读
一、参考资料​​尚硅谷Netty教程(B站最火,人气最高,好评如潮)_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1DJ411m7NR?p=38​​1. 传统阻塞IO2. Reactor模式3. 单Reactor单线程4. 单Reactor多线程5. 主从Reactor多线程6. Netty模式  6. Netty模式 
原创 2022-07-28 14:25:30
118阅读
1、Kafka整体架构    一个典型的Kafka集群中包含若干producer(可以是web前端产生的page view,或者是服务器日志,系统CPU、memory等),若干broker(Kafka支持水平扩展,一般broker数量越多,集群吞吐率越高),若干consumer group,以及一个zookeeper集群。Kafka通过zookeeper管理集群配置,
Reactor模式是处理并发I/O比较常见的一种模式,用于同步I/O,中心思想是将所有要处理的I/O事件注册到一个中心I/O多路复用器上,同时主线程阻塞在多路复用器上;一旦有I/O事件到来或是准备就绪(区别在于多路复用器是边沿触发还是水平触发),多路复用器返回并将相应I/O事件分发到对应的处理器中。
原创 2022-04-25 13:39:24
364阅读
为了提升网络的处理能力 , 出现了I/O多路复用技术 比如常见的 select poll epoll Reactor 模型就是对上面I/O多路复用的封装 一般常使用如下几个组合使用方式: 单Reactor 单进程/线程 单Reactor 多进程/线程 多Reactor 多进程/线程 单Reactor
原创 2021-06-17 18:52:41
302阅读
  • 1
  • 2
  • 3
  • 4
  • 5