Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 社交引擎-数据库扩展?通用可扩展性?_Php_Database_Scalability_Social Networking_Socialengine - Fatal编程技术网

Php 社交引擎-数据库扩展?通用可扩展性?

Php 社交引擎-数据库扩展?通用可扩展性?,php,database,scalability,social-networking,socialengine,Php,Database,Scalability,Social Networking,Socialengine,我正在建立一个社交网络,由于会有名人代言,我期望有一个合理的流量 正因为如此,我正试图构建一个完全可扩展的系统 我的方法如下,所有这些都在自己的虚拟机上运行: -OS:CentOS6 应用程序(web)服务器-SocialEngine 4 Memcache服务器 数据库服务器 CDN-站点将有大量图像,因此需要实现CDN(maxCDN似乎是一个合法的选择) 监控服务器(zabbix等) 我最初的方法是,在社区发展的情况下,增强虚拟机的CPU/RAM。一旦这种方法不再足够,我计划实现集群 应

我正在建立一个社交网络,由于会有名人代言,我期望有一个合理的流量

正因为如此,我正试图构建一个完全可扩展的系统

我的方法如下,所有这些都在自己的虚拟机上运行:

-OS:CentOS6

  • 应用程序(web)服务器-SocialEngine 4
  • Memcache服务器
  • 数据库服务器
  • CDN-站点将有大量图像,因此需要实现CDN(maxCDN似乎是一个合法的选择)
  • 监控服务器(zabbix等)
我最初的方法是,在社区发展的情况下,增强虚拟机的CPU/RAM。一旦这种方法不再足够,我计划实现集群

  • 应用程序—位于每个附加应用程序服务器上的独立代码实例,所有实例都与单个数据库服务器通信
  • Memcache—一个具有虚拟IP和负载平衡的集群,用于平衡流量
  • 数据库-单个数据库节点,必须研究集群,因为不太熟悉如何为db服务器实现
我已经设置了memcache服务器,并且知道socialengine如何利用它(在缓存部分,设置memcache服务器的IP地址);如果需要memcache集群,我假设可以使用虚拟IP地址

但是,我不知道如何将socialengine设置为使用外部数据库服务器。有人能给我指一下文档或描述一下如何更改这些参数,无论它们是在GUI中还是必须在服务器本身的配置文件中更改


任何其他关于可伸缩性的提示都将不胜感激。我希望我的理解和方法是合法的

数据库配置

在指定数据库服务器期间(请参阅步骤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等自动缩放功能。