Php 社交引擎-数据库扩展?通用可扩展性?
我正在建立一个社交网络,由于会有名人代言,我期望有一个合理的流量 正因为如此,我正试图构建一个完全可扩展的系统 我的方法如下,所有这些都在自己的虚拟机上运行: -OS:CentOS6Php 社交引擎-数据库扩展?通用可扩展性?,php,database,scalability,social-networking,socialengine,Php,Database,Scalability,Social Networking,Socialengine,我正在建立一个社交网络,由于会有名人代言,我期望有一个合理的流量 正因为如此,我正试图构建一个完全可扩展的系统 我的方法如下,所有这些都在自己的虚拟机上运行: -OS:CentOS6 应用程序(web)服务器-SocialEngine 4 Memcache服务器 数据库服务器 CDN-站点将有大量图像,因此需要实现CDN(maxCDN似乎是一个合法的选择) 监控服务器(zabbix等) 我最初的方法是,在社区发展的情况下,增强虚拟机的CPU/RAM。一旦这种方法不再足够,我计划实现集群 应
- 应用程序(web)服务器-SocialEngine 4
- Memcache服务器
- 数据库服务器
- CDN-站点将有大量图像,因此需要实现CDN(maxCDN似乎是一个合法的选择)
- 监控服务器(zabbix等)
- 应用程序—位于每个附加应用程序服务器上的独立代码实例,所有实例都与单个数据库服务器通信
- Memcache—一个具有虚拟IP和负载平衡的集群,用于平衡流量
- 数据库-单个数据库节点,必须研究集群,因为不太熟悉如何为db服务器实现
任何其他关于可伸缩性的提示都将不胜感激。我希望我的理解和方法是合法的 数据库配置 在指定数据库服务器期间(请参阅步骤3:设置MySQL数据库)。使用localhost会告诉它连接到同一服务器上的MySQL数据库。如果要使用其他服务器,请指定承载数据库的服务器的IP地址或主机名 您需要确保端口3306已打开,并且您的应用程序服务器可以与该端口上的DB服务器通信 SocialEngine是一个PHP应用程序,它将数据库连接信息存储在配置文件中。此文件位于此处:
application/settings/database.php
即使在安装之后,也可以编辑该文件并更改数据库连接字符串
缩放注意事项
对于扩展,我建议您研究一下AmazonWeb服务平台。还有其他云平台,但这是我最熟悉的一个,所以我将给你一些关于AWS的建议
负载平衡:AWS弹性负载平衡(ELB)允许您在多个服务器之间分割web流量
自动扩展:通过此功能,您可以根据监控事件(例如CPU使用峰值、网络流量峰值)启动新服务器并将其添加到池中。您可以在不需要时关闭额外的服务器
远程数据库服务:这是一个易于实现集群的托管数据库服务
CloudFront:AWS的CDN
这是一个关于AWS中缩放的非常有用的网络广播:
为了便于监控,请看一看新遗址
如果您需要进一步的澄清/建议,请告诉我。非常感谢!很棒的建议!对于主机,我实际上已经和Linode一起去了;它是廉价的虚拟云主机,如果需要,我可以轻松地扩展实例。我将不得不检查它们是否提供弹性负载平衡,但我假设不是。我想到时候我必须手动实现一个解决方案,非常感谢您提供的信息!非常有帮助!很高兴能帮上忙。如果你觉得我的回答有帮助,请记住接受我的回答:)我也曾与Linode合作过。该系统提供负载平衡“节点平衡器”,但没有AWS等自动缩放功能。