【发布时间】:2015-01-14 15:02:17
【问题描述】:
我在 azure 中有一个 mongoDB 副本集 我有: server1 主服务器 server2 辅助 server3 仲裁器
我的本地机器上有一个开发环境,我想指向这个 mongoDB 实例
我应该在我的 Azure 防火墙上打开什么来确保此配置是按照最佳做法设置的。
我是为主要和辅助创建一个负载平衡端点,还是为仲裁器创建一个端点,或者甚至是其他什么?
谢谢!
【问题讨论】:
我在 azure 中有一个 mongoDB 副本集 我有: server1 主服务器 server2 辅助 server3 仲裁器
我的本地机器上有一个开发环境,我想指向这个 mongoDB 实例
我应该在我的 Azure 防火墙上打开什么来确保此配置是按照最佳做法设置的。
我是为主要和辅助创建一个负载平衡端点,还是为仲裁器创建一个端点,或者甚至是其他什么?
谢谢!
【问题讨论】:
MongoDB 不能很好地与负载平衡的端点一起使用(因为您最终可能会将流量发送到辅助节点,并且您无法控制这一点,除非您为每个 VM 实现了自定义探测,然后您将需要根据副本集节点的健康状况为每个节点更新探针的状态)。 MongoDB 客户端驱动程序旨在与副本集的拓扑一起使用,以正确决定与哪个节点进行通信。每个副本集节点都应该有一个离散的可寻址 ip:port。如果您将所有实例都放在一个云服务中(例如myservice.cloudapp.net),那么每个实例需要一个端口(因为它们都共享一个 IP 地址)。如果每个实例位于不同的云服务中,那么您可以为每个实例使用相同的端口,并为每个实例使用不同的 dns 名称/ip 地址。
【讨论】:
使用 iptables 的最佳解决方案是使用 ip 规则打开第三个。它在两次配置中打开并且安全。此解决方案是您代码的最佳架构。
【讨论】: