自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 收藏
  • 关注

原创 5G时代很火的音视频高级开发学习路线及知识点总结

我们先假设某人在音视频方面是零基础,也没学过任何数字信号处理相关知识,数学基础基本是高中水准,但是熟悉 C/C++ 开发,至少熟悉某一个平台下的编译调试IDE。着重研究两个开源项目 ffmpeg 和 webRTC,主要看ffmpeg的视频部分和webRTC的音频部分。首先,从视频解码入手,这个最简单,调用 ffmpeg视频解码的基本代码只有100行左右,视频解码只要搞懂h.264就好了,80%+场景都是这个编码格式了,了解基本的 H.264 的 sps pps NAL等文件格式概念,了解YUV图像格式原

2021-01-16 14:19:36 2972 5

原创 23种设计模式,今天来聊聊模板模式,工厂方法模式,单例模式。

23种设计模式,今天来聊聊模板模式,工厂方法模式,单例模式。1.随处可见的模板模式2.暗含讲究的工厂方法模式3.单例模式隐含的坑你能看到第几层?视频讲解如下,点击观看:【干货篇】23种设计模式,今天来了解模板模式,工厂方法模式,单例模式。C/C++Linux服务器开发精彩内容包括:C/C++,Linux,Nginx,ZeroMQ,MySQL,Redis,MongoDB,ZK,流媒体,P2P,Linux内核,Docker,TCP/IP,协程,DPDK多个高级知识点分享。点击...

2021-01-30 16:01:45 202 1

原创 谈谈工作中常用的设计模式

今天跟大家聊聊开发过程中用到的机制设计模式。包括在校招,社招面试的时候都要问到的一些设计模式。先看文章,如果还是不怎么理解跟明白的话,你可以回头看看这个视频讲解:设计模式详解面向对象的实现设计模式便是面向对象的深入,面向对象的应用,所以类的实现是第一步:PS:这里依赖了underscore,各位自己加上吧。 1 //window._ = _ || {}; 2 // 全局可能用到的变量 3 var arr = []; 4 var slice = arr.slice; 5 /*

2021-01-30 15:45:13 1779 1

原创 TCP/IP模型以及OSI七层参考模型各层的功能介绍和主要协议

注:网络体系结构是分层的体系结构,学术派标准OSI参考模型有七层,而工业标准TCP/IP模型有四层。后者成为了事实上的标准,在介绍时通常分为5层来叙述但应注意TCP/IP模型实际上只有四层。1、TCP/IP模型(1)物理层物理层规定:为传输数据所需要的物理链路创建、维持、拆除,而提供具有机械的,电子的,功能的和规范的特性,确保原始的数据可在各种物理媒体上传输,为设备之间的数据通信提供传输媒体及互连设备,为数据传输提供可靠的环境。(2)数据链路层主要提供链路控制(同步,异步,二进制,HDL

2021-01-29 14:52:38 5024 2

原创 详解从redis,memcached到nginx,网络底层io

从redis,memcached到nginx,网络底层io的哪些事1.redis的单线程模型2.memcached的多线程模型3.nginx的多进程模型4.10种网络模型的应用场景视频讲解如下,点击观看:【Linux后台开发系列】干货分享丨详解从redis,memcached到nginx,网络底层ioC/C++Linux服务器开发精彩内容包括:C/C++,Linux,Nginx,ZeroMQ,MySQL,Redis,MongoDB,ZK,流媒体,P2P,Linux内核,Doc...

2021-01-28 17:28:36 267 3

原创 DPDK的基本原理、学习路线总结

一、DPDK原理网络设备(路由器、交换机、媒体网关、SBC、PS网关等)需要在瞬间进行大量的报文收发,因此在传统的网络设备上,往往能够看到专门的NP(Network Process)处理器,有的用FPGA,有的用ASIC。这些专用器件通过内置的硬件电路(或通过编程形成的硬件电路)高效转发报文,只有需要对报文进行深度处理的时候才需要CPU干涉。但在公有云、NFV等应用场景下,基础设施以CPU为运算核心,往往不具备专用的NP处理器,操作系统也以通用Linux为主,网络数据包的收发处理路径如下图所示:

2021-01-28 15:40:17 3783 6

原创 epoll全面讲解:从实现到应用

多路复用的适用场合• 当客户处理多个描述符时(例如同时处理交互式输入和网络套接口)• 如果一个TCP服务器既要处理监听套接口,又要处理已连接套接口• 如果一个服务器即要处理TCP,又要处理UDP• 如果一个服务器要处理多个服务或多个协议select/poll/epoll差别 poll返回的时候用户态需要轮询判断每个描述符的状态,即使只有一个描述符就绪,也要遍历整个集合。如果集合中活跃的描述符很少,遍历过程的开销就会变得很大,而如果集合中大部分的描述符都是活跃的,遍历过程的开销又可以

2021-01-27 17:02:50 1172 1

原创 工作多年C/C++该具备哪些专业技能(进阶C++职业规划)

一、C++服务器程序员(流媒体后台,游戏后台,高性能服务器后台)1. 精通C++,STL,Linux等,熟悉设计模式;2. 熟练掌握一门脚本语言(Lua, Python, Perl等);3. 对多线程环境编程有一定的理解,能独立完成服务器端模块的开发、维护和优化;4. 熟练掌握MySQL数据库的开发维护、性能优化;1.精通C++编程,3年以上服务器开发经验;2.有手机游戏或者PC网游开发经验,有过完整手游开发经验者优先;3.精通Socket协议,了解分布式负载和集群类型的服务器框

2021-01-26 16:27:26 3345 1

原创 关于Redis的几件事 | 高并发和高可用

如果你用redis缓存技术的话,肯定要考虑如何用redis来加多台机器,保证redis是高并发的,还有就是如何让Redis保证自己不是挂掉以后就直接死掉了。redis高并发:主从架构,一主多从,一般来说,很多项目其实就足够了,单主用来写入数据,单机几万QPS,多从用来查询数据,多个从实例可以提供每秒10万的QPS。redis高并发的同时,还需要容纳大量的数据:一主多从,每个实例都容纳了完整的数据,比如redis主就10G的内存量,其实你就最对只能容纳10g的数据量。如果你的缓存要容纳的数据量很大,达

2021-01-25 20:42:12 257 1

原创 nginx源码分析之内存池与线程池丨nginx的多进程网络实现

nginx源码分析之内存池与线程池1. nginx的使用场景2. nginx源码 内存池,线程池,日志3. nginx的多进程网络实现视频讲解如下,点击观看:【Linux后台开发系统】nginx源码分析之内存池与线程池丨nginx的多进程网络实现C/C++Linux服务器开发精彩内容包括:C/C++,Linux,Nginx,ZeroMQ,MySQL,Redis,MongoDB,ZK,流媒体,P2P,Linux内核,Docker,TCP/IP,协程,DPDK多个高级知识点分享。点击链

2021-01-25 16:40:11 247 3

原创 Linux内核内存管理架构

内存管理子系统可能是linux内核中最为复杂的一个子系统,其支持的功能需求众多,如页面映射、页面分配、页面回收、页面交换、冷热页面、紧急页面、页面碎片管理、页面缓存、页面统计等,而且对性能也有很高的要求。本文从内存管理硬件架构、地址空间划分和内存管理软件架构三个方面入手,尝试对内存管理的软硬件架构做一些宏观上的分析总结。内存管理硬件架构因为内存管理是内核最为核心的一个功能,针对内存管理性能优化,除了软件优化,硬件架构也做了很多的优化设计。下图是一个目前主流处理器上的存储器层次结构设计方案。.

2021-01-23 15:39:31 232 1

原创 【音视频开发系列】一学就会,快速掌握音视频开发的第一个开源项目FFmpeg

快速掌握音视频开发的第一个开源项目:FFmpeg1.为什么要学FFmpeg2.FFmpeg面向对象思想分析3.FFmpeg各种组件剖析视频讲解如下,点击观看:【音视频开发系列】一学就会,快速掌握音视频开发的第一个开源项目FFmpeg音视频高级开发学习视频链接:FFmpeg/WebRTC/RTMP音视频流媒体高级开发-学习视频音视频高级开发qun:720209036。 更多Linux服务器开发精彩内容关注VX公众号:Linux服务器...

2021-01-23 15:11:26 167

原创 nginx 多进程 + io多路复用 实现高并发

一、nginx 高并发原理简单介绍:nginx 采用的是多进程(单线程) + io多路复用(epoll)模型 实现高并发二、nginx 多进程 启动nginx 解析初始化配置文件后会 创建(fork)一个master进程 之后 这个进程会退出master 进程会 变为孤儿进程 由init进程托管。(可以通过python 或php 启动后创建子进程,然后杀死父进程得见子进程会由init进程托管)如下图可以看到nginx master 进程由init(ppid 为1 )进程管理。.

2021-01-22 16:46:00 2181 5

原创 【Linux内核系列】花90分钟了解4种红黑树的Linux内核应用场景

90分钟了解4种红黑树的Linux内核应用场景1.进程管理与调度的红黑树2.虚拟内存区域的红黑树3.网络sk_buff的红黑树4.epoll的红黑树【Linux内核系列】花90分钟了解4种红黑树的Linux内核应用场景丨epoll的红黑树讲解C/C++Linux服务器开发精彩内容包括:C/C++,Linux,Nginx,ZeroMQ,MySQL,Redis,MongoDB,ZK,流媒体,P2P,Linux内核,Docker,TCP/IP,协程,DPDK多个高级知识点分享。...

2021-01-21 21:45:35 437 2

原创 从开发小白到入职抖音音视频开发岗位技术总结

1.职业发展的迷茫前几天发了一篇关于音视频开发学习录总结,文章链接:https://blog.csdn.net/Linuxhus/article/details/112705431收到一些网友的来信或者留言,反馈如下这样的困惑:1、“我是一名应届毕业生,该如何快速地成长起来”2、“我只懂 C/C++,是学 Android 开发有前途,还是 iOS 开发有前途?”3、“我是一名 Android/iOS 开发,已经可以独立完成一个完整的 App 开发上线,该如何继续提升?”4、“我想从事

2021-01-21 15:50:08 684 2

原创 详解线程锁、进程锁以及分布式锁,开发过程中解决的具体问题

聊聊线程锁、进程锁以及分布式锁1.线程锁-如何调度消费任务队列的线程池;2.进程锁-如何解决nginx惊群问题3.分布式锁-如何解决分布式系统中锁竞争问题【Linux后端开发系列】详解线程锁、进程锁以及分布式锁,开发中解决的具体问题C/C++Linux服务器开发精彩内容包括:C/C++,Linux,Nginx,ZeroMQ,MySQL,Redis,MongoDB,ZK,流媒体,P2P,Linux内核,Docker,TCP/IP,协程,DPDK多个高级知识点分享。点击链接订阅后直接...

2021-01-20 21:39:15 183

原创 Linux进程间通信的几种方式总结-——linux内核剖析

进程间通信概述Linux内核通信相关视频讲解:Linux内核,进程间通信组件的实现 linux内核,进程调度器的实现,内核源码分析进程通信的目的 传输数据 一个进程须要将它的数据发送给还有一个进程。发送的数据量在一个字节到几M字节之间 共享数据 多个进程想要操作共享数据,一个进程对共享数据 通知事 一个进程须要向还有一个或一组进程发送消息。通知它(它们)发生了某种事件(如进程终...

2021-01-20 17:22:29 418

原创 nginx源码学习----内存池详解

最近在进行监控平台的设计,之前一直觉得C/C++中最棘手的部分是内存的管理上,远不止new/delete、malloc/free这么简单。随着代码量的递增,程序结构复杂度的提高。各种内存方面的问题悄然滋生。而且作为平台,后期的插件扩展在所难免。长时间运行的采集平台的特性更是提出了对稳定性的高要求。不是c#、java,没有虚拟机为你管理内存,一切都要靠自己。于是想看看nginx、python、lua这些C的经典之作在内存管理这块“要地”又是如何处理的。先来看看nginx吧,因为网上都说nginx的内存池设

2021-01-19 16:29:12 235 1

原创 什么技术水平,才能拿到腾讯T9(原T3.1)offer,“8+1”的技术维度总结

什么技术水平,才能腾讯T9(原T3.1)offer?1. 腾讯职业等级要求2. 腾讯技术知识树3. “8+1”的技术维度【职业分享篇】什么技术水平,才能拿到腾讯T9(原T3.1)offer,“8+1”的技术维度总结更多C/C++Linux后台服务器开发精彩内容包括:C/C++,Linux,Nginx,ZeroMQ,MySQL,Redis,MongoDB,ZK,流媒体,P2P,Linux内核,Docker,TCP/IP,协程,DPDK多个高级知识点分享。视频链接点击:https://ke

2021-01-18 16:36:54 1809 2

原创 深入浅出Redis-redis哨兵集群

1、Sentinel 哨兵    Sentinel(哨兵)是Redis 的高可用性解决方案:由一个或多个Sentinel 实例 组成的Sentinel 系统可以监视任意多个主服务器,以及这些主服务器属下的所有从服务器,并在被监视的主服务器进入下线状态时,自动将下线主服务器属下的某个从服务器升级为新的主服务器。    例如:    在Server1 掉线后:    升级Server2 为新的主服务器:2、Redis 主从分离 在讲解Sentinel 哨兵集群之前,我们先来搭

2021-01-18 15:58:40 189

原创 天天写order by,你知道Mysql底层执行原理吗?

在实际的开发中一定会碰到根据某个字段进行排序后来显示结果的需求,但是你真的理解order by在 Mysql 底层是如何执行的吗? 假设你要查询城市是苏州的所有人名字,并且按照姓名进行排序返回前 1000 个人的姓名、年龄,这条 sql 语句应该如何写? 首先创建一张用户表,sql 语句如下: CREATE TABLE user ( id int(11) NOT NULL, city varchar(16) NOT NULL, name varchar(16) NO..

2021-01-15 15:53:20 500 1

原创 TCP协议与UDP协议的区别以及与TCP/IP协议的联系

先介绍下什么是TCP,什么是UDP。1. 什么是TCP?TCP(Transmission Control Protocol,传输控制协议)是面向连接的、可靠的字节流服务,也就是说,在收发数据前,必须和对方建立可靠的连接。这一过程和打电话类似:先拨号振铃,等待对方接电话,说喂,再说自己是谁。在因特网协议族(Internet protocol suite)中,TCP层是位于IP层之上,应用层之下的传输层。面向有连接2. 什么是UDP?UDP (User Datagram Protocol

2021-01-14 16:16:26 684 1

原创 高并发的epoll+线程池,线程池专注实现业务

分享几个在bilibili听了觉得讲的还不错的几个视频:1.手写线程池视频:https://www.bilibili.com/video/BV1AT4y137912.epoll原理讲解视频:https://www.bilibili.com/video/BV1Xr4y1c7aV3.手写用户态协议栈视频:https://www.bilibili.com/video/BV1x54y1t7so我们知道,服务器并发模型通常可分为单线程和多线程模型,这里的线程通常是指“I/O线程”,即负责I/O操作,协

2021-01-13 21:44:54 757 1

原创 nginx限制了你的想象?那么请用openresty

nginx限制了你的想象?那么请用openresty1.nginx应用及开发2.openresty如何扩展nginx的功能3.openresty实战案例讲解【Linux服务器开发系列】nginx限制了你的想象?那么请用openresty更多精彩内容包括:C/C++,Linux,Nginx,ZeroMQ,MySQL,Redis,MongoDB,ZK,流媒体,P2P,Linux内核,Docker,TCP/IP,协程,DPDK多个高级知识点分享。视频链接点击:https://ke.q...

2021-01-13 14:25:29 147 1

原创 Linux多线程网络编程要义丨epoll与reactor原理

linux多线程网络编程要义1.epoll原理剖析2.单reactor原理以及应用3.多reactor原理以及应用【Linux服务器系列】Linux多线程网络编程要义丨epoll与reactor原理更多精彩内容包括:C/C++,Linux,Nginx,ZeroMQ,MySQL,Redis,MongoDB,ZK,流媒体,P2P,Linux内核,Docker,TCP/IP,协程,DPDK多个高级知识点分享。视频链接点击:https://ke.qq.com/course/417774?...

2021-01-13 14:22:58 270 1

原创 Linux学习之路(学Linux必看)

随着互联网行业的更新换代,Linux成为大多互联网行业公司主流系统,很多同学接触Linux不多,对Linux平台的开发更是一无所知。 而现在的趋势越来越表明,作为一个优秀的软件开发人员,或计算机IT行业从业人员, 掌握Linux是一种很重要的谋生资源与手段。下来我将会结合自己的几年的个人开发经验,及对 Linux,更是类UNIX系统,及开源软件文化, 谈谈Linux的学习方法与学习中应该注意的一些事。就如同刚才说的,很多同学以前可能连Linux是什么都不知道,对UNIX更是一无所知。 所以我们从最基

2021-01-12 15:14:25 513 1

原创 Skynet基于Actor模式的开源框架

使用多进程解决高并发带来的问题是进程安全锁,框架经常会因为部分代码的报错而导致死锁或内存占用不释放等诸多问题。而使用单进程的服务器框架,通过线程池来做消息轮询和任务执行,能够避开锁带来的诸多问题。框架的初衷 众核时代的并行编程 免费的晚餐已经结束了(The Free Lunch Is Over -- Herb Sutter, 2005) E5420(2.5GHz 2004) VS E5-2620v3(2.4GHz 2014) 我们获得了更多的核心、更多的线程、更大的缓

2021-01-11 16:00:28 1460 3

原创 理解MySQL——索引与优化篇

写在前面:索引对查询的速度有着至关重要的影响,理解索引也是进行数据库性能调优的起点。考虑如下情况,假设数据库中一个表有10^6条记录,DBMS的页面大小为4K,并存储100条记录。如果没有索引,查询将对整个表进行扫描,最坏的情况下,如果所有数据页都不在内存,需要读取10^4个页面,如果这10^4个页面在磁盘上随机分布,需要进行10^4次I/O,假设磁盘每次I/O时间为10ms(忽略数据传输时间),则总共需要100s(但实际上要好很多很多)。如果对之建立B-Tree索引,则只需要进行log100(10^6)=

2021-01-09 19:47:52 179 1

原创 去中心化,p2p,网络穿透一起搞定丨NAT原理丨网络穿透实战演示

去中心化,p2p,网络穿透一起搞定NAT原理讲解p2p的应用场景网络穿透实战【Linux服务器系列】去中心化,p2p,网络穿透一起搞定丨NAT原理丨网络穿透实战演示更多精彩内容包括:C/C++,Linux,Nginx,ZeroMQ,MySQL,Redis,MongoDB,ZK,流媒体,P2P,Linux内核,Docker,TCP/IP,协程,DPDK多个高级知识点分享。视频链接点击:https://ke.qq.com/course/417774?flowToken=1013189L

2021-01-09 15:00:19 391 1

原创 深度:一文看懂Linux内核!Linux内核架构和工作原理详解

简介作用是将应用层序的请求传递给硬件,并充当底层驱动程序,对系统中的各种设备和组件进行寻址。目前支持模块的动态装卸(裁剪)。Linux内核就是基于这个策略实现的。Linux进程1.采用层次结构,每个进程都依赖于一个父进程。内核启动init程序作为第一个进程。该进程负责进一步的系统初始化操作。init进程是进程树的根,所有的进程都直接或者间接起源于该进程。virt/ ---- 提供虚拟机技术的支持。全文导读 Linux内核预备工作 Linux内核体系结构简析简析 Linux体

2021-01-08 17:25:13 2521 1

原创 解析redis存储结构丨 redis与mysql存储对比丨redis存储原理分析

90分钟视频讲解搞懂redis存储原理1.redis与mysql存储对比2.redis存储原理分析3.redis存储与持久化的关系【后端开发系列】解析redis存储结构丨 redis与mysql存储对比丨redis存储原理分析更多精彩内容包括:C/C++,Linux,Nginx,ZeroMQ,MySQL,Redis,MongoDB,ZK,流媒体,P2P,Linux内核,Docker,TCP/IP,协程,DPDK多个高级知识点分享。点击:https://ke.qq.com/cour...

2021-01-08 15:02:32 316 2

原创 多线程环境下海量定时任务的定时器设计丨时间轮实现丨红黑树,跳表分析

多线程环境下海量定时任务定时器设计1.定时器分析2.红黑树,最小堆,跳表实现比较分析3.时间轮实现【Linux后端开发系列】多线程环境下海量定时任务的定时器设计丨时间轮实现丨红黑树,跳表分析更多精彩内容包括:C/C++,Linux,Nginx,ZeroMQ,MySQL,Redis,MongoDB,ZK,流媒体,P2P,Linux内核,Docker,TCP/IP,协程,DPDK多个高级知识点分享。点击:https://ke.qq.com/course/417774?flowToke...

2021-01-08 14:56:54 430

原创 【Linux服务器系列】服务器性能慢,原来你不懂这些操作,学会后可以提升8倍

服务器为什么慢,原来这样操作,可以提升8倍1.服务器io异步优化2.请求io异步优化3.异步的实现原理【Linux服务器系列】服务器慢,原来你不懂这些操作,学会后可以提升8倍更多精彩内容包括:C/C++,Linux,Nginx,ZeroMQ,MySQL,Redis,MongoDB,ZK,流媒体,P2P,Linux内核,Docker,TCP/IP,协程,DPDK多个高级知识点分享。点击:https://ke.qq.com/course/417774?flowToken=101318...

2021-01-08 14:50:25 152 1

原创 【音视频开发系列】盘点音视频直播RTSP/RTMP推流一定会遇到的各种坑,教你快速解决

聊聊RTSP/RTMP推流那些坑1.推流架构分析2.推流缓存队列的设计3.FFmpeg函数阻塞问题分析【音视频开发系列】盘点音视频直播一定会遇到的各种坑,教你快速解决更多精彩内容包括:C/C++,Linux,Nginx,ZeroMQ,MySQL,Redis,MongoDB,ZK,流媒体,P2P,Linux内核,Docker,TCP/IP,协程,DPDK多个高级知识点分享。点击:https://ke.qq.com/course/417774?flowToken=1013189视频代码

2021-01-08 14:44:48 411 1

原创 Linux服务器c++开发之路,从Linux基础入门到服务器开发高级架构

Linux服务器c++开发之路正式开始学习Linux高并发服务器c++开发相关的技术。学习路线:    基础数据结构     gcc, make, gdb     Qt编程     Tcp/IP协议c/c++语言 ---> c/c++实战项目 ---> Linux基础入门  ---> Linux系统编程  ---> Linux网络编程 ---> 高并发服务器         常用算法       Shell编程思维导图如下:(清晰版+群...

2021-01-07 17:44:23 2460 12

原创 简历书写,职业规划,学习路线,金三银四,为2021跳槽做好充足准备

带你避过简历的6大坑,为2021跳槽做好充足准备1.项目经历书写2.专业技能描述3.自我评价阐述【职业规划篇】简历书写,职业规划,学习路线,金三银四,为2021跳槽做好充足准备更多精彩内容包括:C/C++,Linux,Nginx,ZeroMQ,MySQL,Redis,MongoDB,ZK,流媒体,P2P,Linux内核,Docker,TCP/IP,协程,DPDK多个高级知识点分享。点击:https://ke.qq.com/course/417774?flowToken=10131...

2021-01-06 19:44:44 200

原创 skynet源码分析:服务,Actor模型,lua接口编程,demo演示Actor编程思维

skynet刚开始是单进程多线程的,它是由一个一个的服务组成的。在skynet上做开发,实际上就是在写服务。服务与服务之间通过消息队列进行通信。做为核心功能,Skynet 仅解决一个问题: 把一个符合规范的 C 模块,从动态库(so 文件)中启动起来,绑定一个永不重复(即使模块退出)的数字 id 做为其 handle 。模块被称为服务(Service),服务间可以自由发送消息。每个模块可以向 Skynet 框架注册一个 callback 函数,用来接收发给它的消息。每个服务都是被一个个消息包...

2021-01-06 16:38:00 385 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除