php多线程处理大数据库 php多线程和多进程实现( 七 )


例如 , 我们选择在上海部署为核心节点,北京,深圳,武汉,上海为分散节点(上海自己本身也是一个分散节点) 。我们的服务架构如图:
需要补充一下的是,上图中上海节点和核心节点是同处于一个机房的,其他分散节点各自独立机房 。
国内有很多大型网游,都是大致遵循上述架构 。它们会把数据量不大的用户核心账号等放在核心节点 , 而大部分的网游数据,例如装备、任务等数据和服务放在地区节点里 。当然 , 核心节点和地域节点之间,也有缓存机制 。
二、 节点容灾和过载保护
节点容灾是指,某个节点如果发生故障时,我们需要建立一个机制去保证服务仍然可用 。毫无疑问,这里比较常见的容灾方式,是切换到附近城市节点 。假如系统的天津节点发生故障,那么我们就将网络流量切换到附近的北京节点上 。考虑到负载均衡,可能需要同时将流量切换到附近的几个地域节点 。另一方面,核心节点自身也是需要自己做好容灾和备份的,核心节点一旦故障,就会影响全国服务 。
过载保护,指的是一个节点已经达到最大容量,无法继续接接受更多请求了,系统必须有一个保护的机制 。一个服务已经满负载 , 还继续接受新的请求,结果很可能就是宕机,影响整个节点的服务,为了至少保障大部分用户的正常使用,过载保护是必要的 。
解决过载保护,一般2个方向:
· 拒绝服务 , 检测到满负载之后,就不再接受新的连接请求 。例如网游登入中的排队 。
· 分流到其他节点 。这种的话,系统实现更为复杂,又涉及到负载均衡的问题 。
小结
Web系统会随着访问规模的增长,渐渐地从1台服务器可以满足需求,一直成长为“庞然大物”的大集群 。而这个Web系统变大的过程,实际上就是我们解决问题的过程 。在不同的阶段,解决不同的问题 , 而新的问题又诞生在旧的解决方案之上 。
系统的优化是没有极限的 , 软件和系统架构也一直在快速发展,新的方案解决了老的问题,同时也带来新的挑战 。
PHP如何解决网站的大数据大流量与高并发使用缓存php多线程处理大数据库,比如memcache,redis,因为它们是在内存中运行php多线程处理大数据库,所以处理数据,返回数据非常快,所以可以应对高并发 。
2.增加带宽和机器性能,1M的带宽同时处理的流量肯定有限,所以在资源允许的情况下 , 大带宽,多核cpu,高内存是一个解决方案 。
3.分布式,让多个访问分到不同的机器上去处理 , 每个机器处理的请求就相对减少了 。
简单说些常用技术,负载均衡,限流,加速器等
php处理大数据量的时候,如图片 有什么致命的缺陷?面试问题效率问题 。因为php是脚本解释语言,其特点在于易上手和部署,但在处理需要大量cpu的操作时(图片就是)就力不从心了 , 如果写成php扩展的话效率会提升,但还是没直接执行C/C++的程序快
不好实现多线程 。这个就不用多说了,和语言定位有关,虽然可以异步调用,但毕竟不是强项 。
php多线程处理大数据库的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于php多线程和多进程实现、php多线程处理大数据库的信息别忘了在本站进行查找喔 。

推荐阅读