大型在线应用,使用k8s运行。规模可能是日活跃用户50万。
k8s里面的应用需要消息功能-Pub/Sub,有这些选项:
- 卡夫卡
- RabbitMQ
- Redis
卡夫卡
它需要 zookeeper 并且在 os 上运行良好取决于磁盘 I/O。那么如果将其安装到k8s集群中,如何呢?性能会差吗?
而且,如果将 Kafka 保留在 k8s 集群之外,从 k8s 集群内部的应用程序连接 Kafka,那么性能如何?他们在不同的层,不会慢吗?
RabbitMQ
比Kafka慢,但是对于一个日活跃用户50万的应用来说,够用吗?如果是这样,也许这是一个不错的选择。
Redis
这是另一种选择。也许是最简单的一个。但是从互联网上我了解到它有时会丢失消息。如果是真的,那就太糟糕了。
所以,最重要的是,在 k8s 上使用 Kafka(也有 zookeeper),在这个用例中好还是不好?
最佳答案
是的,在 Kubernetes 上运行 Kafka 很棒。看看这个例子:https://github.com/Yolean/kubernetes-kafka .它包括 ZooKeeper 和 Kafka 作为 StatefulSet
。
附言。在 Kubernetes 上运行您问题中的任何服务都会很愉快。您可以通过 Google 搜索服务名称和“kubernetes”并找到示例 list 。这里有很多例子:https://github.com/kubernetes/charts .
关于redis - 在 Kubernetes 上运行 Kafka 是一种好方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47949370/