Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >高级PHP开发人员应对网络崩溃的责任是什么?

高级PHP开发人员应对网络崩溃的责任是什么?
EN

Stack Overflow用户
提问于 2022-05-07 02:57:26
回答 1查看 175关注 0票数 1

作为一名高级PHP开发人员,我在一所开放的大学里有什么责任来应对网络崩溃,以提高我们基于web的服务的可访问性?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-07 03:48:11

下面是从应用程序代码端到网络端需要考虑的一些事情:

  1. Catch it和Cache it基本上都是缓存。使用缓存(Redis或memcached,对redis的+1 )来缓存(缓存/只读/数据不需要每秒更新)数据,这样您就可以避免不断地查询或从数据库或其他来源获取数据,从而减少资源的潜在超载。

  1. Get in一行!将传入的请求添加到队列中,并立即响应它们。然后,客户机可以通过轮询、事件流/sse或其他形式的客户机-服务器通信来跟踪响应的状态。这里的想法是使用这个请求队列异步处理用户请求并将响应推回给它们。这将需要对您的体系结构进行强烈的反思,但是,如果您还不存在,则需要切换到消息队列。您还可以添加排队等待更重的请求,这些请求可能需要比通常更长的时间,或者需要大量的资源来处理,同时保留所有其他的synchronous.

  1. Vertically扩展--可能是最简单(也是最昂贵的)事情--简单地放大主机(在CPU/核、RAM、可用带宽方面)。但请注意,到目前为止,在您真正需要更好地以更分布式的方式处理负载(如果达到流量级别的话)之前,您只能这样做。

  1. Perfectly均衡,因为所有事情都应该是,所以您可以设置一个负载均衡器(通过AWS、Digitalocean,如果您不使用这些负载均衡器,也许您的主机提供了一个负载均衡器),它在PHP的多个实例之间路由请求。换句话说,您需要运行PHP服务器的多个实例。同一台机器上的多个实例以及其他机器上的实例。这个设置稍微复杂一些,但它是一种经过充分尝试和测试的方法,用于构建更强的负载平衡、分布式设置.

  1. Not my concern!关注点分离--如果您有一个庞大的单块体系结构,可以考虑将您的应用程序划分成多个服务,以尝试一个微服务体系结构。这里的想法是将不同的齿轮分开,这些齿轮可以将整个体系结构相互分解成单独的可诊断单元。然后,您可以单独处理每个services/microapplications.

的缩放和可靠性问题。

还有一些其他的事情你也可以做,但是对于如何让你的web服务器变得更可靠,这些都是很好的思考点。

另一件非常重要的事情是可观察性/可观察性监测。您需要非常好的日志记录和关于您的服务器的度量,以便能够精确地确定问题。

当你开始在周日晚上得到1000名并发用户访问你的网站,重载你的数据库,几乎把你的服务器关闭,时间是最重要的。你需要能够迅速采取行动和作出反应,只有当你有信息可以采取行动时,你才能做到这一点。

访问日志很重要。同时,你可以采取的快速行动也很重要。扩展资源,增加额外的machines..etc是你可以采取的临时措施,当你研究一个更永久的解决方案时,你可以让事情保持不变。

总之,没有一个合适的解决方案。即使是大型的现代科技公司也会时不时地出现故障。几乎不可能保证100%的服务器可用性,但您肯定可以提高服务器的可靠性和可恢复性。

编辑:如果你想了解更多关于一般系统设计的知识,https://github.com/donnemartin/system-design-primer是一个非常好的资源(自述)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72151847

复制
相关文章
【php设计模式】责任链模式
责任链模式为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。这种类型的设计模式属于行为型模式。
码缘
2019/06/21
4910
构建高可用的秒杀系统:应对Redis集群崩溃的终极指南
秒杀系统是电子商务领域的一个热门应用场景,它要求在极短的时间内处理大量用户请求,确保高可用性和数据一致性。其中,Redis是一个常用的数据存储组件,但在极端情况下,Redis集群可能会崩溃,导致系统不可用。本文将介绍如何构建一个高可用的秒杀系统,特别关注在Redis集群崩溃时如何保证系统的高可用性。
疯狂的KK
2023/09/04
1.2K0
构建高可用的秒杀系统:应对Redis集群崩溃的终极指南
PHP设计模式之责任链模式
GoF定义:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。
硬核项目经理
2019/09/18
5340
PHP设计模式之责任链模式
Java网络编程--Netty中的责任链
责任链模式(Chain of Responsibility Pattern)是一种是行为型设计模式,它为请求创建了一个处理对象的链。其链中每一个节点都看作是一个对象,每个节点处理的请求均不同,且内部自动维护一个下一节点对象。当一个请求从链式的首端发出时,会沿着链的路径依次传递给每一个节点对象,直至有对象处理这个请求为止。
CodingDiray
2019/09/25
1.3K0
Java网络编程--Netty中的责任链
业界 | Dropbox力荐!我们如何应对Python桌面应用程序的崩溃
揭秘Crashpad系统如何帮助Dropbox这样复杂的桌面程序捕获并报告崩溃,且兼容Python的多种语言。
大数据文摘
2018/12/18
1.4K0
高级Java开发人员最常访问的几个网站
这是高级Java开发人员最常访问的几个网站。这些网站提供新闻,一般问题或面试问题的答案,精彩的讲座等。质量是优秀网站的关键因素,这此网站都有较高的质量内容。下面逐一介绍:
JAVA葵花宝典
2019/11/13
5370
【说站】高级Java开发人员常去的网站
本文介绍高级Java开发人员最常访问的几个网站。 这些网站提供新闻,一般问题或面试问题的答案,精彩的讲座等。质量是优秀网站的关键因素,这此网站都有较高的质量内容。下面逐一介绍:
很酷的站长
2022/11/23
3380
【说站】高级Java开发人员常去的网站
如何应对动态的网络犯罪形势
在过去的五年,我们在认识网络犯罪方面取得了长足的进步,但网络组织和民族国家所构成的威胁也在日益增加。
FB客服
2020/02/20
4720
高级复制中如何应对主体站点故障
« 在高级复制中如何切换主体定义站点 | Blog首页 | 自己动手,丰衣足食 »
数据和云01
2018/09/10
4330
将基础设施管理为代码-责任转移和开发人员的角色
介绍: 将基础架构编写为代码是一种好的做法吗?开发人员是否应该负责编写和维护基础设施代码?这种做法如何影响软件工程?在本文中,我们将探讨基础设施管理不断发展的格局、开发人员在基础设施代码中日益增长的作用,以及管理复杂系统时出现的挑战。
DevOps云学堂
2023/09/11
1870
将基础设施管理为代码-责任转移和开发人员的角色
PHP是什么
学习一样技能,你得先清楚这项技能是到底做什么的,说到这里,我想大家都会简单的说是做网站的,因为PHP在WEB领域应用最为广泛,大多数网站都是用PHP做的。准确的说PHP是做网站的后端开发的,其实我这样说还不算正确,PHP只是做后端开发的,但不只是网站而已。就像现在比较火的APP开发也可以用PHP做后端处理。
PM吃瓜
2019/08/13
1.3K0
全系统栈崩溃是什么鬼?手机管家高级工程师 jaylin,教你如何抓鬼!
Jaylin 腾讯手机管家团队,高级研发工程师,5年以上Android开发经验,擅长终端架构设计、性能和稳定性优化。 前言 Android的严重碎片化,通常会给开发人员造成很大的苦恼!经过测试验证后的版本,一旦发布出去,会收到很多奇葩的反馈,在Bugly崩溃分析平台上也总会出现很多意想不到的问题。 有的可以很容易从堆栈信息中定位到出现问题的代码,比较容易解决。但是也会经常出现一些只有系统代码堆栈的问题,这类问题定位往往都比较困难。对于这些疑难杂症,有些问题解决的方法是比较通用的。这里我整理了一些跟进的思
腾讯Bugly
2018/03/22
1.2K0
全系统栈崩溃是什么鬼?手机管家高级工程师 jaylin,教你如何抓鬼!
PHP中的PEAR是什么?
PEAR也就是为PHP扩展与应用库(PHP Extension and Application Repository),它是一个PHP扩展及应用的一个代码仓库。
全栈程序员站长
2021/11/10
1.5K0
程序员精神崩溃怎么办?九大建议巧应对
做了程序员这一行,也许你会渐渐感受到这一行的巨大压力,IT职员猝死的新闻也经常会听到。本文给出了9个避免程序员精神崩溃的建议,如果你的大脑濒临崩溃,赶紧看看吧。 1.独自待会 这可能是最重要的,因为它会影响你和他人(包括家人)之间的互动,也会影响你思考。所以每个月让自己有个一到两次的真空时间,将手机落在家中,让周围的人(妻子、基友等等)从你的世界中消失。 然后做点自己喜欢的事情,也不必非要是哪种爱好。你可以躺在沙滩上晒太阳,可以锻炼身体,也可以看看书(与IT不相干的):你需要一段平静的时间,就像以前读书时候
我是攻城师
2018/05/11
6560
[深度] 高级认知的‘抽象’到底是什么?
In recent years, scientists have increasingly taken to investigate the predictive nature of cognition. We argue that prediction relies on abstraction, and thus theories of predictive cognition need an explicit theory of abstract representation. We propose such a theory of the abstract representational capacities that allow humans to transcend the “here-and-now.” Consistent with the predictive cognition literature, we suggest that the representational substrates of the mind are built as a hierarchy, ranging from the concrete to the abstract; however, we argue that there are qualitative differences between elements along this hierarchy, generating meaningful, often unacknowledged, diversity. Echoing views from philosophy, we suggest that the representational hierarchy can be parsed into: modality-specific representations, instantiated on perceptual similarity; multimodal representations, instantiated primarily on the discovery of spatiotemporal contiguity; and categorical representations, instantiated primarily on social interaction. These elements serve as the building blocks of complex structures discussed in cognitive psychology (e.g., episodes, scripts) and are the inputs for mental representations that behave like functions, typically discussed in linguistics (i.e., predicators). We support our argument for representational diversity by explaining how the elements in our ontology are all required to account for humans’ predictive cognition (e.g., in subserving logic-based prediction; in optimizing the trade-off between accurate and detailed predictions) and by examining how the neuroscientific evidence coheres with our account. In doing so, we provide a testable model of the neural bases of conceptual cognition and highlight several important implications to research on self-projection, reinforcement learning, and predictiveprocessing(PP) models of psychopathology
CreateAMind
2022/06/10
5730
[深度] 高级认知的‘抽象’到底是什么?
PHP开发人员常犯的10个MysqL错误
对于大多数web应用来说,数据库都是一个十分基础性的部分。如果你在使用PHP,那么你很可能也在使用MySQL—LAMP系列中举足轻重的一员。 对于很多新手们来说,使用PHP可以在短短几个小时之内轻松地写出具有特定功能的代码。但是,构建一个稳定可靠的数据库却需要花上一些时日和相关技能。下面列举了我曾经犯过的最严重的10个MySQL相关的错误(有些同样也反映在其他语言/数据库的使用上)。 1、使用MyISAM而不是InnoDB MySQL有很多数据库引擎,但是你最可能碰到的就是MyISAM和InnoDB。 My
wangxl
2018/03/07
7150
PHP开发人员常犯的10个MysqL错误
对于大多数web应用来说,数据库都是一个十分基础性的部分。如果你在使用PHP,那么你很可能也在使用MySQL—LAMP系列中举足轻重的一员。 对于很多新手们来说,使用PHP可以在短短几个小时之内轻松地写出具有特定功能的代码。但是,构建一个稳定可靠的数据库却需要花上一些时日和相关技能。下面列举了我曾经犯过的最严重的10个MySQL相关的错误(有些同样也反映在其他语言/数据库的使用上)。 1、使用MyISAM而不是InnoDB MySQL有很多数据库引擎,但是你最可能碰到的就是MyISAM和InnoDB。 My
wangxl
2018/03/07
9930
测试环境中的隐藏的网络风险及应对?
顾翔老师开发的bugreport2script开源了,希望大家多提建议。文件在https://github.com/xianggu625/bug2testscript,
顾翔
2019/12/11
9470
测试环境中的隐藏的网络风险及应对?
PHP高级特性之反射
反射-Reflection 面向对象编程中对象被赋予了自省的能力,而这个自省的过程就是反射。 反射,直观理解就是根据到达地找到出发地和来源。比如,一个光秃秃的对象,我们可以仅仅通过这个对象就能知道它所属的类、拥有哪些方法。 反射是指在PHP运行状态中,扩展分析PHP程序,导出或提出关于类、方法、属性、参数等的详细信息,包括注释。这种动态获取信息以及动态调用对象方法的功能称为反射API。 如何使用反射API 现在,要获取这个student对象的方法和属性列表该怎么做呢?如以下代码所示: 也可以不用反射API,
企鹅号小编
2018/02/05
9340
点击加载更多

相似问题

IGListkit网络责任

16

面向高级PHP开发人员的MVC

11

PHP高级语言的分类是什么?

12

应对本机网络问题

10

控制网络请求是谁的责任?

42
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文