首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

服务器处理连接的架构演变

服务器是现代软件中非常重要的一个组成。服务器,顾名思义,是提供服务的组件,那么既然提供服务,那就要为众人所知,不然大家怎么能找到服务呢?就像我们想去吃麦当劳一样,那我们首先得知道他在哪里。所以,服务器很重要的一个属性就是需要发布服务信息,服务信息包括提供的服务和服务地址。这样大家才能知道需要什么服务的时候,去哪里找。对应到计算机中,服务地址就是ip+端口,但是ip和端口不容易记,不利于使用,所以又设计出DNS协议,这样我们就可以使用域名来访问一个服务,DNS服务会根据域名解析出ip。解决了寻找服务的问题后,接下来的问题就是服务器如何高效地处理连接。本文介绍服务器处理连接的架构演进。

04

第37天并发编程之线程篇

问题:为什么多个线程不能同时使用一个python解释器呢? 这是因为在Python中有一种垃圾回收机制,当一个value的引用计数为0之后,就会被python的垃圾回收机制所清空掉。但是python的垃圾回收机制其实也是通过一个线程来执行的,如果可以同时调用解释器,这就会出现这样一个问题:如果我赋值了一个操作a = [1, 2, 3]的时候,当我这个线程还没有执行这个操作,只是创建了一个值[1, 2, 3]的时候,突然python解释器把垃圾回收机制的线程给执行了,这是垃圾回收机制就会发现这个值[1, 2, 3]当前引用计数还是0呢,就直接清掉了,但是此时我还没有来得及给a赋值呢,这就出现了数据错乱的问题。 # This lock is necessary mainly because CPython’s memory management is not thread-safe. # 意思是CPython的内存管理机制(垃圾回收机制)不是线程安全的,因此我们不能让python线程同时去调用python解释器。

03

HTTP状态码502与504的区别及解决思路

首先得搞清楚502错误和504错误的区别,以我比较熟悉的PHP为例,502是PHP-FPM(PHP的进程管理器没办法从进程池里找到可分配的进程来处理请求了,就会返回502错误,本质上是PHP进程状态异常—进程不够用了或者PHP服务根本就没开启),这种情况下应该检查PHP服务是否启动了,如果启动了,就要看一下是不是进程池太小,已经全部处于繁忙状态,这种情况下通常将PHP的可用进程数提高数提高就能解决问题;而504错误是网关超时,它代表负责处理HTTP请求的PHP进程超过了约定的最长时间仍未返回处理结果,出现这种异常的原因通常是sql执行的时间太长或代码里出现了死循环之类的问题。

03
领券