「软件」后端开发术语大全( 四 )


4. 长连接/短连接通常是指TCP的长连接和短连接 。 长连接就是建立TCP连接后 , 一直保持这个连接 , 一般会中间彼此发送心跳来确认对应的存在 , 中间会做多次业务数据传输 , 一般不会主动断开连接 。 短连接一般指建立连接后 , 执行一次事务后(如:http请求) , 然后就关掉这个连接 。
5. 流量控制/拥塞控制

  • 流量控制防止发送方发的太快 , 耗尽接收方的资源 , 从而使接收方来不及处理 。
  • 拥塞控制防止发送方发的太快 , 使得网络来不及处理产生拥塞 , 进而引起这部分乃至整个网络性能下降的现象 , 严重时甚至会导致网络通信业务陷入停顿 。
6. 惊群效应惊群效应也有人叫做雷鸣群体效应 , 不过叫什么 , 简言之 , 惊群现象就是多进程(多线程)在同时阻塞等待同一个事件的时候(休眠状态) , 如果等待的这个事件发生 , 那么他就会唤醒等待的所有进程(或者线程) , 但是最终却只可能有一个进程(线程)获得这个时间的“控制权” , 对该事件进行处理 , 而其他进程(线程)获取“控制权”失败 , 只能重新进入休眠状态 , 这种现象和性能浪费就叫做惊群 。
7. NATNAT(Network Address Translation , 网络地址转换) , 就是替换IP报文头部的地址信息 。 NAT通常部署在一个组织的网络出口位置 , 通过将内部网络IP地址替换为出口的IP地址提供公网可达性和上层协议的连接能力 。
故障异常
1. 宕机宕机 , 一般情况下指的就是计算机主机出现意外故障而死机 。 其次 , 一些服务器例如数据库死锁也可以称为宕机 , 一些服务器的某些服务挂掉了 , 就可以这么说 。
2. coredump当程序出错而异常中断时 , OS会把程序工作的当前状态存储成一个coredunmp文件 。 通常情况下coredump文件包含了程序运行时的内存 , 寄存器状态 , 堆栈指针 , 内存管理信息等 。
3. 缓存穿透/击穿/雪崩
  • 缓存穿透:缓存穿透是指查询一个一定不存在的数据 , 由于缓存是不命中时需要从数据库查询 , 查不到数据则不写入缓存 , 这将导致这个不存在的数据每次请求都要到数据库去查询 , 进而给数据库带来压力 。
  • 缓存击穿:缓存击穿是指热点key在某个时间点过期的时候 , 而恰好在这个时间点对这个Key有大量的并发请求过来 , 从而大量的请求打到db 。
  • 缓存雪崩:缓存雪崩是指缓存中数据大批量到过期时间 , 而查询数据量巨大 , 引起数据库压力过大甚至down机 。
  • 与缓存击穿不同的是:存击穿是热点key失效 , 缓存雪崩是大量的key同时失效 。
4. 500/501/502/503/504/505
  • 500 Internal Server Error:内部服务错误 , 一般是服务器遇到意外情况 , 而无法完成请求 。 可能原因: 1、程序错误 , 例如:ASP或者PHP语法错误;2、高并发导致 , 系统资源限制不能打开过多的文件所致 。
  • 501Not implemented:服务器不理解或不支持请求的HTTP请求 。
  • 502Bad Gateway:WEB服务器故障 , 可能是由于程序进程不够 , 请求的php-fpm已经执行 , 但是由于某种原因而没有执行完毕 , 最终导致php-fpm进程终止 。 可能原因:1、Nginx服务器 , php-cgi进程数不够用;2、PHP执行时间过长;3、php-cgi进程死掉;
  • 503Service Unavailable:服务器目前无法使用 。 系统维护服务器暂时的无法处理客户端的请求 , 这只是暂时状态 。 可以联系下服务器提供商 。
  • 504Gateway Timeout:服务器504错误表示超时 , 是指客户端所发出的请求没有到达网关 , 请求没有到可以执行的php-fpm , 一般是与nginx.conf的配置有关 。
  • 505HTTP Version Not Supported:服务器不支持请求中所用的 HTTP 协议版本 。 (HTTP 版本不受支持)

除了500错误可能是程序语言错误 , 其余的报错 , 都大概可以理解为服务器或者服务器配置出现问题 。