使用 NGINX 实现 Klaw 的高可用性

使用NGINX为Klaw启用高可用性。

2023年7月13日 -> 二零二三年七月十三日

使用NGINX实现Klaw的高可用性

Klaw推出了高可用性功能,能够消除单一故障点并将停机时间最小化或降至零。

Klaw是Aiven開源項目之一,許多組織都使用它來管理和控制Apache Kafka®的ACL和權限。確保Klaw具有容錯能力並能夠無縫且有效地處理請求是非常重要的。

在某些组织中,Klaw管理着10至100个Kafka集群,并且明显地理解了应用程序的关键性,需要意识到其停机时间的重要性。基于这一点,Klaw需要使得多个复制实例可用,并且需要以故障转移模式或主动/主动模式来运行。

为什么要将Klaw配置为高可用性?

在进入讨论什么是高可用性之前,让我们先理解为什么对于Klaw来说,高可用性是如此重要。Klaw在管理和监控Kafka集群方面是不可或缺的,因此确保对潜在故障的韧性是最重要的。停机时间可能导致轻微不便到收入损失和声誉下降等严重后果。Klaw的高可用性解决了这些重要问题:

    • ダウンタイムの最小化: **単一障害点を排除し、システムの冗長性を確保することで、KlawのHAはダウンタイムを最小化または排除します。

 

    • スケーラビリティ: **ワークロードが増加するにつれて、KlawはHA構成のおかげで、増加するユーザーベースに対応し、より多くのリクエストを処理することができます。

 

    • データの可用性: **コンポーネントに障害が発生した場合でも、データが常に利用可能であることを保証することが重要です。HAは、データが異なるサーバー間で複製されることを保証し、データ損失から保護します。

 

    • サービス継続性: **災害やシステム障害が発生した場合でも、HAはサービスの中断がなく、業務が滞りなく継続されることを保証します。

 

    一貫した可用性と信頼性は、顧客満足度と顧客維持に不可欠なユーザーエクスペリエンスを向上させます。

在高可用性环境下部署Klaw

在版本2.4.0之前,由于Klaw内部缓存管理方法的架构限制,无法在高可用性设置下部署Klaw。因此,Klaw只能作为一个实例在生产环境的任何环境中部署。

为了避免频繁调用庞大的数据库,Klaw将大部分的认证相关数据保存在缓存中。这样可以有效地减少等待时间,使用户能够立即从应用程序中获得响应。

为了应对这个问题,Klaw的开发团队引入了一项功能,可以检测到在高可用性模式下部署的Klaw的所有可用实例,并重置它们的缓存。

両方のインスタンスにキャッシュを持つKlawのマルチインスタンス展開を示す図。リクエストが最初のインスタンスにヒットすると、2番目のインスタンスのキャッシュがリセットされる

在上述示例中,Klaw用户将一个新团队添加(应用)到实例1。Klaw会将此信息保存在缓存中,并触发其他实例上的新缓存重置请求,以更新本地缓存。

Klaw是依赖于用户、团队、角色、权限、集群、环境和主题信息的元数据。Klaw的用户每天有50人到500人以上访问应用程序,并请求主题、订阅、模式和连接器。在数据库查询中处理所有请求既不高效,也不友好于数据库。因此,Klaw将所有信息存储在内部内存中,并在需要更改时进行重置。这样,Klaw可以无缝运行,同时查询实时数据,而不会因为用户请求失败。

高可用性的优势

请参阅 Klaw博客,了解将NGINX用作负载均衡器并在高可用性模式下使用的具体实施模式。

高可用性有以下优点:

    • ロードバランシング:**システムがより高いワークロードと膨大なトラフィックを処理できるようにします。例えば、50,000のKafkaトピックとその上のACLが何度も往復するようなリクエストでは、パフォーマンスを維持するためにロードバランシングが必要です。

 

    • クラスタ内のサーバーに障害が発生した場合、別のクラスタにある複製されたサーバーが、最初に障害が発生したサーバーに割り当てられたワークロードをシームレスに引き継ぐことができます。この冗長性により、セカンダリ・コンポーネントが障害発生時にプライマリ・コンポーネントの責任を引き受けるフェイルオーバーが可能になると同時に、パフォーマンスへの悪影響を最小限に抑えることができます。

 

    最小接続負荷分散: **最小接続負荷分散は、一部のリクエストの完了に時間がかかる状況において、アプリケーション・インスタンスの負荷をより公平に制御することができます。

详细信息请点击此处

关于Aiven的开源项目Klaw,它用于外部管理Apache Kafka的ACL和配置,您可以在Klaw项目的网站或GitHub组织上详细了解。如果对Klaw有任何问题,请随时通过GitHub问题提出或通过社区论坛与我们联系。

Klaw团队是Aiven开源项目办公室支持和赞助的众多开源维护团队之一。Aiven还专注于开发PGHoard(PostgreSQL®备份服务)和Karapace(Apache Kafka® REST代理)。

如果想尝试 Klaw 或 Aiven 的其他开源项目,建议您注册 Aiven for Apache Kafka® 的免费试用。

广告
将在 10 秒后关闭
bannerAds