手把手教你服务器开发
文章平均质量分 87
手把手教你服务器开发
c+猿辅导
本人硕士毕业,从事计算机行业近10年,工作涉及网络,通信,安防,视频,人工智能等方向,曾就职于美资世界五百强,合资央企世界五百强,行业巨头等多家著名公司,分享编程中的遇到的坑,让你在编程路上不迷路!!
展开
-
gdb常用命令大全+调试c++代码并定位问题详解
GDB是一个由GNU开源组织发布的、UNIX/LINUX操作系统下的、基于命令行的、功能强大的程序调试工具。对于一名Linux下工作的c/c++程序员,gdb是必不可少的工具。gdb调试主要步骤1.先把文件编译为可执行文件(如对test.c进行编译:gcc -g -o test test.c)2.在终端输入gdb 后回车3.接着输入file test 后回车,之后进入调试过程4.调试过程,根据需要可对代码进行查看或操作gdb app。原创 2023-05-23 12:39:22 · 806 阅读 · 0 评论 -
nginx keepalived 高可用原理和实操
使用nginx-keepalived双机热备机制,vip主机可以进行漂移,这样当一台主机挂掉了,还有备用机可以使用,保证了服务的可靠性。通过本文的讲解应该对高可用方案有了较深刻的理解,希望能够对你有所帮助。原创 2023-05-17 19:09:25 · 1389 阅读 · 1 评论 -
c++ socket之io复用模型 epoll进阶
I/O复用模型:主要是指,一个线程可以同时监控多个系统IO、并且能够操作多个系统IO的一种技术模型。select/poll/epoll核心是可以通过一个线程同时处理多个socket链接,并不会使得每次操作io的过程变快。因此,IO复用模型的设计并不是位了快,而是为了解决线程、进程数量过多(数量过多会导致系统频繁切换cpu资源,造成操作系统压力)对服务器开销造成的压力。原创 2023-01-13 17:14:49 · 1191 阅读 · 0 评论 -
服务器load高,服务越跑越慢问题定位
服务器load高问题定位原创 2022-12-14 19:50:17 · 1898 阅读 · 0 评论 -
c++ 之 socket udp与tcp client server实现
服务器开发 socket原创 2022-11-14 23:37:09 · 2945 阅读 · 0 评论 -
c++ 服务器之插件框架开发
c++ 插件管理与插件实现原创 2022-10-31 18:59:43 · 2389 阅读 · 0 评论 -
微服务之熔断、限流、降级 三板斧
微服务治理之降级&限流&熔断原创 2022-10-24 20:58:51 · 5294 阅读 · 0 评论 -
c++ http服务器之Apache工具ab压力测试(nginx与brpc)
ab全称为:apache bench,官方注释为:Apache超文本传输协议(HTTP)的性能测试工具。原创 2022-10-23 21:47:05 · 1353 阅读 · 0 评论 -
C++ 几种可调用对象的封装与调用
C++11通过提供std::function 和 std::bind统一了可调用对象的各种操作。原创 2022-10-21 09:52:04 · 771 阅读 · 0 评论 -
烧脑的内存序Memory Order
内存顺序描述了计算机 CPU 获取内存的顺序,内存的排序既可能发生在编译器编译期间,也可能发生在 CPU 指令执行期间。原创 2022-10-18 10:22:11 · 2492 阅读 · 2 评论 -
C++ 11 14 RAII经典用法
RAII技术:称为“资源获取就是初始化”,是c++等编程语言常用的管理资源、避免内存泄露的方法。它保证在任何情况下,使用对象时先构造对象,最后析构对象。原创 2022-10-14 10:17:48 · 415 阅读 · 0 评论 -
C++ Perf性能调优+火焰图调优
通过本文介绍应该对PERF有了基本的认识,还有很多方法来查看软件的热点函数,如GPERF、GPROF等,你可以自己深入去研究,本文希望能够起到抛砖引玉的作用。原创 2022-10-06 22:45:50 · 2246 阅读 · 0 评论 -
C++线程中的五种常见锁与C++ RAII锁的常见用法
C++多线程中的锁主要有五类:互斥锁(信号量)、条件锁、自旋锁、读写锁、递归锁。原创 2022-10-04 13:38:22 · 3725 阅读 · 0 评论 -
死锁避免与死锁检测方法
死锁问题被认为是线程/进程间切换消耗系统性能的一种极端情况。在死锁时,线程/进程间相互等待资源,而又不释放自身的资源,导致无穷无尽的等待,其结果是任务永远无法执行完成。一旦出现死锁,整个程序既不会发生任何异常,也不会给出任何提示,只是所有线程都处于阻塞状态,无法继续。这样会出现一种操作“无反应”的结果。原创 2022-10-03 14:12:27 · 1714 阅读 · 0 评论 -
c++ 实现邮件发送功能
常用的电子邮件协议有SMTP、POP3、IMAP4,它们都隶属于TCP/IP协议簇,默认状态下,分别通过TCP端口25、110和143建立连接。原创 2022-09-30 22:02:15 · 6323 阅读 · 0 评论 -
C++实战md5、base64算法实现
常用md5、base64实现原创 2022-09-28 09:19:38 · 249 阅读 · 0 评论 -
c++之epoll原理解析与Client Server功能实现
epoll详解原创 2022-09-26 23:26:11 · 2286 阅读 · 0 评论 -
encodeURIComponent与decodeURIComponent的实现
服务器开发之encodeURIComponent与decodeURIComponent实现原创 2022-09-21 11:30:34 · 1925 阅读 · 0 评论 -
mongo安装、卸载、备份、还原、分片、复制、监控、CRUD等操作
mongodb的基本、高级用法原创 2022-09-20 23:01:04 · 919 阅读 · 0 评论 -
c++ 生产者消费者满等不丢数据、满超时丢数据的c++实现
本篇文章主要实现了一种满等不丢数据、满超时等后丢数据的生产者与消费者任务队列。可以根据自己的需求用于不同的场景。原创 2022-09-17 15:32:20 · 450 阅读 · 0 评论 -
nginx实现负载均衡
负载均衡是用反向代理的原理实现的,是将负载分摊到不同的服务单元,既保证服务的可用性,又保证响应足够快,给用户很好的体验,快速增长的访问量和数据流量催生了各式各样的负载均衡的产品,nginx就是其中一个,在linux下有nginx、lvs、haproxy等服务,可以提供复杂均衡服务。原创 2022-09-15 15:34:44 · 623 阅读 · 0 评论 -
systemctl后台服务与journalctl日志与系统日志
systemctl journalctl用法原创 2022-09-15 14:00:55 · 2939 阅读 · 0 评论 -
c++版的ThreadPool源码(摘自OpenHarmony源码)
顾名思义:线程池就是线程的池子,有很多线程,但是数量不会超过池子的限制。需要用到多执行流进行任务出路的时候,就从池子中取出一个线程去处理,线程池就类似于一个实现了消费者业务的生产者与消费者模型。本质上:这就是一个基于生产者消费者模型来实现的线程池,那么同样遵守三种规则,生产者和生产者之间存在互斥,处理任务的线程之间存在互斥关系,生产者和消费者之间存在同步和互斥关系。原创 2022-09-02 22:29:48 · 598 阅读 · 0 评论