对于大型在线应用程序,请使用k8s来运行它。规模可能每天活动用户50万。
k8s内部的应用程序需要消息传递功能-pub/sub,有以下选项:
Kafka
兔子MQ
redis公司
Kafka
它需要zookeeper,在操作系统上运行的好坏取决于磁盘i/o。那么如果把它安装到k8s集群中,怎么做呢?性能会更差吗?
如果将kafka保持在k8s集群之外,从k8s集群内的应用程序连接kafka,那么性能如何?他们在不同的层,不会慢吗?
兔子MQ
它比kafka慢,但是对于一个日常活动用户来说,它足够好吗?如果是的话,也许是个不错的选择。
redis公司
这是另一种选择。也许是最简单的。但从互联网上我知道它有时会丢失信息。如果是真的,那就太可怕了。
所以,最重要的是,在k8s上使用kafka(也与zookeeper一起使用),在这个用例中是好是坏?
4条答案
按热度按时间rks48beu1#
对于Kafka,你可以在这里找到一些建议。kubernetes1.7+支持本地持久卷,这可能有利于kafka部署。
bzzcjhmw2#
digitalocean中kubernetes上kafka/zookeeper的另一个简单配置,可外部访问:
https://github.com/stanislavko/k8s_digitalocean_kafka
您可以通过常规二进制协议从aws/do/gce外部连接到kafka。连接为纯文本或sasl\u纯文本(用户/密码)。
kafka集群是statefolset,所以您可以轻松地扩展集群。
muk1a3rh3#
是的,在库伯尼特斯上运行Kafka是很棒的。看看这个例子:https://github.com/yolean/kubernetes-kafka. 包括Zookeeper和Kafka
StatefulSet
s。另外,在kubernetes上运行您所问的任何服务都是令人愉快的。您可以在google上搜索服务的名称和“kubernetes”,并找到示例清单。这里有很多例子:https://github.com/kubernetes/charts.
x759pob24#
您还可以查看以下项目:
https://github.com/enmasseproject/barnabas
这是关于在Kubernetes和openshift上运行Kafka的。它提供了使用具有持久卷或仅在内存中的statefulset进行部署(用于开发或仅用于测试目的)。它还提供了kafka connect和prometheus metrics的部署。