自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

water Wang

每个人都会有觉醒期,只是来的晚或者早罢了。

  • 博客(318)
  • 资源 (14)
  • 收藏
  • 关注

原创 5.3.1 “准备再平衡”

5.3 延迟的加入组操作协调者处理不同消费者的“加入组请求”,由于不能立即返回“加入组响应”给每个消费者,它会创建一个“延迟操作”,表示协调者会延迟发送“加入组响应”给消费者。但协调者不会为每个消费者的“加入组请求”都创建一个“延迟操作”,而是仅当消费组状态从“稳定”转变为“准备再平衡”,才创建一个“延迟操作”对象。为了保证只创建一个“延迟操作”,只有消费组的状态为“稳定”时才可以创建“延迟操作”,并且在创建“延迟操作”的同时,更新消费组状态为“准备再平衡”。这样协调者在处理下一个消费者的“加入组请

2021-04-13 14:54:17 2811

原创 5.2.1 服务端定义发送晌应结果的回调方法

5.2协调者处理请求消费者客户端使用“消费者的协调者对象”(ConsumerCoordinator)来代表所有和服务端协调者节点有关的请求处理,比如心跳请求、获取和提交分区的偏移量(自动提交任务)、发送“加入组请求”和“同步组请求”从协调者获取到分区。服务端处理客户端请求的人口都是KafkaApis类,它会针对不同的请求类型分发给不同的方法处理。比如,服务端处理“加入组请求”调用handleJoinGroupRequest()方法,处理“同步组请求”调用handleSyncGroupRequest方法。

2021-04-13 10:46:30 2950

原创 5.1.1 元数据与分区分配器

第4章分析了消费者客户端轮询的3个步骤:发送拉取请求,客户端轮询,获取拉取结果。消费者在发送拉取请求之前,必须首先满足下面的两个条件。确保消费者已经连接协调者,即找到服务端中管理这个消费者的协调者节点。确保消费者已经分配到分区,即获取到协调者节点分配给消费者的分区信息。消费者客户端除了从协调者节点获取到分区,还会发送心跳请求(详见43节)、提交偏移量(详见44节)给协调者节点。其中,提交偏移革主要和消息的处理有关,协调者只是作为偏移盐的存储介质,因此不是本章的重点。而消费者发送心跳请求给协调者.

2021-04-12 20:56:52 2856

原创 4.4.1 自动提交任务

4.4 消费者提交偏移量消费组发生再平衡时分区会被分配给新的消费者,为了保证新消费者能够从分区的上一次消费位置继续拉取并处理消息,每个消费者需要将分区的消费进度,定时地同步给消费组对应的协调者节点。新API为客户端提供了两种提交偏移盐的方式:异步模式和同步模式。相关代码如下:另外,如果消费者客户端设置了向动提交(enable.auto.commit=true,默认开启)的选项,会在客户端的轮询操作中调度定时任务,定时任务也属于异步模式提交偏移量的一种运用场景。4.4.1 自动提交任务如果消费者开

2021-04-12 16:44:37 126

原创 4.3.1 发送心跳请求

4.3 心跳任务消费者拉取数据是在拉取器中完成的,发送心跳是在消费者的协调者上完成的,但并不是说拉取器和消费者的协调者就没有关联关系。“消费者的协调者”的作用是确保客户端的消费者和服务端的协调者之间的正常通信,如果消费者没有连接上协调者(比如协调者认为消费者挂了,或者消费者认为协调者挂了),那么拉取器的拉取工作以及后续的消息消费等工作就都无法正常进行。每个消费者都需要定时地向协调者发送心跳,以表明向己是存活的。如果消费者一段时间内没有发送心跳,协调者就会认为消费者挂掉了。协调者还要能够对消费组成员失败进

2021-04-10 18:30:31 626 2

转载 git(8)Git 与其他系统

8 Git 与其他系统世界不是完美的。大多数时候,将所有接触到的项目全部转向 Git 是不可能的。有时我们不得不为某个项目使用其他的版本控制系统(VCS, Version Control System ),其中比较常见的是 Subversion 。你将在本章的第一部分学习使用 git svn ,Git 为 Subversion 附带的双向桥接工具。或许现在你已经在考虑将先前的项目转向 Git 。本章的第二部分将介绍如何将项目迁移到 Git:先介绍从 Subversion 的迁移,然后是 Pe..

2021-04-09 13:24:04 216

转载 git(9)Git 内部原理

9 Git 内部原理不管你是从前面的章节直接跳到了本章,还是读完了其余各章一直到这,你都将在本章见识 Git 的内部工作原理和实现方式。我个人发现学习这些内容对于理解 Git 的用处和强大是非常重要的,不过也有人认为这些内容对于初学者来说可能难以理解且过于复杂。正因如此我把这部分内容放在最后一章,你在学习过程中可以先阅读这部分,也可以晚点阅读这部分,这完全取决于你自己。既然已经读到这了,就让我们开始吧。首先要弄明白一点,从根本上来讲 Git 是一套内容寻址 (content-addressa..

2021-04-09 10:40:25 294

原创 4.2.1异步请求

4.2消费者的网络客户端轮询kafka消费者对象(kafkaConsumer)的轮询方法通过拉取器(Fetcher)发送拉取请求,会调用消费者网络客户端对象(ConsumerNetworkClient)的发送请求方法send()和网络轮询方法poll()。调用发送方法后一定要跟着轮询,因为发送方法只是把请求暂存到unsent变革,只有调用轮询才会将u陌en中的请求真‘正发送到目标节点。相关代码如下:注意:拉取器获取分区的“列举偏移量”请求(LIST_OFFSETS)、消费者的协调者获取分区的“提交偏移

2021-04-09 00:24:24 297

原创 4.1.1 消费者的订阅状态

4.1 新消费者客户端上面将消费者的新旧两种API做了比较,并且简单概括了新消费者API的主要组件。具体到KafkaConsumer相关组件的实现,我们需要从API提供的方法入手,还要理清各种组件的关联关系、数据结构的传递过程、线程模型的使用等。4.1.1 消费者的订阅状态新API为消费者客户端提供了两种消费方式:订阅(subscribe)和分配(assign)。订阅模式。消费者会指定订阅的主题,由协调者为消费者分配动态的分区。分配模式。消费者指定消费特定的分区,这种模式失去了协调者为消

2021-04-08 21:03:48 232

转载 git(7)自定义 Git

7 自定义 Git到目前为止,我阐述了 Git 基本的运作机制和使用方式,介绍了 Git 提供的许多工具来帮助你简单且有效地使用它。 在本章,我将会介绍 Git 的一些重要的配置方法和钩子机制以满足自定义的要求。通过这些工具,它会和你和公司或团队配合得天衣无缝。7.1 配置 Git如第一章所言,用git config配置 Git,要做的第一件事就是设置名字和邮箱地址:$ git config --global user.name "John Doe" $ git config -..

2021-04-08 20:28:56 735

转载 git(6)Git 工具

6 Git 工具现在,你已经学习了管理或者维护 Git 仓库,实现代码控制所需的大多数日常命令和工作流程。你已经完成了跟踪和提交文件的基本任务,并且发挥了暂存区和轻量级的特性分支及合并的威力。接下来你将领略到一些 Git 可以实现的非常强大的功能,这些功能你可能并不会在日常操作中使用,但在某些时候你也许会需要。6.1 修订版本(Revision)选择Git 允许你通过几种方法来指明特定的或者一定范围内的提交。了解它们并不是必需的,但是了解一下总没坏处。单个修订版本显然你可以使用给出的..

2021-04-08 18:55:52 363

转载 git(5)分布式 Git

5 分布式 Git为了便于项目中的所有开发者分享代码,我们准备好了一台服务器存放远程 Git 仓库。经过前面几章的学习,我们已经学会了一些基本的本地工作流程中所需用到的命令。接下来,我们要学习下如何利用 Git 来组织和完成分布式工作流程。特别是,当作为项目贡献者时,我们该怎么做才能方便维护者采纳更新;或者作为项目维护者时,又该怎样有效管理大量贡献者的提交。5.1 分布式工作流程同传统的集中式版本控制系统(CVCS)不同,开发者之间的协作方式因着 Git 的分布式特性而变得更为灵活多样。在集中式..

2021-04-08 17:28:12 410

转载 git(4)服务器上的 Git

4 服务器上的 Git到目前为止,你应该已经学会了使用 Git 来完成日常工作。然而,如果想与他人合作,还需要一个远程的 Git 仓库。尽管技术上可以从个人的仓库里推送和拉取修改内容,但我们不鼓励这样做,因为一不留心就很容易弄混其他人的进度。另外,你也一定希望合作者们即使在自己不开机的时候也能从仓库获取数据 — 拥有一个更稳定的公共仓库十分有用。因此,更好的合作方式是建立一个大家都可以访问的共享仓库,从那里推送和拉取数据。我们将把这个仓库称为 "Git 服务器";代理一个 Git ..

2021-04-08 16:47:17 566

转载 git(3)Git 分支

3 Git 分支几乎每一种版本控制系统都以某种形式支持分支。使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作。在很多版本控制系统中,这是个昂贵的过程,常常需要创建一个源代码目录的完整副本,对大型项目来说会花费很长时间。有人把 Git 的分支模型称为“必杀技特性”,而正是因为它,将 Git 从版本控制系统家族里区分出来。Git 有何特别之处呢?Git 的分支可谓是难以置信的轻量级,它的新建操作几乎可以在瞬间完成,并且在不同分支间切换起来也差不多一样快。和许多其他版本控制..

2021-04-08 15:58:42 199

转载 git(2)Git 基础

2 Git 基础读完本章你就能上手使用 Git 了。本章将介绍几个最基本的,也是最常用的 Git 命令,以后绝大多数时间里用到的也就是这几个命令。读完本章,你就能初始化一个新的代码仓库,做一些适当配置;开始或停止跟踪某些文件;暂存或提交某些更新。我们还会展示如何让 Git 忽略某些文件,或是名称符合特定模式的文件;如何既快且容易地撤消犯下的小错误;如何浏览项目的更新历史,查看某两次更新之间的差异;以及如何从远程仓库拉数据下来或者推数据上去。2.1 取得项目的 Git 仓库有..

2021-04-08 14:33:09 196

转载 git(1) 起步

1 起步本章介绍开始使用 Git 前的相关知识。我们会先了解一些版本控制工具的历史背景,然后试着让 Git 在你的系统上跑起来,直到最后配置好,可以正常开始开发工作。读完本章,你就会明白为什么 Git 会如此流行,为什么你应该立即开始使用它。1.1 关于版本控制 什么是版本控制?我为什么要关心它呢?版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。在本书所展示的例子中,我们仅对保存着软件源代码的文本文件作版本控制管理,但实际上,你可以对任何类型的文件进行版.

2021-04-08 13:56:47 186

原创 4.0 新消费者

上一章分析了Scala实现的两种消费者API,新版本的消费者采用Java重新实现。但不管采用什么版本实现,消费者消费消息的主要工作没有太大变化,比如为消费者分配分区、拉取线程拉取消息、客户端消费消息、更新拉取状态、提交偏移量。消息消费相关的基本概念在第3章中已经分析过了,本章首先会比较下面3个概念:消费者API(下文简称“新API”)、旧版本的高级API(下文简称“高级PI”)和新版本的生产者API。消费者的高级API和新API先来复习下旧消费者的高级API示例。客户端创建消费者连接器和消息流列表.

2021-04-07 21:50:18 150 2

原创 3.7.1消费者线程模型

3.7小结本意分析了两种消费者API的实现,并重点分析了高级API,下面总结一下高级.API两个重要的概念。####3.7.1消费者线程模型客户端创造基于ZK的消费者连接器,ZK作为共享存储保存了Kafka集群或者客户端的相关信息,比如主题信息、消费者和消费组的关系、分区和消费者的关系、分区的偏移量等。连接器是消费者进程的人口,根据客户端订阅的主题和设置的线程数,从而引入了消费者的线程模型。一个消费者客户端是一个Java进程,消费者可以订阅多个主题,甚至每个主题都可以向定义线程数,消费者实际上是个

2021-04-07 20:34:24 265

原创 3.6.1 消息消费主流程

3.6 消费者低级API示例上面基于消费者连接器的实现是高级API的使用方法,消费者拉取线程最终通过SiMpleConsul’ler和服务端进行数据传输,底层网络连接采用了同步类型的阻塞通道。虽然SiMpleConsul’ler从名称上看属于“简单”、低级API,但是高级API也会使用这个类。只不过高级API并不会把这个底层的类暴露给消费者客户端应用程序,而低级API则需要直接面对SiMpleConsul’ler类编程。客户端使用低级API消费消息,需要手动指定固定的分区,并且不会利用“消费组向动分配分

2021-04-07 20:00:53 154 2

原创 github上传大文件(超过100M)

今天突发奇想,在idea中一边看pdf,一边看源码。于是将PDF访问源码的doc下,想一起上传到github,发现oops。。。1. 现象git push 的时候提示错误remote: error: GH001: Large files detected. You may want to try Git Large File Storage - https://git-lfs.github.com.remote: error: Trace: a3bc2ecce64c2fb3f5190fe9e9a.

2021-04-07 16:14:30 3049 1

转载 前言(3):分布式的坑

好文转载 https://mp.weixin.qq.com/s/uti9GxctgiaBbf3jSVUbjQ本篇主要内容如下:前言我们都在讨论分布式,特别是面试的时候,不管是招初级软件工程师还是高级,都会要求懂分布式,甚至要求用过。传得沸沸扬扬的分布式到底是什么东东,有什么优势?看过火影的同学肯定知道漩涡鸣人的招牌忍术:多重影分身之术。这个术有一个特别厉害的地方,过程和心得:多个分身的感受和经历都是相通的。比如 A 分身去找卡卡西(鸣人的老师)请教问题,那么其他分身也会知道 A 分身.

2021-03-30 11:33:26 220 2

原创 MinIO异常the region is wrong; expecting ‘us-east-1‘

io.minio.errors.ErrorResponseException: The authorization header is malformed; the region is wrong; expecting 'us-east-1'

2021-03-29 10:31:17 4090

转载 前言(2):什么是微服务?

好文转载 https://mp.weixin.qq.com/s/h0FVwPMFQ_lDI6pCtUDMSQ文章结构样式稍有调整1. 单体架构概念单体架构也称之为单体系统或者是单体应用。就是一种把系统中所有的功能、模块耦合在一个应用中的架构方式。单体架构的特点主要有:打包成一个独立的单元(导成一个唯一的jar包或者是war包)以一个进程的方式来运行优点易于开发: 开发方式简单,IDE 支持好,方便运行和调试。易于测试: 所有功能运行在一个进程中,一旦进程启动,便可以进行.

2021-03-28 11:53:51 403 2

原创 3.5.1 消费者提交分区偏移量

3.5 消费者提交分区偏移量消费者提交偏移量是为了保存分区的消费进度。因为Kafka保证同一个分区只会分配给消费组中的唯一消费者,所以即使发生再平衡后,分区和消费者的所有权关系发生变化,新消费者也可以接着上一个消费者记录的偏移盘位置继续消费消息。但是消费者即使记录了分区的偏移量,仍然无法解决消息被重复消费的问题。例如,消费者l每隔10秒提交一次偏移量,在10秒时提交的偏移量是100,下一次提交的日们可点是20秒。在20秒之前,消费者l又消费了30条消息,然后消费者l突然挂掉了。由于偏移量现在仍然停留在1

2021-03-27 20:57:02 224

原创 3.4.1 Kafka消息流

3.4 消费者消费消息消费者拉取钱程拉取每个分区的数据,会将分区的消息集包装成一个数据块(FetchedDataChunk)放入分区信息的队列中。而每个队列都对应一个消息流(KafkaStream),消费者客户端选代消息流,实际上是迭代每个数据块中消息集的每条消息。如图3-22所示,一个队列包含多个数据块,每个数据块对应一个分区的消息集,一个消息集包含多条消息。消费者迭代器(ConsumerIterator)封装了迭代获取消息的逻辑,客户端不需要面向数据块、消息集这些内部对象,只需要对消费者迭代器循环获

2021-03-26 18:04:11 377 7

原创 3.3.1 拉取线程管理器

3.3 消费者拉取数据消费者连接器通过再平衡操作分配到的分区相当于t作任务,任务需要由工作线程完成。生产者要写消息到服务端的分区,这是通过Sender工作线程完成的,消费者要读服务端分区的消息则通过拉取管理器的拉取线程完成。下面我们来分析消费者客户端拉取消息的具体实现。3.3.1 拉取线程管理器消费者的拉取管理器(ConsumerFetcherManager)管理了当前消费者的所有拉取线程,这些拉取线程会从服务端的分区拉取消息。前面我们知道每个消费者都会分配到分区信息集合,这些分区会被拉取管理器的st

2021-03-26 14:04:44 177 4

原创 3.2.1 分区的所有权

3.2 消费者再平衡操作消费者连接器的核心处理逻辑是ZKRebalanceListener的再平衡操作,它起了承上启下的作用上一节初始化消费者连接器只是“创建了队列和消息流”,再平衡操作会“为消费者重新分配分区”。只有为消费者分配了分区,拉取线程才会开始拉取分区的消息。因为分区要被重新分配,分区的所有者都会发生变化,所以在还没有重新分配分区之前,所有消费者都要停止已有的拉取钱程。同时,分区分配给消费者都会在ZK中记录所有者信息,所以也要先删除ZK上的节点数据。只有和分区相关的ZK所有者、拉取线程

2021-03-26 10:32:09 131

原创 3.1.1创建并初始化消费者连接器

消息系统通常由生产者「producer )、 消费者( consumer )和消息代理( broker ) 三大部分组成,生产者会将消息写入消息代理,消费者会从消息代理中读取消息 。 对于消息代理而育,生产者和消费者都属于客户端:生产者和消费者会发送客户端请求给服务端,服务端的处理分别是存储消息和获取消息,最后服务端返回响应结果给客户端。客户端和服务端的通信涉及网络中不同的节点,客户端和服务端都会有一个连接对象,负责数据的发送和接收:比如客户端会发送请求 、接收响应,服务端会接收请求 、 发送响应 。.

2021-03-25 21:59:05 397

原创 2.2.1 服务端使用接收器接受客户端的连接

紧接着上篇2.2 服务端网络连接服务端网络连接KafkaServer是Kafka服务端的主类,KafkaServer中和网络层有关的服务组件包括SocketServer、KafkaApis和KafkaRequestHandlerPool。后两者都使用了SocketServer暴露出来的请求通道(requestChannel)来处理网络请求。KafkaServer中和服务端相关的组件还有很多,不过由于本章主要关注网络层,所以暂时不关注其他功能组件。相关代码如下:def startup() {.

2021-03-25 14:16:34 309

原创 2.1.1 同步和异步发送消息

紧接着上篇2.2 服务端网络连接服务端网络连接KafkaServer是Kafka服务端的主类,KafkaServer中和网络层有关的服务组件包括SocketServer、KafkaApis和KafkaRequestHandlerPool。后两者都使用了SocketServer暴露出来的请求通道(requestChannel)来处理网络请求。KafkaServer中和服务端相关的组件还有很多,不过由于本章主要关注网络层,所以暂时不关注其他功能组件。相关代码如下:def startup() {.

2021-03-25 10:24:51 805

原创 1.2 Kafka 的设计与实现

下面我们会从3个角度分析Kafka的一些设计思路,并尝试回答下面3个问题。- 如何利用操作系统的优化技术来高效地持久化日志文件和加快数据传输效率?- Kafka的生产者如何批量地发送消息,消费者采用拉取模型带来的优点都有哪些?- Kafka的副本机制如何工作,当故障发生时,怎么确保数据不会丢失?

2021-03-24 21:36:18 302

原创 mac手动安装gradle及配置私服

公司电脑是win,自己电脑是mac,在公司已经配置了gradle,在家里学习又学习配置一遍gradle,不过基本思路类似1. 手动安装 gradle先下载gradle,官网地址:https://gradle.org/releases/ 选择你需要安装的版本(比如我选择4.8.1),然后解压到你的选择的目录下(这里以/Applications/gradle-4.8.1为例)配置gradle环境变量>vim ~/.bash_profile打开后给里面添加export GRADLE_HO.

2021-03-23 21:47:19 1772

原创 1.4 源码阅读顺序

重点关注的目录:core :Broker 端工程,保存 Broker 代码。clients :Client 端工程,保存所有 Client 代码以及所有代码都会用到的一些公共代码。streams :Streams 端工程,保存 Kafka Streams 代码。connect :Connect 端工程,保存 Kafka Connect 框架代码以及 File Connector 代码。源码阅读顺序log 包 : log 包中定义了 Broker 底层消息和索引保存机制以及物理格式。 .

2021-03-23 11:09:53 266

原创 1.3 win下Kafka源码环境搭建

本文目的:1 搭建win下kafka调试环境,2,看kafka源码1 本文环境win10专业版JDK 1.8scala 2.13.4gradle 3.5kafka 1.0.0 源码2 前置软件准备2.1 JDK安装省略(如果有本地有多个jdk环境,可以参考这里进行配置切换),检查版本如下2.2 scala安装省略,检查版本如下2.3 gradle安装看这里(注意最好设置好远程私服地址+本地仓库地址),检查版本如下2.4 kafka源码直接从官网下载,我下载.

2021-03-22 12:01:12 26512

原创 win 安装scala

记录win安装scala1 本机环境win 10 专业版需要安装scala 2.11.12 下载安装找自己需要的版本 https://www.scala-lang.org/download/all.html 例如我需要 2.11.11下载安装,全程下一步下一步(安装位置可以自定义)3 安装配置配置SCALA_HOME配置 path。找到系统变量下的"Path"如图,单击编辑。在"变量值"一栏的最前面添加如下的路径: %SCALA_HOME%\bin;.

2021-03-20 14:44:10 163 2

原创 1.1 Kafka 的基本概念

开始kafka之路在0.10版本之前, Kafka仅仅作为一个消息系统,主要用来解决应用解祸 、 异步消息 、 流量削峰等问题。 不过在0 .10版本之后, Kafka提供了连接器与流处理的能力,它也从分布式的消息系统逐渐成为一个流式的数据平台 。 先介绍Kafka流式数据-平台的基本组成,然后分析它的一些架构设计和基本概念,最后通过几个示例快速理解它的一些重要特性。1.1 kafka流式数据平台作为一个流式数据平台,最重要的是要具备下面3个特点 。类似消息系统,提供事件流的发布和订阅,.

2021-03-20 10:50:37 259 1

原创 redis实战(11):Redis性能监控指标汇总

1 监控指标性能指标:Performance内存指标: Memory基本活动指标:Basic activity持久性指标: Persistence错误指标:Error1.1 性能指标:PerformanceNameDescriptionlatencyRedis响应一个请求的时间instantaneous_ops_per_sec平均每秒处理请求总数hi rate(calculated)缓存命中率(计算出来的1.2 内存指标: Memory

2021-03-19 19:29:00 934

原创 redis实战(10):SLOWLOG命令详解

redis高负载排查时候用到它,仔细研究研究它1 什么是 SLOWLOGSlow log 是 Redis 用来记录查询执行时间的日志系统。查询执行时间指的是不包括像客户端响应(talking)、发送回复等 IO 操作,而单单是执行一个查询命令所耗费的时间。另外,slow log 保存在内存里面,读写速度非常快,因此你可以放心地使用它,不必担心因为开启 slow log 而损害 Redis 的速度。2 设置 SLOWLOGSlow log 的行为由两个配置参数(configuratio.

2021-03-19 18:53:24 1983

原创 redis实战(9):Redis 高负载排查记录

钉钉收到同事反馈:突然大量用户反馈进入网页很慢,登录服务器一看,Redis调用时间严重超时。太可悲,高速的缓存反而变成了短板,由于数据一直没有返回,导致了请求响应变慢。1 现象前端页面响应慢接口返回慢redis调用严重超时2 排查2.1 环境检查服务器的 CPU 负载内存网络输入输出QPS连接数上面指标查看方式很多,linux命令行、外部软件(Grafana,zabbix)或者redis的info命令都可以查看,不具体演示2.2 redis检查通过 info .

2021-03-19 17:35:07 963

转载 前传(3):Kafka的版本号

版本号实在是太重要了,我觉得它甚至是你日后能否用好 Kafka 的关键。上一期我介绍了目前流行的几种 Kafka 发行版,其实不论是哪种 Kafka,本质上都内嵌了最核心的 Apache Kafka,也就是社区版 Kafka,那今天我们就来说说 Apache Kafka 版本号的问题。在开始之前,我想强调一下后面出现的所有“版本”这个词均表示 Kafka 具体的版本号,而非上一篇中的 Kafka 种类,这一点切记切记!那么现在你可能会有这样的疑问:我为什么需要关心版本号的问题呢?直接使用最新版本.

2021-03-17 15:20:48 353

大型网站技术架构.xmind

大型网站技术架构

2021-05-19

JVM脑图-必须名称要十个字

JVM脑图

2021-03-11

java-pdf.rar

java-pdf.rar

2021-03-11

redis-PDF.rar

redis-PDF.rar

2021-03-11

kingbase8-8.2.0.jar

kingbase8-8.2.0.jar,是链接人大金仓数据库的jar文件

2021-01-13

ePass1000ND 开发包.rar

对ukey中双向认证的key进行正删查,ukey插上电脑后自动识别ukey中的证书

2020-10-14

https双向认证ukey管理软件

https双向认证ukey管理软件

2020-10-14

mysql-5.5.20-winx64

mysql-5.5.20-winx64

2016-09-01

测试驱动开发(中文完整版-带书签)

测试驱动开发(中文完整版-带书签)

2016-08-30

单元测试之道Java版:使用JUnit

单元测试之道Java版:使用JUnit

2016-08-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除