【Kafka官方文档翻译】5.1.5. 老版本升级

官文原文地址:https://kafka.apache.org/0101/documentation.html#upgrade

从 0.8.x,0.9.x 或 0.10.x 升级到 0.10.1.0

0.10.1.0 在 wire protocol 上有些变化。通过下面推荐的滚动升级计划,你能保证在升级过程中无需停机。但是,请在升级之前查看0.10.1.0版本显著的变化
  注意:因为引入了新的协议,在升级客户端之前请先升级Kafka集群(即:0.10.1.x 的客户端只支持 0.10.1.x 或更高版本的 broker,而 0.10.1.x 的 broker 支持老版本的客户端)

对于滚动升级:

1. 更新所有代理服务器上的 server.properties 文件,添加以下属性:

inter.broker.protocol.version=CURRENT_KAFKA_VERSION (例如 0.8.2.0, 0.9.0.0 or 0.10.0.0)
log.message.format.version=CURRENT_KAFKA_VERSION (了解此配置做什么的详细信息参见 [升级后潜在的性能影响](https://kafka.apache.org/0101/documentation.html#upgrade_10_performance_impact) )

2. 逐一升级代理服务器:关闭代理,更新代码,并重新启动。
  3. 一旦整个群集升级成功,通过编辑 inter.broker.protocol.version 将其设置为0.10.1.0 的协议版本。
  4. 如果以前的消息格式为0.10.0,改变 log.message.format.version 至 0.10.1(这是一个无效操作,因为0.10.0,0.10.1和0.10.2的消息格式相同)。如果以前的消息格式版本低于 0.10.0,不要改变log.message.format.version – 这个参数只能在所有的消费者都已经升级到 0.10.0.0 或更高版本之后才能改动。
  5. 逐一重新启动代理服务器使新协议版本生效。
  6. 如果这时 log.message.format.version 仍比 0.10.0 低,等到所有的消费者都已经升级到 0.10.0 或更高版本,然后更改每个代理服务器的 log.message.format.version 到0.10.1,然后逐一重新启动。
  注意:如果愿意接受宕机,可以简单地把所有的代理服务器关闭,更新代码,然后重新启动他们。他们将默认使用新的协议。
  注意:改变协议版本并重新启动可以在代理服务器升级之后的任何时间做,没有强制必须立刻重启。

0.10.1.0 的潜在突破变化
  • 日志保留时间不再基于日志段的最后修改时间。它将基于日志段中消息的最大时间戳。
  • 日志滚动时间不再取决于日志段创建时间。它将基于消息的时间戳。切确地说,如果段中的第一个消息的时间戳为 T,则当新消息的时间戳大于或等于 T + log.roll.ms 时,日志将被推出。
  • 0.10.0 的打开文件处理程序将增加约33%,因为每个段都添加了时间索引文件。
  • 时间索引和偏移索引共享相同的索引大小配置。 由于每次索引条目是偏移索引条目的大小的1.5倍。 用户可能需要增加 log.index.size.max.bytes 以避免频繁的日志滚动。
  • 由于索引文件数量增加,在一些具有大量日志段(例如> 15K)的代理服务器中,服务器启动期间的日志加载过程可能会更长。 根据我们的实验,将 num.recovery.threads.per.data.dir 设置为 1 可能会减少日志加载时间。
0.10.1.0 的显著变化
  • 新的Java消费者不再是测试版,我们推荐它用于所有新开发。 旧的Scala消费者仍然支持,但在下一个版本中将不再使用它们,并将在未来的主要版本中删除。
  • 使用新的消费者工具像 MirrorMaker 和 Console Consumer 不再使用 --new-consumer--new.consumer 开关,通过 Kafka broker 的连接而不再通过连接 ZooKeeper 集群。另外,旧的消费者使用控制台消费已被弃用,并将在以后的主要版本中被删除。
  • kafka 集群现在可以通过 cluster id 来唯一标识。当代理服务器升级到 0.10.1.0 时将自动生成。cluster id 可以使用在 kafka.server:type=KafkaServer,name=ClusterId ,它是元数据响应的一部分,Serializers, client interceptors 和 metric reporters 通过实现 ClusterResourceListener 接口可以接收 cluster id。
  • BrokerState "RunningAsController" (value 4) 已经被删除,因为一个 bug,代理服务器在这个状态的时间非常短暂就会变为退出状态,因此删除的影响是最小的。检测给定的代理服务器是否是控制器推荐的方式是通过 kafka.controller:type=KafkaController,name=ActiveControllerCount 来衡量。
  • 新的Java消费者现在允许用户通过分区上的时间戳搜索偏移量。
  • 新的Java消费者现在支持后台线程心跳。有一个新的配置 max.poll.interval.ms 控制在调用之前消费者主动离开组的最大时间(默认为5分钟)。request.timeout.ms 的值必须大于 max.poll.interval.ms 的值,因为这是 JoinGroup 请求在消费者重新平衡时在服务器上阻塞的最长时间,因此我们已更改其默认值到5分钟以上。 最后,session.timeout.ms 的默认值已经被调整到10秒,max.poll.records 默认值已经被更改为500。
  • 当使用授权并且用户对 topic 没有描述授权时,代理服务器将不会再将 TOPIC_AUTHORIZATION_FAILED
    错误返回给请求,因为这会泄漏 topic 名称。而是返回 UNKNOWN_TOPIC_OR_PARTITION 错误代码。 这可能会导致生产者和消费者意外的超时或延迟,因为Kafka客户端通常会重新自动重复未知的主题错误。 如果怀疑这可能发生,应该查看客户端日志。
  • 获取响应默认情况下具有大小限制(消费者为50 MB,复制为10 MB)。 现有的每个分区限制也适用(1 MB的消费者和复制)。 请注意,这两个限制都不是绝对最大值,如下一节所述。
  • 如果发现大于响应/分区大小限制的消息,消费者和副本可以进行。 更具体地说,如果fetch的第一个非空分区中的第一个消息大于两个或两个限制,则该消息仍将被返回。
  • 重载的构造函数被添加到 kafka.api.FetchRequest 和 kafka.javaapi.FetchRequest,以允许调用者指定分区的顺序(因为v3中的顺序是重要的)。 先前存在的构造函数已被弃用,并且在发送请求之前将分区进行混洗,以避免出现饥饿问题。
新协议版本
  • ListOffsetRequest v1支持基于时间戳的精确偏移搜索。
  • MetadataResponse v2引入了一个新的字段:“cluster_id”。
  • FetchRequest v3支持限制响应大小(除了现有的每个分区限制),如果需要进行更新,则返回大于限制的消息,并且请求中分区的顺序很重要。
  • JoinGroup v1引入了一个新的字段:“rebalance_timeout”。

从 0.8.x 或 0.9.x 升级到 0.10.0.0 请参考官方原文资料

从 0.8.0, 0.8.1.X 或 0.8.2.X 升级到 0.9.0.0 请参考官方原文资料

从 0.8.1 升级到 0.8.2 请参考官方原文资料

从 0.8.0 升级到 0.8.1 请参考官方原文资料

从 0.7 升级 请参考官方原文资料

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,928评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,192评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,468评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,186评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,295评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,374评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,403评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,186评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,610评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,906评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,075评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,755评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,393评论 3 320
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,079评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,313评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,934评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,963评论 2 351

推荐阅读更多精彩内容