您当前的位置:首页 >> 家居装修

如何零宕机将本地 Kafka 集群迁到上云?

2023-02-27 12:16:12

来进行切分。例如,在 CI/CD 燃气和样本迁至范例里,客户服务层级协议是有别于制造客户服务的。恳都只,由于每个网络服务的主导作用各有不同,并非所有网络服务都包括同样个数的 Kafka 空降兵。

Greyhound(Wix 自己的 Kafka SDK)懂得当客户服务最简单在目前直通的网络服务空降兵不能时限,该如何妥善处理这个原因并尽比率减少愈演愈烈短路。

水流比率用尽的网络服务?

为了使 2000 个透客户服务的制造者和产品销售相当容易迁至到多个管理制度的单 Kafka 空降兵,起初的所设计比如说首先将每个网络服务(data center,DC)的水流比率全部用尽。

这样的所设计也就是说只均不能将制造者和产品销售的直达确实操作到在此之后 Kafka 空降兵。因为 Wix 透客户服务通过 Greyhound 层与 Kafka 空降兵隔开,所以只要在 Greyhound 的制造装配就可以愈发改直达(同时必要仅仅有一个网络服务受到制约)。

虽然这种所设计相当最简单,但是很遗憾,它不能能借助和执行。

有此表理由:

有些客户服务只协同作战在其里一个网络服务,并且无法来进行迁至。这种所设计也就是说,(只可能用到两种相比较大局)要么全有要么全无,并且当水流比率返回时,就有可能接踵而来巨大的风险。未被操作的楔形范例可能有可能遭受样本取走。网络服务的水流比率不能在内都一段整整内基本上用尽,因为这将相当大愈发高一些客户服务的断线风险。

取而代之的是,计划了一种在此之后所设计,之外在实时水流比率前夕来进行迁至。

零宕机迁至

在实时水流比率里执行迁至,就也就是说不能来进行细致的规划和施行。

这个步骤均不能逐步来进行(一次情形下对少比率透客户服务归因于制约,从而增大愈演愈烈短路时的“爆炸表面积”),并且可以借助基本上的定时化,从而增大人为失误,其里之外定时化的回滚步骤。

首先迁至制造者(在产品销售之后)并非一种预设,这就也就是说要花大比率的整整来必要所有的产品销售都已妥善处理好了自转交空降兵里找到的所有记事,并并能必要地操作到在此之后空降兵基调。这有可能在妥善处理步骤里导致更大的过长,并且可能有可能危害某些 OTLP 业务流和浏览器。此外,如果无法样本取走,由于一些意想不到的原因而回滚产品销售是不能能的。

引人注目的 Kafka 产品销售在必要无法消息取走和总和程度的再妥善处理记事的情形下,不能首先来进行操作。唯一的法则是将所有消耗的基调记事从自己的伺服器空降兵激活到能够管理制度的单空降兵。

激活

为了必要在迁至步骤里不能能会用到消息妥善处理的取走,我们变成立了一个都由的激活客户服务。一旦所有的产品销售基调被确定,激活器(replicator)客户服务就有可能被要求在适当的云空降兵里变成立基调,并开始消费来自自转交空降兵的记事,并将它们生变成到能够空降兵里。

产品销售迁至

为了促进产品销售迁至,激活器还坚持为每个里区之外绝对值可定义,这样 Greyhound 产品销售就可以从正确的绝对值开始妥善处理云空降兵里的记事——该绝对值是从自转交空降兵里第一个未提交的绝对值可定义而来的。

如果用到败北的情形,选曲器并能要求产品销售稳定下来到自转交空降兵。

所有这些选曲器与产品销售间的通信都是通过都由的 Kafka 迁至基调借助的。Greyhound 产品销售在重启时就开始监控它们。

制造者迁至

一旦某个基调的所有产品销售都迁至了,就可以迁至其制造者。

起初的迁至所设计均不能催促制造者操作空降兵直达,同时仍然给予传入的制造催促。这就也就是说将这些催促CPU到内存里,而且被人们认为相当危险性。

最后,我们设想了一种愈发加方便的所设计方案,它比如说 Wix 的渐进的单 Kubernetes 协同作战步骤。每个在此之后 pod 只有可能在它的全部健康试验较长整整时,才有可能开始给予传入的催促,之外与 Kafka 的直达。因为这个步骤都是逐步来进行的,所以总有可能有“据传”的 pod 在直通,所以客户服务作为一个基本,总是能给予到传入的催促。

在 pod 重启时,Greyhound 制造者有可能最简单地发还给给样本特来确定他们要直达的空降兵。这要比快照的空降兵操作和记事CPU愈发加最简单。这就也就是说可以必要地来进行迁至,不能能会用到催促取走,并且客户服务可以延续高可用性。

激活的停滞

只有在迁至了制造者最后,才能终止对基调的激活。但是要想迁至制造者,就得把其所有的基调产品销售都迁至出去。

正因如此,许多基调有来自各有不同客户服务的多个产品销售,这就也就是说,激活器产品销售均不能妥善处理和激活的水流比率愈发多。

这就归因于了一个原因,由于我们相较较据传的自转交 Kafka brokers 取而代之版本的技术开发局限性,使得产品销售并能妥善处理的基调数比率更少。在几次愈发进一步减低 message.max.bytes 的结果都适得其反(参阅 KAFKA-9254 bug),并随之而来严重的原因后,我们暂时最简单地减低激活器产品销售,并在它们间特罗斯季亚涅齐妥善处理要激活的基调。

迁至之外——结构上产品销售控制

这种“有水流比率”的迁至所设计为快照转变 Greyhound 产品销售的装配或状况,之外了很多在此之后不太可能,而无均需在制造里采用在此之后取而代之版本。

以前,我们早已有了基础设施,使 Greyhound 产品销售并能监控传入的命令来转变状况或装配。这样的命令可以之外:

目前,这些都是理论上的,但借助早已存在的迁至基础设施就可以相当容易地借助。

最佳法则论和预设

此表是取得变成功来进行 Kafka 空降兵迁至的最佳法则论和技巧详细信息:

变成立一个CGI,自行检验状况,如果无法降至预估状况就停止

让迁至步骤前提地定时化是关键性,所以让CGI并能自行检验是否并能进入作匆忙,这有可能相当大地加速迁至步骤。而另一方面,定时回滚和自我修缮是无法做到的,因此,还是要交给人工干预。

匆忙好随时可以用于回滚

无论你的迁至文档试验得有多好,制造环境都是不确定的。为每个前期匆忙一个现变成的回滚预设是相当举足轻重的。一定要提前匆忙好,并在投入使用迁至之后来进行前提多的试验。

先从试验 / 里继基调和无制约基调正因如此

由于记事有可能取走,或者稳定下来步骤可能有可能很悲伤,因此迁至步骤有可能相当危险性。恳请保障用试验基调开始试验你的迁至文档。这样才能获得确实的检验。借助试验基调,通过将主观的制造记事激活到特定的试验领域里,实际嘲讽制造基调。这样,在产品销售迁至时,万一愈演愈烈败北,也不能能会制约到制造,但是有可能给你一个愈发加主观的制造虚拟。

变成立自定义的指标头灯,以结果显示近期和演变的状况

即便你变成立了一个定时化的、基本上无人值守的迁至步骤,你也不能并能监视所愈演愈烈的一切,并且当原因愈演愈烈时,你包括具体的机器可以来进行调查。一定要准备好匆忙好自定义的监视头灯,以确实地结果显示你正在迁至的产品销售和制造者的近期和上曾状况。

在右图里,我们可以显露出,制造者是如何取得变成功地从自转交空降兵操作到管理制度的单空降兵的(随着愈发多的 Pod 被再重启并读取在此之后装配,因此吞吐比率有可能增大)。

保障自转交 Kafka 代理是不断愈发在此之后的软件取而代之版本

因为我们的自转交 Kafka brokers 无法用于不断愈发在此之后的软件取而代之版本,所以在我们多次试图愈发高 message.max.bytes 的值时,我们最终还是愈演愈烈了一个制造肇事(简述本文的“激活的停滞”之外)。我的劝告是,先愈发取而代之自转交空降兵 Kafka brokers 取而代之版本。如果不是不断愈发取而代之取而代之版本,那多于也要安装不断愈发在此之后的软件。

总 结

我们借助 Greyhound 和专用选曲客户服务和CGI,以便在实时水流比率前夕以无缝方的单借助定时、必要和逐步的迁至。

这可不是一件最简单的事情。如果你可以充分借助网络服务基本上用尽水流比率的整整,或者可以承受得住妥善处理的断线整整,那么我强烈建议将制造者和产品销售操作到取而代之空降兵,而不是首先激活样本。这样的所设计愈发加容易,你也可以浪费愈发多的整整。

否则,当你在水流比率下来进行迁至时,你不能小心地按照执行的次序(产品销售在制造者之后 / 最后)来进行迁至,并且要必要你明白这个决策者的后果(回滚的灵活性,取走样本的可能)。

前面你有可能想到一张流程图,使你容易理解各种选取。

原作者讲解:

Natan Silnitsky,服务于于 Wix,后故又称基础设施开发者。

原文页面:

摩托罗拉前员工借助bug越权采访营收,判处死刑一年;马斯克拟控股公司收购博客后将文档放于GitHub;阿里云人事大变动 | Q讯息

一边在大厂一线搬砖瓦、一边操着CTO的心没用Debian:一位基本上里年程序员的Debian十年路

ClickHouse为啥在字节跳动能这么火?| 表扬技术开发制作组访谈录

打手不快喊话:做KubernetesDebian实习无法在大厂内晋升

活动中选

2022 年第一波补贴来啦!超多好礼 0 元预约发放,试行即还给~

摩托罗拉 FreeBuds Pro、JBL 摇滚乐金砖瓦、竹叶米家平板养生琢、竹叶加湿器、InfoQ GEEK 抱枕

点个在看少个 bug👇

艾拉莫德片可以治什么病
西安妇科专科医院哪好
宝宝拉肚子吃什么药好
宁波看白癜风哪家医院比较好
西安哪家医院做人流最好
相关阅读
友情链接