
后端应用设计
文章平均质量分 77
后端应用设计方法
拾牙慧者
会点c++、python;
展开
-
零拷贝机制在文件传输中的使用手法
零拷贝是一种高效的数据传输机制,在追求低延迟的传输场景中经常使用。如果服务端要提供文件传输的功能,最简单的方式是:1、将磁盘上的文件读取出来2、通过网络协议将内容发送给客户端传统IO的工作方式是...原创 2022-02-26 14:46:06 · 3610 阅读 · 0 评论 -
无锁队列设计思路以及简要代码
非并发的一写一读环形队列读指针:1、先判断是否有数据2、读取数据3、操作指针写指针:1、先判断空间是否足够2、写入数据3、操作指针·所以代码也十分简单:bool putqueue(void* pData){ ST_NODE* ptr = NULL; do { ptr = pWrite; if ((uiQueueSize - ((pWrite + uiQueueSize - pRead) % uiQueueSize) - 1 > 0原创 2022-02-15 09:41:10 · 712 阅读 · 0 评论 -
linux 启动/关闭多个py脚本
后台运行脚本需求:很多时候我们会在 linux 服务器上执行 python 脚本,然而脚本程序执行的时间可能比较长,当耗时过长的情况下,我们使用 ssh 远程登录到 linux 服务器上容易造成超时自动断开连接,当用户注销时,终端会收到 hup(hangup)信号从而关闭其所有子进程,会导致正在执行中的 python 脚本被中断,为了解决这一问题,我们使用 nohup 命令并结合 & 解决此问题。命令格式:nohup command &nohup 指:在忽略挂起信号的情况下运行给定的命原创 2022-01-06 14:39:14 · 2120 阅读 · 0 评论 -
异步日志系统设计demo
目录简单版本1优化版本1优化版本2对于QPS要求很高或者对性能有一定要求的服务器程序,同步写日志会对服务的关键性逻辑的快速执行和及时响应带来一定的性能损失,因为写日志时等待磁盘IO完成工作也需要一定时间。为了减少这种损失,一般采用异步写日志。本质上仍然是一个生产者与消费者模型,产生日志的线程是生产者,将日志写入文件的线程是消费者。如果有多个消费者线程,可能存在写日志的时间顺序错位,所以一般将日志消费者线程数量设置为1.简单版本1下面给出一个简单的版本:#include <iostrea.原创 2021-11-16 15:22:25 · 577 阅读 · 0 评论 -
心跳检测以及应用层心跳包机制设计
目录心跳检测应用场景死连接情况保活传递有效业务数据心跳包机制设计通用心跳包设计有代理的心跳包设计心跳检测应用场景心跳检测一般有两个作用:保活和检测死连接。死连接情况服务器与客户端不在一个网络中,之间的数据会经过多个路由器和交换机,如果其中某个必经之路的机器出现了故障,并且在一段时间内没有恢复,则会导致这之间的链路不再通畅,此时服务器和客户端之间没有数据交换。并且由于TCP连接是状态机,所以对于这种情况,通信两方是无法感知与对方的连接是否正常。又如果客户端因为网络原因或者崩溃等许多原因断开了与服务.原创 2021-11-15 15:11:19 · 5656 阅读 · 0 评论