如何为多个数据中心设置MongoDB?
以下是环境:如何为多个数据中心设置MongoDB?,mongodb,database-replication,Mongodb,Database Replication,以下是环境: [ Data Center 1 ] [ load balancer, ip: 45.45.45.45] [ Server 1-A, internal ip: 10.0.0.1, external ip: 200.0.0.1 ] [ Server 1-B, internal ip: 10.0.0.2, external ip: 200.0.0.2 ] [ Server 1-C, internal ip: 10.0.0.3, external ip
[ Data Center 1 ]
[ load balancer, ip: 45.45.45.45]
[ Server 1-A, internal ip: 10.0.0.1, external ip: 200.0.0.1 ]
[ Server 1-B, internal ip: 10.0.0.2, external ip: 200.0.0.2 ]
[ Server 1-C, internal ip: 10.0.0.3, external ip: 200.0.0.3 ]
[ Data Center 2 ]
[ load balancer, ip: 90.90.90.90]
[ Server 2-A, internal ip: 10.0.0.1, external ip: 201.0.0.1 ]
[ Server 2-B, internal ip: 10.0.0.2, external ip: 201.0.0.2 ]
[ Server 2-C, internal ip: 10.0.0.3, external ip: 201.0.0.3 ]
[ Data Center 3 ]
[ load balancer, ip: 88.88.88.88]
[ Server 3-A, internal ip: 10.0.0.1, external ip: 221.0.0.1 ]
[ Server 3-B, internal ip: 10.0.0.2, external ip: 221.0.0.2 ]
[ Server 3-C, internal ip: 10.0.0.3, external ip: 221.0.0.3 ]
我希望实现的是,每台服务器安装一台mongo服务器,并且只允许数据中心1台服务器(1-A、1-B和1-C)作为主服务器。数据中心2和数据中心3中的MongoDB服务器只是辅助服务器。应用程序可以专门从数据中心2读取数据,因为这些应用程序可能与数据中心2位于同一网络中,数据中心2的访问速度比连接到数据中心1更快。服务器正在使用复制集。没有碎片 以下是我的问题:
config = { _id: 'foo', members: [
// data center 1
{_id: 0, host: '10.0.0.1:27017'},
{_id: 1, host: '10.0.0.2:27017'},
{_id: 2, host: '10.0.0.3:27017'},
// data center 2
{_id: 3, host: '201.0.0.1:27017'},
{_id: 4, host: '201.0.0.2:27017'},
{_id: 5, host: '201.0.0.3:27017'},
// data center 3
{_id: 6, host: '221.0.0.1:27017'},
{_id: 7, host: '221.0.0.2:27017'},
{_id: 8, host: '221.0.0.3:27017'}
]
}
谢谢原因不是因为我想要。这是因为我跳进了那个圈套。外部请求不能直接转到内部服务器。必须通过防火墙或负载平衡器进行映射。2)我可能有端口27017、27018和27019指向每个内部服务器(ip1:27017、ip2:27018和ip3:27019),非常感谢您的建议。:)