Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.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_Mysql_Json_Real Time - Fatal编程技术网

Php 分离数据服务器、内容服务器、客户端服务器和后端服务器

Php 分离数据服务器、内容服务器、客户端服务器和后端服务器,php,mysql,json,real-time,Php,Mysql,Json,Real Time,过去几年,我公司的做法是在客户的服务器/主机上安装我们自己的cms,并开发前端。但现在已经到了改变我们工作方式的时候了。 现在我是这样想的。 将有几个服务器用于内容,一个服务器用于客户端(前端),一个服务器用于后端,一个服务器用于数据库/数据 后端应用程序和服务器 每个客户端访问一个后端应用程序。只有一个后端,它将在数据服务器上存储数据。后端/前端将请求数据,数据服务器从mysql数据库准备json数据,然后将其发送回客户端。 内容将临时上载到后端服务器,然后content server将临时内

过去几年,我公司的做法是在客户的服务器/主机上安装我们自己的cms,并开发前端。但现在已经到了改变我们工作方式的时候了。 现在我是这样想的。 将有几个服务器用于内容,一个服务器用于客户端(前端),一个服务器用于后端,一个服务器用于数据库/数据

后端应用程序和服务器

每个客户端访问一个后端应用程序。只有一个后端,它将在数据服务器上存储数据。后端/前端将请求数据,数据服务器从mysql数据库准备json数据,然后将其发送回客户端。 内容将临时上载到后端服务器,然后content server将临时内容复制到多个内容服务器

前端

前端服务器上不会有数据库/数据。前端网站、应用程序、移动应用程序将通过json从数据服务器/api获取所有数据,或者从内容服务器获取内容。所以在前端服务器上只有前端脚本

内容服务器

它不像CDN,所有内容服务器都放在一个地方。连接并同步

数据服务器

将所有数据存储在mysql数据库中。将有api从mysql数据库准备json数据

现在的问题是:

  • 这种结构是愚蠢的还是正确的方式管理数百个网站和应用程序
  • api从mysql数据库中准备json数据并将其发送回请求的应用程序速度慢吗?还是正常
  • 分离式内容服务器(不是CDN,但它将创建内容缓存)可以比在一个请求中从一个服务器加载内容和脚本更好更快
  • 客户端访问前端服务器->前端服务器请求数据服务器->数据服务器将从mysql db准备json数据->将其发送回前端->浏览器从内容服务器获取内容->渲染网站,应用程序。这种方式比一台服务器中的所有服务器都慢还是快
  • 我们的后端必须非常快,非常酷。任务是实时应用程序,具有历史记录,url不带哈希标记,当url更改时,浏览器不会刷新,也不会损害后端应用程序媒体播放器(许多小工具)、实时通知和消息。我们应该为此应用程序使用哪些技术?请根据你的经验回答这个问题
    您的设置绝对正确,多个面向前端的客户端服务器,指向一个或多个集中式数据服务器,通过JSON在线路上传递小块数据

    拥有集中式后端应用程序也有实际意义,从维护的角度来看,您只需要处理一个应用程序。如果您计划将所有数据存储在一个全局数据库中,或者为每个应用程序创建单独的数据库实例,则需要考虑。 问题是,你的应用程序/网站是否维护会话信息,如果是这样,你需要考虑如何处理会话。此外,如果您计划安装负载平衡器,也可以适当地分配负载

    根据我个人的经验,我不能对会话对话说太多(我的想法是将会话存储在数据库中),但也许其他人可以对此有所了解

    在技术方面,我肯定会研究一些技术,例如,或者这些框架非常适合构建客户机/服务器应用程序,类似于您的需求


    希望这些帮助至少能指引你正确的方向。

    我正在用这个堆栈构建类似的东西

    后端服务器-mongo、mariadb、nodejs 前端服务器-nginx,将请求代理到后端

    我想你走对了

    因此,我们可以使用redis作为统一的会话存储和状态保存中间件,使用少量后端nodejs进程(在少数VP上),所有前端—css、Javascript、图像、html—都由多个nginx服务器提供服务


    前面有一台nginx服务器作为负载平衡服务器,我们也使用nginx作为负载平衡器,因为Pound load balancer()与WebSocket有问题,但速度稍快

    也许这个问题更适合?