MongoDB复制集和ELB

Tam*_*mpa 6 load-balancing mongodb amazon-web-services pymongo

我使用ELB在aws上有一个主要和两个辅助.阅读和写作的最佳做​​法是什么?

1)我是否创建了一个单独的LB,ELB中的所有节点都带有主要和辅助节点,并让python(pymongo)处理排序以进行读写操作吗?

2)或者在ELB下为所有辅助设备做一个位置并为弹性IP分配一个主要设备?这将需要一个脚本来跟踪节点类型并在故障转移时重新分配.

我希望选项1.

谢谢

she*_*man 5

这取决于你的情况.使用mongodb驱动程序,您无需跟踪客户端连接到哪个节点 - 您只需通知它有关副本集的信息,它将自动连接到主服务器并处理故障转移.

如果要分发读取负载,则可以设置读取首选项以允许应用程序从辅助节点读取,但您只能写入主节点.这意味着为所有传入连接设置ELB是不必要的,甚至可能会伤害到你,因为它可能导致写入被发送到辅助节点(它们将失败).使用读取首选项将允许您分发读取,因此在您的情况下,我建议不要使用ELB.

一般来说,我会看看http://www.slideshare.net/jrosoff/mongodb-on-ec2-and-ebs.你会发现它很有用.

  • 所以......如果我在一个代表集中有三个节点......并且我与mongo连接......我应该提供什么IP地址?假设任何人都可以倒下。我是否应该将 elastip IP 附加到当前主服务器并始终监控主服务器中的谁? (2认同)