Kafka万亿级消息实战荐

## 一、Kafka应用
本文主要总结当Kafka集群流量达到万亿级记录/天或者十万亿级记录/天 甚至更高后,我们需要具备哪些能力才能保障集群高可用、高可靠、高消息已发出但被对方拒收什么意思性能、高吞吐、安全的运行。
这里总结内容主要针对Kafka2.1.1版本,包括集群版本升级、数据迁移、流量限制、监控告警、负载均衡、集群扩/缩容消息怎么写、资源隔离、集群容灾、集群安全、性能优化、平台化、开源版本缺陷、社消息的拼音区动态kafka和mq的区别等方面。本文主要是介绍核心脉络,不做过多细节讲解。下面我们先来看看Kafka作为数据中枢的一些核心应用场kafka和mq的区别景。
![](https://static001.geekbang.org/infoq/dc/dc9b576e786eccf73b500703ffd53fa2.png)
下图展示了一些主流的数据处理流程,Kafka起到一个数据中枢的作用。
![](https://static001.geekbang.org/infoq/42/422580ffa24bc8eb26a56f6bd59ad2bb.png)
接下来看看我们实战和手时间区别大么Kafka平台整体架构;
![](https:/实战教学漫画/static001.geekbang.org/infoq/de/de04a587657kafka面试题88d3c060a1503009a73a7.png)
### 1.1 版本升级
#### 1.1.1开源版本如何进行版本滚实战演练动升级与回退消息英语
官网地消息队列址:[http://kafka.apache.org](http://kafka.apache.org/21/documentation.html#upgrade)
**1.1.1.2 源码改造如何升级与回退**实战演练
由于在升级过程中,必然出现新旧代码逻辑交替的情况。集群内部部分节点是开源版本,另外一部消息分节点是改造后的版本。kafka应用场景所以,需要考虑在升级过程中,新旧代码混合的情况消息,如kafka应用场景何兼容以及出现故消息免打扰还能收到消息吗障时如何回退。
### 1.2 数据迁移消息免打扰是什么意思
由于Kafka集群的架构特点,这必然导致集群内流量负载不均衡的情况,所消息的近义词以我们需要做一些数据迁移来实现集kafka教程群不同节点间的消息免打扰还能收到消息吗流量均衡。Kafka开源版本为数据迁移提kafka怎么读供了一个脚本工具“**bin/kafka-reassign-partitions.sh**”,如果自己没有实现自动负载均衡,可以使用此脚本消息怎么写
开源版本提供的这个脚消息免打扰还能收到消息吗本生成迁移计划完全是人工干预的,当集群规模非常大时,迁移效率变得非常低下,一般以天为单位进行计算。当然,kafka和mq的区别我们可以实现一套自动化的均衡程序kafka应用场景,当负载均衡实现自动化以后,基本消息提示音阿斗下载使用调用内部提供的API,由程序去帮我们生成迁移计划及执行迁移任务。需要注意的是,迁移计划有指定数据目录和不指定数据目录两种,指定数据目录的需要配置ACL安全认证。
消息的近义词网地址:实战篮球鞋[http://kafka.apache.org](http://kafka.apache.org/21/documentation.html#实战教学免费阅读basic_ops_cluster_expansion)
#### 1.2.1 broker间数据迁移
*消息怎么写*不指定数据目录**
```java
//未指kafka教程定迁移目录的迁移计划
{
"version":1,
"pkafka教程artitions":[
{"topic":"yyj4","partition":0,"replicas":[1000003,1000004]},
{"topic":"yyj4","partition":1,"replicas":[1000003,1000004]},
{"topic":"yyj4","part消息已发出但被对方拒收了ition":2消息队列,"replicas":[1000003,1000004]}
]
}
```
**指定数据目录**
```jav实战教学免费阅读a
//指定迁移目录的迁移计划
{
"version":1,
"partition消息已发出但被对方拒收什么意思s":[
{"topic":"yyj1","partition":0,"replicas":[1000006,1000005],"log_dirs":["/data1/bigdata/mydata1","/data1/bigdata/mydata3"]},
{"top实战教学ic":"yyj1","partiti消息已发出但被对方拒收了on":1实战化训练,"replicas":[1000006,1000005],"log_dirs":["/data1/bigdata/mydata1","/data1/bigdata/mydata3"]},
{"topic":"ykafka和mq的区别yj1","partition":2,"replicas":[1000006,1000005],"log_dirs":["/data1/bigdata/mydata1","/data1/bigdata/mydata3"]}
]
}
```
#### 1.实战演练2.2 brokkafka是什么er内部磁盘间数据迁移
生产环境的服kafka怎么读务器一般都是挂载多块硬盘,比如4块/12块等;那么可能出现在Kafka集群内部,各broker间流量消息怎么写比较均衡kafka和rabbitmq的区别,但是在broker内部,各磁盘间流kafka和rabbitmq的区别量不均衡,导致部分磁盘过载,从而影响集群性消息的近义词能和稳定,也没有较好的利用硬件资源。在这种情况下,我们就需要对broker内部多块磁盘的流量做负载均衡,让流量更均匀的分布到各磁盘上。
#### 1.2.3 并发数据迁移
当前Kafka开源版本(2.1.1版本)提供的副消息本迁移工具“bin/kafka-reassign-partitions.sh”在同一个集群内只能实现迁移任务的串行。对于集群内已经实现多个资源组物理隔离的情况,由于各资源组不会相互影响,但kafka是什么消息的近义词却不能友好的进行并行的提交迁移任务,迁移效率有点低下,这种不足直到2.6.0版本才得以解决。如果需要实现并发数据迁移,可以选择升级Kafka版本或者修改Kafka源码。
#### 1.2.4 终止数据迁移
当前Kafka开源版本(2.1.1版本)提供的副本迁移工具“bin/kafkakafka消费的三种模式-reassign-partitions.sh”在启动迁移任务后,无法终止kafka是什么迁移。当迁移任务对集群的稳定性或者性能有影响时,将变得束手无策,只能等待迁移任务执行完毕(成功或者失败),这种不足直到2.6.0版本才得以解决。如果需要实实战篮球鞋排名现终止数据迁移,可以实战演练选择升级Kafka版本或者修改Kafka源码。
### 1.3 流量限制
#### 1.3.1 生产消费流量限制
经常会出现一些突发的,不可预测的异常生产或者消费流量会对集群的实战教学IO等资源产生巨大压力,最终消息的拼音影响整个集群的稳定与性能。那么我们可以对用户的生消息英语产、消费、副本间数据同步kafka进行流量限制,这个限流机制并不是为了限制用户,而是避kafka原理免突发的实战教学漫画流量影响集群的稳定和性能,给用户可以更好的服务。
如下图所示消息英语,节点入流量由140MB/s左右突增到250MB/s,而出流量则从400MB/s左右突增至800MB/s。如果没有限流机制,那么集群的多个节点将实战篮球鞋推荐有被这些异常流量打挂的风险,甚至造成集群雪崩。
![](https://static001.ge消息的近义词ekbang.org/infoq/46/46503bcc2951bda96947f5cc23kafka原理b666a1.png)
![](https://static001.geekbang.org/infoq/8a/8af4b6a372aa31a7fa12be9270a8ea76.png)
图片生产/消费流量限制官网地址:消息已发出但被对方拒收什么意思[点击链接](http://kafka.apache.org/21/documentat消息已发出但被对方拒收了io消息已发出但被对方拒收什么意思n.html#quotas)
对于生产者和消费实战篮球鞋者的流量限制,官网提供了以下几种维度组合进行限制(当然,下面限流机制存在一定缺陷,后面在“实战和手时间区别大么Kafka开源版本功能缺陷”我们将提到):
```java
/config/user实战篮球鞋推荐2021s//clients/ //根据用户和客户端ID组合限流
/config/user消息队列s//clients/
/config/users///根消息据用户限流 这种限流方式是我们最常用的方实战篮球鞋推荐2021
/config/users//clients/
/config/users//clients/
/config/users/
/config/clien实战教学ts/
/config/clie消息怎么写nts/
```
在启动Kafka的bro消息提示音阿斗下载ker服务时需要开启JMX参数配置,方便通过其他应用程序采集Kafka的消息英语各项JMX指标进行服务监实战控。当用户需要调整限消息怎么写流阈值时,根据消息怎么写单个kafkabroker所能承受的流量进行智能评估,无需人工干预判断是否可以调整;对于用户流量限制,主要需要参考的指标包括以下两个:
```java
(1)消费流量指标:ObjectName:kafka.server:type=Fetch,user=acl认证用户名称 属性:byte-rate(用户在当前broker的出流量)、throttle-time(用户在当前brokafka和mq的区别ke实战教学漫画r的出流量被限制时间)
(2)生产流量指标:Ob消息免打扰是什么意思jectName:kafka.server:type=Produce,user=acl认证用户名称 属性:byte-rate(用户在当前broker的入流量)、throttle-time(用户在当前broker的入流量被限制时间)
```
![](https:消息怎么写//static001.geekbang.org/infoq/74/748497ea5ab119ff消息英语3881854b0d01a64a.png)
![](https://sta实战篮球鞋tic001.geekbang.org/infoq/e9/e94641b2a98c135f012e3efe5e23f200.png)
#### 1.3.2 follower同步leader/数据迁移流量限制
副本迁移/数据同步流量限制官网地址:[链接](http://kafka.apache.org/实战教学免费阅读21/documentation.html#rep-throttle)
涉及实战篮球鞋推荐参数如下:
```java
//副本同步限流配置共涉及以下4个参数
leader.replication.throttled.ra消息怎么写te
follower.replication.throttled.ratkafkae
leader.replication.throttled.replicas
follower.replication.throttled.replicas
``实战和手时间区别大么`
辅助指标如下:
```java
(1)副本同步出流量指标:ObjectName:kakafka消费的三种模式fka.server:type=BrokerTopicMetrics,name=ReplicationBytesOutPerSec
(2)副本同步入流量指标kafka面试题:ObjectName:kafka.server:type=BrokerTopicMetrics,name=ReplicationBytesInPerSec
```
![](https://static001实战教学免费阅读.geekbang.kafka怎么读org/infoq/39/391fe368kafka面试题da9d19cf4ab0af6dckafka教程0550cd3.png)
![](https://static001kafka原理.geekbang.org/infokafka和mq的区别q/65/65ebe3747691845实战和手时间区别大么e2421a052988fa1e4.png)
### 1.4 监控告警
关于Kafka的监控有一些开源的工具可用使用,比如下面这几种:
> [Kafka Manager](https://github.com/yahoo/kafka-manager);
>
> [Kafka Eagle](http://dokafka消费的三种模式wnload.kafka-eagle.org/);
>
> [Kafka Monitor](h实战ttps://github.com/linkedin/kafka-monitor实战教学漫画);
>
> KafkaOffsetMonitor;kafka和rabbitmq的区别
我们已经把Kafka Manager作为我消息已发出但被对方拒收了们查看一些基本指标的工具嵌入平台,然而这些开源工具不能很好的融入到我们自己的业务系统或者平台上。所以,我们需要自己去实现一套粒度更细、监控更智能、告警更精准的系统。其监控覆盖范围应该包括基础硬件、操作系统(操作系统偶尔出现系统进程hang住情况,导致brokekafka消费的三种模式r假死,无法正常提供服务)、Kafka的broker服务、Kafka客户端应用程序、zookeeper集群、上下游全链路监控。
#### 1.4.1kafka消费的三种模式 硬件监控
**网络监控:**
核心消息怎么写指标包括网络入流量、网络出流量、网络丢包、网络重传、处于TIME.WAIkafka怎么读T的TCP连接数、交换机、机房带宽、DNS服务器监控(如果DNS服务器异常,可能出现流量黑洞,引起大面积业务故障)等。
![](https:kafka消息队列//static001.geekbang.org/infoq/a0/a08657消息怎么写61735a4969dc4e8ed14344922a.png)
![](https://stati实战教学免费阅读c消息免打扰是什么意思001.geekbang.org/infoq/5b/5bfe1f6a490d753eed1f71c9d9f70ef9.png)
![](https://static001.geekbang.org/infoq/29/290148db29dda7841404e062c8ed97a0.png)
![](https://stkafka怎么读atic001.geekbangkafka原理.org/infoq/85/85afe49e0e5ca91fea1823e040550f44.png)
![](https://static001.geekbang.org/infoq/17/17f12541f04d04a9bd79792be2749a2e.png)
**磁盘监控:**
核心指标实战篮球鞋包括监控磁盘write、磁盘read(如果消费时没有延时,或者只有少量延时,一般都没有磁盘kafka消息队列read操作)、磁盘ioutil、磁盘iowait(这个指标如果过高说明磁盘负载较大)、磁盘存储空间、磁盘坏盘、磁盘坏块/坏道(坏道kafka消费的三种模式或者坏块将导致broker处于半死不活状态,由于有crc校实战篮球鞋排名验,消费者将被卡住)等。
![](https:/实战篮球鞋/static001.geekbang.org/infoq/80/8061694396bcaa189b8a963f0fc94671.png)
![](https://static001.geekbang.org/infoq/83/83e807a74811f38b9a实战演练b43ba197747211.png)
![](https实战篮球鞋推荐://static001.geekbang.org/info消息免打扰是什么意思q/e1/e10f2293863cd87286aa06f消息已发出但被对方拒收了f6f69386kafka教程c.png)
![](https://static001.geekbankafka消费的三种模式g.org/infoq/17/1消息已发出但被对方拒收了7f消息队列663d1186e7c47643690431cbf5c45.png)
**CPU监控:**
监控CPU空闲率/负载,主板故障实战篮球鞋排名等,通常CPU使用率比较低不是Kafka的瓶颈。
**内存/交kafka消息队列换区监控:**
内存使用率,内存故障kafka消费的三种模式。一般情况下,服务器上除了启动Kafka的broker时分配的堆内存以外,其他内存基本全部被用来做PageCache。
**缓存命中率监控:**
由于是否读磁盘对Kaf实战化训练ka的性能影响很大,所以我们需要监控Linux的PageCache缓存命中率,如果缓存命中率高,kafka是什么则说明消费者基本命中缓存。
详细内容请阅读消息文章:《[Linux Page Cache调优在Kafka中的应用](https://mp.weixin.qq.co消息免打扰还能收到消息吗m/s?__biz=MzI4NjY4MTU5Nw==&mid=224kafka怎么读7487568&a消息mp;idx=1&sn=fcd54实战教学d366b4e6ca049c43a3ce9d32ce4&am实战p;scene=21#weckafka消息队列hat_rekafka应用场景direct)》。
**系统日志:**消息的近义词
我们需要对操作系统的错误日志进行监控告警,及时发现一kafka和rabbitmq的区别些硬件故障。
#### 1.4.2 broker实战篮球鞋服务监实战篮球鞋
broker服务的监控,主要是通过在broke消息r服务启动时指定JMX端口,然后通过实现一套指标采集程序去采集JMX指标。([服务端指标官网地址](http:/kafka消息队列/kafka.apache.org/21/documentation.html#kafka消息队列monitoring))
**broker级监控**:broker进程、实战教学免费阅读broker入流量字节大小/记录数、br实战篮球鞋okkafka和rabbitmq的区别er出流量字节大小/实战教学记录数、副本同步入流量、副本同步出流量、brok消息免打扰还能收到消息吗er间流量偏差、broker连接数、broker请求队列数、broker网络空闲率、broker生产延时、broker消费延时、broker实战演练生产请求数、broker消费请求数、broker上分布leader个数、broker上分布副本个数、kafka消息队列broker上各磁盘流量、broker GC等。
**topic级监控**:topic入流量字节大小/记录数、topic出流量字节大小/记录数、无流量topic、topic流量突变(突增/突降)、topic消费延时。
**partition级监控**:分区入流量字节大小/记录数、分区出流实战篮球鞋排名量字节大小/记录数、topic分区副本缺失、消息英语分区消费延迟记录、分区leader切换、分区数据倾斜(生产消kafka和rabbitmq的区别息时,如果指定了消息的key容易造成数据倾斜,这严重影响Kafka的服务性能)、分区存储大小(可以治理单分区过大的topic)。
**用户级监控:**用户出/入kafka和mq的区别流量字节消息的拼音大小、用户出/入流量被限制时消息队列间、用户流量突变(突增/突降)。
**br实战教学oker服务日志监控**:对server端打印的错误日志进行监控告警,及时发现服务异常。
#### 1.4.3.客户端监控
客户端监控主要是自己实现一套指标上报程序,这个程序需要实现
org.apache.kafka.common.metrics.MetricsReporter 接口。然后在生产者或者消费者的配置中加入配置项 metric.reporters,如下所示:
```java
Propekafka消费的三种模式rties props = new Properties();
props.put(Prokafkaduce实战化训练rConfig.BOOTSTRAP_SERVERS_CONFIG, "");
props.put(ProducerConkafka教程fig.KEY_SERIALIZER_CLASS_CONFIG, IntegerSerializer.class.getName());
p消息提示音阿斗下载rops.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName());
//ClientMetricsRepor实战教学漫画ter类实现org.apache.kaf实战和手时间区别大么ka.ckafka面试题ommo实战篮球鞋推荐n.metrics.MetricsReporter接口
props.put(ProducerConf消息ig.METRIC_REPORTER_CLASSES_CONFIG, Cl实战教学ientMkafka消费的三种模式etricsReporter.class.getNamkafka和rabbitmq的区别e());
...
```
客户端指标官网地址:
[http://kafka.apache.org/21/documentation.html#selector_monitoring](http://kafka.apache.org/21/documentation.html#selector_monitoring)
[http://kafka.apache.org/21/documentation.html#common\_node\_monitoring](http://kafka.apache.org/21/documentation.html#common_node_monitoring)
[http://kafka.apache.org/21/documentation.html#producer_monitoring](http://kafka.apache.org/21/documentation.html#producer_moni实战教学toring)
[http://kafka.apache.org/21/documentation.html#producer\_sender\_monitoring](http://kafka.apache.org/21/documentation.html#producer_senkafka面试题der_monitoring)
[http://kafka.apache.org/21/documentation.html#consumer_monitoring](http://kafka.apache.org/21/dkafka和rabbitmq的区别oc消息已发出但被对方拒收什么意思umentation.html#consumer_mokafka原理nitoring)
[http://kafka.apache.org/21/documentation.html#consumer\_fetch\_monitoring](http://kafka.apache.org/21/documekafka和rabbitmq的区别ntation.html#consumer_fetch_monitoring)
客户端监控流程架构如下图所示:
![](https://stkafka怎么读atic001.消息的近义词geekbang.org实战化训练/infoq/12/12ac5d640057542c4f0ae592f6be57kafka消息队列28.png)
**1.4.3.1 生产者客户端监控**
> **维度:**用户名称、客户端ID、客户端IP、topic名称、集群名称、brokerIP;
>
> **指标:**连接数、IO等待时间、生产流量大小、生产记录数、请求次数、请求延消息已发出但被对方拒收了时、发送错误/重试次数等。
**1.4.3.2 消费者客户端监控**
> **维度:**用户名称、客户端ID、客户端IP、topic名称、集群名称、消费组、brokerIP、topic分区;
>
> **指标:**kafka是什么连接数、io等待时间、消费流量大小、消息提示音阿斗下载消费记录数、消费延时、topic分区消费延迟记录等。
#### 1.4.4 Zookeeper监控
> 1. Zookeeper进程监控;
>
> 2. Zookeeper的leader切换监控kafka和mq的区别
>
&实战化训练gt; 3. Zookeeper服务的错误日志监控;
>
#消息提示音阿斗下载### 1.4.5 全链路监控
当数据链路非常长的时候(比如:业务应用->埋点SDk->数据采集->Kafka->实时计算->业务应用),我们定消息提示音阿斗下载位问题通常需要经过多个团队反复沟通与排查才能发实战教学漫画现问题到底出现在哪个消息已发出但被对方拒收什么意思环节,这样排查问题效率kafka原理比较低下。实战教学漫画在这种情况下,我们就需要与上下游一起梳理整个链路的监控。出现问题消息队列时,第一时间定位问题出现在哪个环节,缩短问题定位与故障恢复时间。
### 1.5实战教学漫画 资源隔离
#### 1.5.1 相同集群不同业务资源物理隔离
我们对所有集群中不实战化训练同对消息已发出但被对方拒收什么意思业务进行资源组物理隔离,避免各业务之间相互影响。在这里,我们假设集群有4个broker节点(Broker1/Broker2/Broker3/Broker4),2个业务(业实战篮球鞋推荐务A/业务B),他们分别拥有topic分区分布如下图所示,两个业务topic都分散在集群的各个b实战教学roker上,并且在磁盘层面也存在交叉。
试想一下,如果我们其中一个业务异常,比如流量突增,导致broker节点异常或者被打挂。那么这时候另外一实战演练个业务也将受到影响,这样将大大的影响了我们服务的可用性,造成故障,扩大了故障影响消息的近义词范围。
![](https://static001.geekbang.org实战演练/i实战教学漫画nfoq/c9/c90a9518df87cecfe56c9588a920b95b.png)
针对这些痛点,我们可以对集群中的业务进行物理资源隔离,各业务消息英语独享资源,进行资源组划分(这里把4各broker划分为Group1和Gr实战篮球鞋推荐2021oup消息免打扰还能收到消息吗2两个资源组)如下图所示,不同业务的topic分布在自己的资源组内,当其中一个业务异常时,消息队列不会波及另外一个业务,这样就可以有效实战篮球鞋推荐2021的缩小实战篮球鞋推荐2021我们的故障范围,提高服务可用性。
![](https://s实战教学免费阅读tatic001.geekbang.org/infoq/d2/d26d58867201b7kafka消息队列67921f0f77d96d9108.png)
### 1.6 集群归类
我们把集群根据业务特点实战演练进行拆分为日志集群、监控集群、计费集群、搜索集群、离线集群、在线集群等,不同场景业务放在不同集群消息的近义词,避免不同业务相互影响。
### 1.7 扩容/缩容
#### 1.7.1 topic扩容分区
随着topic数据量增长消息的近义词,我们最初创建的topic指定的分区个数可能已经无法满足数量流量要求,所以我们需要对topic的分区进行扩kafka怎么读展。扩容分区时需要考实战教学虑一下几点实战化训练
> 必须保证topic分区leader与follower轮询的分布在资源组内所有broker上,让流量分布更加均衡,同时需要考虑相同分区不同副本跨机架实战演练分布以提高容灾能力;
>
> 当topic分区leader个数除以资源组节点个数有余数时,需要把余数分区leader优先考虑放入流量较低的br实战教学免费阅读oker。
#### 1.7.2 broker上线
随着业务量增多,数据量不断增大,我消息免打扰还能收到消息吗们的集群也需要进行broker节点扩容。关于扩容,我们需要实现以下几点:
>kafka面试题; 扩容智能评消息队列估:根据集群负载,把是否需要扩容评实战篮球鞋推荐估程序化、智能化;
>
> 智能扩容:当评估需要扩容后,把扩容流程以及流量均衡平台化。
#### 1.7.3 broker下线
某些实战场景下,我们需要下线我们的brokafka面试题ker,主要kafka消息队列包括以下几个场景:
> 一些老化的服务器需要下线,实现节点下线平台化;
>
> 服务器消息的近义词故障,broker故障无法恢复,我们需要下线故障服务器,实现节点下线平台kafka化;
>
> 有更优配置的服务器替换已有broker节点消息提示音阿斗下载,实现下线节点平台化。
### 1.8 负载均衡
我们为什么需要负载均衡呢?首先,我们来看第一张图,下图是我们集群某个资源组刚扩kafka是什么容后的流量分布情况,流量无法自动的分摊到我们新扩容后的消息的近义词节点上。那么这个时候需要我们手动去触消息已发出但被对方拒收什么意思发数据迁移,把部分副本迁移至新节点上才能实现流量均衡。
![](https://static001.geekbang.org/infoq/d7/d7cb59d0176b8d675bafa7179a2消息的拼音4656f.png)
kafka原理面,我们来看一下第二张图。这张图我们可以看出流量分布非常不均衡,最低和最高流量偏差数倍以上。这和Kafka的架构特点有关,当集群规模与数据量达到一定量后,必然出现当问题。这种情况下,我们也需要进行负载均衡。
![](https://static001.geekbang.okafka原理rg/infoq/bb/bbde26934df1380d8fe9b9a3b6debe3a.png)
我们再来看看第三张实战篮球鞋图。这里我们可以看出消息的拼音出流量只有部分节点突增,这就是topic分区在集群内部不够分散,集中分布到了某几个broker导致,这种kafka面试题情况我们也需要进行扩容消息已发出但被对方拒收了分区和均衡。
![](https://static001.geekbang.org/infoq/5d/5d0f08e04cfd0c4a00240ff27a767ee6.png)
我们比较理想的流量分布应该如下图所示,各节点间流量偏差非常小,这种情况下,既可以增强集群扛住流量异常突增的能力又可以提升集群整体资源利用率和服务稳定性,降低成本。
![](https://static001.geekbang.org/inf实战篮球鞋推荐oq/2d/2def7d5940ad95f43f842679c8e73491.png)
![](https://static001.geekbang.org/infoq/05/054d42af08e5725102107982736dc29f.png)
负载均衡我们需要实现以下效果:
&消息怎么写gt; 1)生成副本迁移计划以及执行迁移任务平台化、自动kafka和mq的区别化、智能化;
>
> 2)执行均衡后broker间流量比较均匀,且单个topic分区均匀分布在所有broker节点上;
>
> 3)执行均衡后broker内部多块磁盘间流量比较均衡;
要实现这个效果,我们需要开发一套自己的负载均衡工具,如对开源的 cruise control进行二次开发;此工具的核心主要在生成迁移计划的策略,迁移计划的生成方案直接影响到最后集群负载均衡的效果。参考内容:
1.[linkedIn/cruise-control](https://github.com/linkedin/cruise-control/wiki)
2.[Introduction to Kafka Cruise Control](https://www.slid实战教学esh实战篮球鞋推荐2021are.net/JiangjieQin/introduction-to-kaf消息已发出但被对方拒收了ka-cruise-control-68180931)
3.[Cloudera Cruise Control REST API Reference](https://docs.cloudera.com/cdp-private-clkafka是什么oud-base/7.1.3/cctrl-rest-a消息免打扰是什么意思pi-reference/index.html#!/default/bootstrap)
cruise control架构图如下:
![](https://kafka面试题static001.geekbang.org/infoq/c2/c2f2fd1481a0b70a59b9实战和手时间区别大么f17a386b2f9c.png)
**在生成迁移计划时,我们需要考虑以下几点:**
> 1)选择核心指标作为生成迁移计划的依据,比如出流量、入流量、机架、单topic分区分散消息提示音阿斗下载性等;
>
> 2)优化用来生成迁移计划的指标样本,比如过实战滤流量突增/突降/掉零等异常样本;
>
> 3)各资源组的迁移计划需要使用的样本全部为资源组内部样本,不涉及其他资源组,无交叉;消息免打扰是什么意思
>
> 4)治理单分区过大topic,让topic分区分布实战和手时间区别大么更分散,实战教学漫画流量不集中在部分broker,让topic单分区数据量更小,这样可以减少迁移的数据量,提升迁移速度;
>
> 5)已经均匀分散在资源组内的topic,加入迁移黑名单,不做迁移,这样可以减少迁移的数据量,提升迁移速度;
>
> 6)做topic治理,排除长期无流量topic对均衡的干扰;
&gkafka和rabbitmq的区别t;
> 7)新建topic或者topic分区扩kafka是什么容时,应让所有分区轮询分布在所有brok消息的近义词er节点,轮询实战篮球鞋排名后余数分区优先分布流量较低的broker;
&gkafka消费的三种模式t;
> 8)扩容broker节点后开启负载均衡时,优先把同一broker分配了同一大流量(流量大而不是存储空间大,这里可以认为是每秒的吞消息的拼音吐量)topic多个实战分区leader的,迁移一部分到新broker节点;
>
&g实战篮球鞋t; 9)提消息已发出但被对方拒收什么意思交迁移任务时,同一批迁移计划中的分区数据大小偏差实战篮球鞋推荐2021应该尽可能小,这样可以避免迁移任务中小分区迁移完成后长时间等待大分区kafka和mq的区别的迁移,造成任务倾斜;
### 1.9 安全认证
是不是我们的集群所有人都可以随意访问呢?当然不是,为了集群的安全,我们需要进行权限认证,屏蔽非法操作。主要包括以下几个方面需要做安全认证:
> (1)生产者权限认证;
>
> (2)消费者权限认证;
>
&g实战篮球鞋排名t; (3)指定数kafka和mq的区别据目消息队列录迁移安全认证;
官网地址:[http://kafka.apache.org](http://kafka.apache.org/21/documentation.htmlkafka和rabbitmq的区别#security_authz)
### 1.10 集群容灾
**跨机架容灾:**
官网地址:[http://kafka.apache.org](http://kafka.apache.org/21/docum消息免打扰是什么意思entation.html#basic_ops_racks)
**跨集群/机房容灾:**如果有异地双活等业务场景时,可以参考Kafka2.7版本的Mirrkafka教程orMaker 2.0。
> GitHub地址:[https://github.com](https://github.com/a消息提示音阿斗下载pache/kafka/blob/trunk/kafka和rabbitmq的区别connect/mirror/README.md)
>
> 精确KIP地址 :[https://cwiki.apache.org](https://cwiki.apache.org/confluence/display/KAFKA/Kkafka怎么读IP-kafka怎么读656%3A+MirrorMaker2+Exa消息怎么写ctly-once+Semantics)
\*\*ZooKeeper集群上Kafka元数据恢复:\*\*我们会定期对ZooKeeper上的权限信息数据做备份处理,当集群元数据异常时用于恢复。
### 1.11 参数/配置优化
\*\*broker服务参数优化:\*\*这里我只列举部分影响性kafka教程能的核心参数。
```java
num.network.threads
#创建Processor处理网络请求线程个数,建议设置为broker当CPU核心数*2,这个值太低经常出现网络空闲太低而缺失副本。
num.io.threa消息已发出但被对方拒收了ds
#创建KafkaRequestHandler处理具体请求线程个数,建议设置为broker磁实战教学免费阅读盘个数*2
num.replica.fetchers
#建议设置为CPU核心数/4,适当提高可以提升CPU利用率及follower同步leader数据当并行度消息
compressi实战教学on.typ消息怎么写e
#建议采用lz4压缩类型,压缩可以提升Ckafka消费的三种模式PU利用率同时可以减少网络传输数据量。
queued.max.requests
#如果是生产环境,建议配置最少500以上,默认为500。
logkafka教程.flush.scheduler.kafka是什么intervkafka原理al.ms
log.flukafka和rabbitmq的区别sh.interval.ms
log.flush.interva实战化训练l.messages
#这几个参数表示日志数据刷新到磁盘的策略,应该保持默认配置,刷盘策略让操作系统去完成,由操作系统来决定什么时候把数据刷盘;
#如果设置来这个参数,可能对吞吐量影响非常大;
auto.leader.rebalance.enabl消息提示音阿斗下载e
#表示是否开启leade消息队列r自动负载均衡,默认true;我们应该把这个参数设置为false,因为自动实战篮球鞋推荐2021负载均衡不可控,可能影响集群性能和稳定;
```
**生产kafka消费的三种模式优化:**这里我只列举部分影响性能的核心参数。
```java
linger.ms
#客消息的拼音户端生产消息等待多久时间才发送到服务端,单位:毫秒。和batch.size参数配合使用;适当调大可以提升吞吐量,但是如果客户端如果down机有丢失数据风险;
batch.size
#客户端发送到kafka和rabbitmq的区别服务端消息kafka批次大小,和linger.ms参数配合使用;适当调大可以提升吞消息免打扰还能收到消息吗吐量,但是如果客户端如果down机有丢失数据风险;
compression.type
#建议采用lz4压缩类型,具备较高的压缩比及吞吐量;由于Kafka对CPU的要求并不高,所以,可以通过压消息英语缩,充分利用CPU资源以提升网络吞吐量;
buffer.memory实战篮球鞋推荐2021
#客户端缓冲区消息怎么写大小,kafka是什么如果topic比较大,且内存比较充足,可以适当调高这个参数,默认只为33554432(32MB)
retries
#生产失败后的重试次数,默认0,可以适当增加消息已发出但被对方拒收了。当重试超过一定次数后,如果业务要求数据准确性较消息免打扰是什么意思高,建议做容错处消息理。
retry.backafka是什么koff.ms
#生产失败后,重试时间间隔,默认100ms,建议不要设置太大或者太小。
```
除了一些核心参数优化外,我们还需要考虑比如topic的分区个数和topic保留时间;如果分区个数太少,保留时间太长,但是写入数据量非常大的话,可能造成以下问题:
> 1)topic分实战化训练区集中落在某几个broker节点上,导致流量副本失衡;
>
> 2)导致broker节点内部某几块磁盘读写超负载,存储被写爆消息已发出但被对方拒收了
#### 1.11.1 消费优化
消费最大的问题,并kafka和rabbitmq的区别且经常出现的问题就是消费延时,拉历史数据。当大量拉取历史数据时将出现大量实战教学免费阅读读盘操作,污染pagecache,这个将加重磁盘的负载,影响集群性能和稳定;
**可以怎样减少或kafka是什么者避免大量消费延kafka怎么读时呢?**
> 1)当topic数据量非常大时,建议消息一个分区开启一个线程去消费;
>
> 2)对topic消费延时添加监控告警,及时发现处理;
>
> 3)当topic数据可以丢弃时,遇到超大延时,比如单个分区延迟记录超过千万甚至数亿,那么可以重置topic的消消息免打扰是什么意思费点位进行紧急处理;【此方案一般在极端场景才使用】
>
> 4)避免重置topic的分区offset消息免打扰是什么意思到很早的位置,这可能造成拉取大量历史数据;
#### 1.11.2 Linux服务器参数优化
我们需要对Linux的文件句柄、pagecache等参数进行优化。可参考《[Linux Page Cache调优在Kafka中的应用](https:实战演练//mp.weixin.qq.ckafka消息队列om/s?__biz=MzI4NjY4MTU5kafka应用场景Nw==&mid=2247487568实战和手时间区别大么&idx=1&sn=fcd54d366b4e6ca049c43a3ce9d32ce4&scene=21#wechat_redirect)》。
### 1.12.硬件优化
**磁盘优化**
在条件允许的情况下,可以采用SSD固态硬盘替换HDD机械硬盘,解决机械盘IO性能实战教学免费阅读较低的问题;如消息免打扰是什么意思果没有SSD固态硬盘,则可以对服务器实战教学上的多块硬盘做硬RAID(一般采用RAID10),让broker节点的IO负载更加均衡。如果是HDD机械硬盘,一个brokerkafka应用场景可以挂载多块硬盘,比如 12块*4TB。
**内存**
由于Kafka属于高频读写型服务,而Linux的读写请求基本走的都是Page Cache,所以单节点内存大一些对性能会有比较明显的提升。一般选择256GB或者更高。
**网络**
提升网络带宽:在条件允许的情况下,网络带宽越大越好。因为这样网络带宽才不会成为性能瓶颈,最少也要达到万兆网络( 10Gb,网卡为全双工)kafka和rabbitmq的区别才能具备相对较高的吞吐量。实战篮球鞋推荐2021如果是单通道,网络出流量与入流量之和的上限理论值是1.25GB/s;如果是双工双通道,网络出入流量理论值都可以达到1.25GB/s。
网络隔离打标:由于一个kafka教程机房可能既部署有离线集群(比如HBa实战se、Spark、Hadoop等)又部署有实时kafka集群(如Kafka)。那么实时集群和离线集群挂载到同一个交换机下的服务器将出现竞争网络带宽的问题,离线集群可能对实时集群造成影响。所以我们需要进行交换机层面的隔离,让离线机器和实时集群不要挂载到相同的交换机下。即使有挂载到相同交换机下面的,我们也将进行网络通行优先级(金、银、铜、铁)标记,当网络带宽紧张的实战教学时候,让实时业务kafka原理优先通行实战篮球鞋排名
**CPU**
Ka实战教学免费阅读fka的瓶颈不在CPU,单节点一般有32核的CPU都足够使用。
### 1.13.消息提示音阿斗下载平台化
现在问题来了,前面实战篮球鞋推荐2021我们提到很多监控、优化等手段;难道我kafka和mq的区别们管理员或者业务用户对集群所实战篮球鞋推荐有的操作都需要登录集群服务器吗?答案当然是否定的,我们需要丰富的平台化功能来支持。一方面是为了提升我们操作的效率,另外一方面也是为了提升集群的稳定和降低出错的可能。
**配置管理**
黑屏操作,每次修实战改broker的server.proper消息已发出但被对方拒收什么意思ties配置文件都没有变更记录可追溯,有时可能因为有人修改了消息免打扰还能收到消息吗集群配置导致一些故障,却找不到相关记录。如实战和手时间区别大么果我们把配置管理做到平台上,每次变更都有迹可循,同时降低了变更出错的风险。
**滚动重启**
当我们需消息英语要做线上变更时,有时候需要对集群对多个节点kafka和mq的区别做滚动重启,如果到命令行去操作,那效率将变得实战教学免费阅读很低,而且需要人工去干预,浪费人力。这个时候我们就需要把这种重复性的工作进行平台化,提升我们的操作效率。
**集群管理**
集群管理主要是把原来在命令行的一系列消息免打扰是什么意思操作做到平台上,用户和管理员不再需要黑屏操作Kafka集群;这样做主要有以下优点:
> 提升操作效率;
>
> 操作出错概率更小,集群更安全;
>
> 所有操作有消息的拼音迹可循kafka和rabbitmq的区别,可以追溯;
集群管理主要包括:broker管理、topic管理、生产/消费权限管理、用户管理等
#### 1.13.1 mock功能
> 在平台上为用户的topic提供生kafka原理产样例数据与消费抽样的功能,用户可以不用自己写代码也可以测试topic是否可以使kafka教程用,权限是否正常;
>
> 在平台上为用户的topic提供生kafka和rabbitmq的区别产/消费权限验证功能,让用户可以明确自己的账号对某个topic有没有读写kafka消费的三种模式权限;
#### 1.13.2 权限管理
把用户读/写权限管理消息免打扰是什么意思等相关操作进行平台化。
##消息## 1.13.3 扩容/缩容实战教学
把broker节点上下线做到平台上,所有的上线kafka面试题和下线节点不再需要操作命令行。
#### 1.13.4 集群治理
> 1)无流量topic的治理,对集群中无流量topic进行清理,减少过多无用元数据对集群造成的压力;
>
> 2)topic分区数据大小治理,把topic分区数据量过大的topic(如单分区数据量超过100GB/天)进行梳理,消息提示音阿斗下载看看是否需要扩容,避免数据集中在集群部分节点上;
>
> 3)topic分区数据倾斜治理,避免客户端在生产消息的时候,指定消息的key,但是key过消息提示音阿斗下载于集中,消息只集中分布在部分实战篮球鞋排名分区,导致数据倾斜;
>
> 4)topic分区分散性治理,让topic分区分布在集群尽可能多的broker上,这样可以避免因topic流量突增,流量只集中到少数节点上的风险,也可以避免某个broker异常对实战t实战opic影响非常大;
>
> 5)topic分区消费延消息队列时治理;一般有延时消费较多的时候有两种情况,一种是集群性能下降,另外一种是业务方的消费并发度不够,如果是消费者并发不够的化应该与业务联系增加消费并发。
#### 1.13.5 监控告警
> 1)把所有指标采集做成平台可配置,提供统一的指标采集实战篮球鞋推荐2021和指标展示及告警平台,实现一体化监控;消息怎么写
>
> 2)把上下游业务进行关联,做成全链路监控消息已发出但被对方拒收什么意思
>
> 3)用户可以配置topic或者分区流量延时、突变等监控告警;
#### 1.13.6消息 业务大屏
业务大屏主要指标消息的近义词:集群个数、节点个数、日入流量大小、日入流量记录、日出流量大小、日出流量记录、每秒入流量大小、每秒入流量记录、每秒出流量大小、每秒出流量记录、用kafka消费的三种模式户个数、生产消息英语延时、消费延时、数据可靠性、服务可用性、数据存储大小、资源组个数、topic个数、分区个数、副本个数、消费组个数等指标。
#### 1.13.7 流量限制
把用户流量现实战篮球鞋推荐2021在做到平台,在平台进行智能限流处理。
#### 1.13.8 负载均衡
把自动负载均衡功能做到平台,通过平台进行调度和管理。
#### 1.13.9 资源预算
当集群达到一定规模,流量不断增长,那么集群扩容机器从哪里来呢?业务的资源预算,让集群里消息面的多个业务根据自己在集群中当流量去分摊整个集群的硬件成本;当然,独立集群与独立隔离的资源kafka消息队列组,预算方式kafka和mq的区别可以单独计算。
### 1.14实战篮球鞋推荐2021.性能评估
#### 1.14.1 单broker性能评估
我们做单broker性能评估实战教学漫画的目的包括以下几方面:
> 1)为我们进行资源申请评估提供依据;
>消息
> 2)让我们更了解集群的读写能力及瓶颈在哪里,针对瓶颈进行优化;
>
> 3)为我们限流阈值设置提kafka和mq的区别供依据;
>
> 4)为我们评估什么时候应该扩容提供依据;
#### 1.1kafka面试题4.2 topic分区性能评估
> 1)为我们创建topic时,消息已发出但被对方拒收什么意思评估应该指定多少分区合理提供依据;
>
> 2)为我们topic的分区扩容评估提供依据;实战篮球鞋
#### 1.14.3 单磁盘性能评kafka教程
> 1)为我们了解磁盘的真正读写能力,为我们选择更合适Kafka的磁盘类型提供依据;
>
> 2)为我们做磁盘流量告警阈值设置提供依据;
#### 1.14.4 集群规模限制摸底
> 1)我们需要了解单个集群规模的上限或者是元数据规模的上限,探索相关信息对集群性能和稳定性的影响;
>
> 2)根据摸底情况,评估集群节点规模的合理范围,及时预测风险,进行超大集群的拆分等工作;
###消息已发出但被对方拒收什么意思 1.15实战化训练 DNS+LVS的网络架构
当我们的集群节点达到kafka应用场景一定规模,比如单集群数百个broker节点,那么此时我们生消息免打扰还能收到消息吗产消费客户端指定bootstrap.servers配置时,如果指定呢?是随便选择其中几个broker配置还是全部都配上呢?
其实以上做法都不合适,如果只配置几个消息已发出但被对方拒收了IP,当我消息提示音阿斗下载们配置当几个broker节点下线后,我们当应用将无法连接到Kafka集群;如果配置所有IP,那更不现实啦,几百个IP,那么我们应该怎么做呢?
**方案:**采用DNS+LVS网络架构,最终生产者和消费者客户端只需要配置域名就可以啦。需要注意的是,kafka和mq的区别有新节点加入集群时,需要添加映kafka消息队列射;有节点下线时,需要从映射中踢掉,否则这批机器如果拿到其他的地方去使用,如果端口和Kkafka是什么afka的一样的kafka教程话,原来集群部分请求将发送到这个已经下线的服务器上来,造成生产环kafka教程境重点故障。
##实战教学 二、开源版本功能缺陷
RTMP协议主要的特点有:kafka原理多路复用,分包和应用层协议。以下将对这些特点进行详细的描述。
### 2.1 副本迁移
> 无法实现增量迁移;【我们已经基于2.1.1版本源码改造,实现了增量迁移】
>
> 无法实现并发迁移;【开源版本直到2.6.0才实现了并发消息免打扰是什么意思迁移】
>
> 无法实现终止迁移;消息免打扰还能收到消息吗【我们已经基于2消息的拼音.1.1版本源码改造,实现了终止副本迁移】【开源版本直到2.6.0才实现了暂停迁移,和终止迁移有些不一样,不会回滚元数据】
>
&实战篮球鞋推荐2021gt; 当指定迁移数据目录时,迁移过程中,如果把topic保留时间改短,topic保留时间针对正在迁移t实战教学漫画opic分区不生效,topic分区过期数据无法删除;【开源版本b消息提示音阿斗下载ug,目前还没有修复】
>
> 当指定迁移数据目录时,当迁移计划为以下场景时,整个迁移任务无法完成迁移,一直处于卡死状态;【开源版本bug,目前还没有修复】
>
> 迁移过程中,如果有重启broker节点,那个broker节点上的所有leader分kafka原理区无法切换回来,导致节点流量全部转移到其他节点,直到所有kafka是什么副本被迁移完毕后leader才会切换回来;【开源版本bug,目前还没有修复】。
```java
在原生的Kafka版本中存在以下实战篮球鞋推荐2021指定消息的近义词数据目录场景无法迁移完毕的情况,此版本我们也不决定修复次bug:
1.针对同一个topic分区,如果部分目标副kafka消费的三种模式本相比原副本是所属broker发生变化,实战教学漫画部分目标副本相比原副本是broker内部所属数据目录发生变化;
那么副本所属broker发生变化的那个目标副本可以正常迁移完毕,目标副本是在broker内部数据目录发生变化的无法正常完成实战化训练迁移;
但是旧副本依然可以正常提供生产、消费服务,并且不影响下一次迁移任务的提交,下一次迁移任务只需要把此topic分区的副本列表所属broker列表变更后提交依然可以正常完成迁移,并且可以清理掉之前未完成的目标副本;
这里假设topic yyj1的初始化副本分布情况如下:
{
"version":1,
"partitions":[
{"topic":"yyj","partition":0,"replicas":[1000003,1000001],"log_dirs":["/kfk211data/data31","/kfk211data/data13"]}
]
}
//迁移场景1:
{
"version":1,
"partitions":[
{"topic":"yyj","partition":0,"replicas":[1000003,1000002],"log_dirs":["/kfk211data/data32","/kfk211data/data23"]}
]
}
//迁移场景2:
{
"version":1,
"partitions":[
{"topic":"yyj","partition":0,"replicas":[1000002,1000001],"log_dirs":["/kfk211data/data22","/kfk211data/data13"]}
]
}kafka是什么
针对上述的topic yyj1的分布分布情况,此时如果我们的迁移计划为“迁移场景1”或迁移场景2“,那么都将出现有实战化训练副本无法迁移完毕的情况。
但是这并不影响旧副本处理kafka生产、消费请求,并且我们可以正常提交其他的迁移任务。
为了清理旧的未迁移完成的副本,我们只需要修改一次迁移计划【新的目标副本列表和当前分区已分配副本列表完全不同即可】,再次提交kafka消费的三种模式迁移即可。
这里,我们依然以上述的例子做迁移计划修改如下:
{
"version":1,
"partitions":[
{"topic":"yyj","partition":0,"replicas":[1000004,1000005],"log_dirs":["/kfk211data/data42","/kfk211data/data53"]}
]
}
这样我们就可以正常完成迁移消息英语
```
### 2.2 流量实战教学协议
限流粒度较粗,不够灵kafka消费的三种模式活精准,不够智能。
**当前限流维度组合**
```java
/config/users//clients/
/config/users//clients/
/config/users/
/config/users//clients/
/config/users//clients/
/config/users/
/config/clie消息免打扰是什么意思nts/
/config/clients/
```
**存在问题**
当同一个broker上有多个用户同时进行大量的生产和消费时,想要让broker可以正常运行,那必须在做限流时让所有的用户流量阈实战化训练值之和不超过broker的吞吐上限;如果超过broker上限,那么broker就存在被打挂的风险;然而,即使用户流量没有达到broker的流量上限,但是,如果所有用户流量集中到了某几块盘上,超过了磁盘kafka和rabbitmq的区别的读写负载,也会导致所有生产、消费请求将被实战篮球鞋推荐2021阻塞,broker可能处于假死状态。
**解决方案**
> (1)改造源码,实现单个broker流量上消息已发出但被对方拒收了限限制,只要流量达到bro消息免打扰还能收到消息吗ker上限立即进行限流处理,所有往这个broker写的用户都可以被限制住;或者对用户进行优先级实战教学漫画处理,放过高优先级的,限制低优实战教学免费阅读先级的;
>
> (2)改造源码,实现broker上单块磁盘流量上限限制(很多时候都是流量集中到某几块磁盘上,导致没有达到broker流量上限却超过了单磁盘读写能力上限),只要磁盘流量达到上限,立即进行限流处理,所有往这个磁盘写的用户都可以被限制住;或者对用户进行优先级处理,放过高优先级的,限制低优先级的;
>
> (3)改造源码,实现topic维度限流以及对topic分区的禁写功能消息的拼音
>消息;
> (4)改造源码,实现用户、broker、磁盘、topic等维度组合精准限流;
## 三、kafka发展趋势
3.1[Kafka社区迭代计划](https:kafka是什么//cwiki.apache.org/confluence/display/KAFKA/Fukafka应用场景ture+消息的近义词release+plan)
3.2[逐步弃用ZooKeeper(KIP-500)](https://cwiki.apache.org/confluence/display/KAFKA/KIP-500%3A+Replace+ZooKeeperkafka消息队列+with+a+Selkafka怎么读f-Managed+Metadata+Quorum)
3.3[controller与broker分离,引入raft协议作为controller的仲裁机制(KIP-630)](https://cwiki.apache.org/confluence/display/KAFKA/KIP-630%3A+Kafka+Raft+Snapshot)
3.4[分层存储(KIP-405)](https://cwiki.apache.org/ckafka原理onfluence/display/KAFKA/KIP-405%3A+Kafka+Tiered+Storage)
3.5消息免打扰是什么意思[可以减少topic分区(KIP-694)](https://cwiki.apache.org/confluenkafka和mq的区别ce/display/KAFKA/KIP-6消息队列94%3A+Support+Reducing+Partitions+for+Topi消息的近义词cs)
3.6[MirrorMaker2精确一次(KIP-656)](https://cwiki.apache.org/confluence/display/KAFKA/KIP-656%3A+MirrorMaker2+Exactly-onckafka和mq的区别e+Semantics)
3.7[下载与各版本特性说明](http://kafka.apache.org/downloads)
3.8[Kafka所有KIP地址](https://cwiki.apac消息已发出但被对方拒收什么意思he.org/confluence/di消息已发出但被对方拒收了splay/KAFKA/消息怎么写Kafka+Improvement+Proposals)
## 四、如何贡献社区
4.1 哪些点可以贡献
[http://kafka.apache.org/contributing](http实战篮球鞋推荐2021://kafka.apache.org/contributikafkang)
4.实战和手时间区别大么2 wiki贡献地址
[https://cwiki.apache.org/confluence/dashboard.action#all-updates](ht消息的近义词tps://cwiki.kafka消费的三种模式a消息队列pache.org/confl实战教学漫画uence/dashboard.ac实战篮球鞋tion#all-updat消息已发出但被对方拒收了es)
4.3 issues地址实战化训练
1)[https://issues.apache.org/jira/projects/KAFKA/issues/KAFKA-10444?filter=allopenissues](https://issues.apache.org/jira/projects/KAFKA/iss实战教学漫画ues/KAFKA-10444?filter=allopeni实战化训练ssues)
2)[https://issues.apache.org/jira/secure/BrowseProjects.jspa?selectedCategory=all](https消息的近义词://issues.apache.org/jira/secure/B实战化训练rowseProjects.jspa?selectedCategory=all)
4实战篮球鞋推荐.4 主要committers
[http://kafka.apache.org/committers](http://kafka.apache.org/committers)
> 作者:v实战演练ivo互联网服务器团队-Yang Yijun