最近在PayPal工程博客上的一篇文章解释了如何让Kafka达到这个水平。
Kafka 系统有三个主要部分:
生产者和消费者是发送和接收消息的部分。他们使用用不同编程语言编写的自定义库来完成此任务。
代理是从生产者那里接收消息,存储它们,然后将其发送给消费者的服务器。
ZooKeeper服务器跟踪配置数据并帮助代理保持同步。PayPal仍然更喜欢ZooKeeper而不是KRaft,尽管保持这些服务器运行更难。
PayPal在全球运营着1,500多个经纪人,并托管了20,000多个主题。
这些是他们为使这一切成为可能而采取的主要策略:
集群管理:PayPal 创建了一个动态处理这些地址的服务,而不是为其代理提供固定地址
访问控制列表(ACL):PayPal设置系统,确保只有授权的应用程序才能访问特定的Kafka集群和主题,增强安全性。
监控和警报:PayPal 获得大量关于其 Kafka 集群工作情况的数据,以确保它们的可靠性。如果发生奇怪的事情,会发出警报,使团队更容易立即处理问题。
QA 环境:PayPal构建了一个单独的副本世界(QA 环境),开发人员可以在其中自由测试内容,而不会影响实际设置。
主题入职:团队必须提出开始新主题的请求。在批准这些请求之前,PayPal有一个 Kafka 团队来查看它们,确保他们可以处理它们并设置所需的任何安全措施。