我们有几种使用像Solr,Storm,Kafka,Hbase等动物园管理员的软件。
有两个选项可以安装zookeeper群集(超过1个节点):
哪个是群集稳定性的更好选择?请注意,在这两种情况下,我们的zookeeper集群中的机器数量总是奇数,而不仅仅是一台机器。
看起来嵌入式选项更容易设置并且更好地使用机器,但外部选项看起来更稳定,因为丢失单个机器意味着只丢失一个组件(嵌入式zookeeper中的机器丢失意味着丢失了zookeeper节点以及Solr,Storm,Kafka的工作节点,无论情况如何)。
在生产中运行动物园管理员以获得最大稳定性的行业标准是什么?
答案 0 :(得分:1)
Zookeeper是Kafka集群的关键组件,但自从新一代客户端的实现以来,ZK上的负载已经大大减少,现在只能由集群本身使用。尽管负载通常不是很高,但它可能对延迟很敏感,因此最佳做法是在专用计算机上运行Zookeeper集合,并最佳地使用专用磁盘用于ZK事务日志以避免IO争用。
通过使用更大的Zookeeper集合,您可以获得弹性,但这也会增加群集内的通信,并且您可能会失去一些性能。由于Zookeeper使用简单多数表决,因此需要奇数个节点才能使其有意义。 3节点集合允许丢失1个节点而不会产生影响,5节点集合允许丢失2个节点,依此类推。
实际上,我看到小型,低工作负载的集群运行得非常好,Zookeeper安装在与Kafka节点相同的机器上,但如果您的目标是获得最大的稳定性并增加流量,则建议使用单独的集群。
答案 1 :(得分:0)
您应该考虑自己不鼓励在生产中使用内部ZooKeeper。
有外部动物园管理员,如果动物园管理员合奏(两个或更多)最好 如果你有一个zookeeper节点,它可能会在它关闭时产生问题。
如果您有zookeeper节点的集群设置,并且如果一个zookeeper节点发生故障,则剩余的大多数节点正在运行将继续工作。
答案 2 :(得分:0)
对于SolrCloud,我们强烈建议Zookeeper是外部的,并且至少有三个。
这并不意味着它不能在与Solr相同的服务器上运行,但它意味着你应该 NOT 使用Solr本身可以启动的zookeeper服务器,嵌入在自身内。
这里有一些与性能有关的信息和涉及动物园管理员的SolrCloud:
https://wiki.apache.org/solr/SolrPerformanceProblems#SolrCloud
在与Solr在同一台计算机上运行时,是否需要完全独立的计算机,甚至是zookeeper数据库的单独磁盘,非常取决于SolrCloud安装的特性。如果您的索引非常小并且查询负载很低,那么您可以将zookeeper放在相同的计算机甚至相同的磁盘上。
对于你提到的其他服务,我不知道推荐是什么。