如何水平扩展Parse Server?求添加Parse及MongoDB虚拟机的步骤指导
兄弟,你的负载均衡判断完全正确!
先给你拍板:当你要横向扩容Parse Server实例时,负载均衡器绝对是刚需——它能把用户请求均匀分摊到多台Parse Server上,避免单台机器扛不住流量过载,还能提升整体可用性(某台Parse挂了,流量会自动切到另一台,用户几乎感知不到)。下面结合Azure平台,分Parse Server和MongoDB两部分给你讲具体配置思路:
一、Parse Server层的负载均衡配置
Azure上首选Azure Load Balancer(标准版比基础版更靠谱,支持高可用和TLS终止,推荐用这个),配置步骤大概是这样:
- 第一步:创建负载均衡器
登录Azure门户,新建负载均衡器,选「公共」类型(如果你的Parse是对外服务的话),关联到你现有虚拟机所在的虚拟网络和子网就行。 - 第二步:配置后端池
把两台Parse Server虚拟机都加进后端池,确保它们在同一个虚拟网络里,而且Parse的服务端口(默认1337)在NSG里是开放的(允许入站流量到1337)。 - 第三步:设置负载均衡规则
新建一条规则,前端监听80/443端口(用HTTPS的话必须开443),转发到后端的1337端口。负载均衡算法选「轮询」就够应付大部分场景,或者选「最少连接」更智能。一定要开启健康探测,探测路径设为/health(Parse Server自带这个健康检查端点),这样负载均衡器能自动把挂掉的实例踢出池,不会把流量导过去。 - 第四步:更新域名解析
把原来指向单台Parse Server的域名,改成指向负载均衡器的公网IP或者FQDN,这样用户请求就会先到负载均衡器,再分发到两台Parse上。
⚠️ 注意:两台Parse Server的配置必须完全一致!APP_ID、MASTER_KEY、数据库连接字符串这些参数要一模一样,不然会出现数据错乱或者认证失败的问题。
二、MongoDB层的扩容注意事项
这里要划重点:MongoDB不能直接用普通负载均衡器横向扩容!因为它是有状态的数据库,得用**副本集(Replica Set)**来实现高可用和读写扩展。你现在有1台Mongo,新增1台的话,可以搭个2节点副本集(不过更推荐再加个仲裁节点,或者直接弄3节点,稳定性更高),步骤如下:
- 第一步:准备新Mongo虚拟机
新机器的配置要和现有Mongo一致,装同版本的MongoDB 3.4.9,确保两台Mongo之间能互通(NSG允许27017端口的入站流量)。 - 第二步:初始化副本集
- 在现有Mongo上修改
/etc/mongod.conf,开启副本集模式:找到replication段,把replSetName设成同一个名字(比如parse-replica),然后重启mongod服务:sudo service mongod restart - 登录现有Mongo的shell:
mongo,执行初始化命令:rs.initiate() - 把新Mongo节点加进副本集:
rs.add("新Mongo虚拟机的私有IP或主机名") - 执行
rs.status()查看状态,等新节点变成「SECONDARY」就ok了。
- 在现有Mongo上修改
- 第三步:更新Parse的数据库连接字符串
原来的连接字符串是mongodb://<旧MongoIP>/parse,现在要改成副本集的格式:mongodb://<旧MongoIP>,<新MongoIP>/parse?replicaSet=parse-replica。这样Parse会自动连接到副本集的主节点(PRIMARY)写数据,从节点(SECONDARY)可以用来分担读请求(如果需要读写分离,就在连接字符串里加readPreference=secondaryPreferred)。
三、额外的实用建议
- 如果用HTTPS,建议把TLS终止放在负载均衡器上,这样Parse Server不用处理证书,能省不少资源。
- 可以把Parse Server改成Azure虚拟机规模集(VMSS),以后用户量再涨,能自动扩容实例,不用手动加机器。
- 定期备份Mongo副本集,Azure上可以用虚拟机快照,或者用Mongo自带的
mongodump工具做备份。
内容的提问来源于stack exchange,提问作者Sotiris Kaniras
相关产品推荐
相关产品推荐

