本文将介绍linux后台服务器开发所需要用到的知识点, Linux后台服务器开发是针对有Linux基础的,本文将从八个点概括我们开发时所用到的知识点。(技术点目尾都提供免费视频,关注+私信关键字:1 。取)
1.排序与查找
插入排序
快速排序
希尔排序
桶排序
基数排序
归并排序
2.常用算法
布隆过滤器
字符串匹配 KMP算法
回溯算法
贪心算法
推荐算法
深度优先,广度优先
3.常用的数据结构
平衡二叉树
红黑树
B-树
KMP算法
栈/队列
布隆过滤器
4.常用的设计模式
单例模式
责任链模式
过滤器模式
发布订阅模式
代理模式
工厂模式
1.持久化 MySQL
MySQL安装配置与远程连接
项目:数据操作源于SQL语句
项目:存储过程与事务处理
项目:SQL函数,运算,临时表
项目:防数据丢失 备份与恢复
项目:MySQL建库建表建索引
2.消息队列 ZeroMQ
ZMQ编译安装与开发环境搭建
项目:publisher-subscriber模式实现
项目:request-response模式实现
项目:Router-Dealer模式实现
项目:史上最快的消息队列—性能分析
3.缓存 redis
Redis编译安装配置
项目:客户端全局唯一ID保存机制
项目:Redis消息队列机制 发布订阅
项目:Redis事务实战
项目:Redis安全性能,数据备份与恢复
项目:Redis分布式锁详解
4.反向代理 Nginx
Nginx开发介绍
项目:反向代理负载均衡配置详解
项目:自定义协议upstream开发
项目:子域名映射
项目:服务器后台攻击预防
项目:nginx双虚拟主机
5.Restful Http
Http第三方接口实现
项目:异步Http请求
项目:ngrok与Restlet
项目:长连接与短链接
6.协调服务 ZooKeeper
ZK编译安装与C API开发环境
项目:集群管理与服务注册
项目:节点创建与监控
项目:分布式锁的实现
项目:ZK伪集群部署与服务管理
7.NoSQL MongoDB
MongDB安装与开发介绍
项目:MongoDB备份与恢复
项目:MongoDB文档操作
项目:全文检索与正则表达式
项目:MongoDB建库建集合
1.架构工程
工程参数配置与编译 cmake
代码规范与命名规则
文件命名与变量命名规则
脚本配置工具 autoconf
代码工程组织架构 Makefile
2.管理代码
分布式版本控制系统 git
远程仓库,标签管理
github与码云
创建仓库,导入,checkout
svn环境搭建与原理
分支管理 冲突解决
产品代码版本管理 SVN
1.源码实现
服务器IO核心— epoll编程实战
客户端多网络连接机制poll
文件IO管理select实战
2.框架实战
高性能的时间循环 libev
跨平台异步I/O libuv
跨平台的C++库 Boost.Asio
事件通知库 libevent
3.理论详解
阻塞型 BIO
异步IO AIO
非阻塞型IO NIO
1.TCP协议栈
基于DPDK的高性能用户态协议栈 f-stack
基于Netmap单线程协议栈 NtyTcp
精简版tcp协议栈 LWIP
2.并发性
用OpenCL的C++ GPU计算库 Boost.Compute
Intel线程构件块 Intel TBB
并行编程的异构系统的开放标准 OpenCL
C++11的反应性编程库 C++ React
3.数据库
Redis数据库的C客户端库 hiredis
Facebook的嵌入键值的快速存储 RocksDB
用于Sqlite3的C++对象关系映射 hiberlite
4.国际化
Unicode 和全球化支持的C、C++ 和JAVA库 IBM ICU
不同字符编码之间的编码转换库 libiconv
GNU gettext
5.压缩
非常紧凑的数据流压缩库 Zlib
快速压缩和解压缩 SnAppy
非常快速的压缩算法 LZ4
单一的C源文件,紧缩/膨胀压缩库 Miniz
6.日志
设计非常模块化,并且具有扩展性 Boost.Log
灵活添加日志到文件,系统日志 Log4cpp
添加日志到你的C++应用程序 templog
C++日志库,只包含单一的头文件 easyloggingpp
7.多媒体库
开源音频库—跨平台的音频API OpenAL
网络实时流媒体通信 WebRTC
音频和音乐数字信号处理库 Maximilian
C++易用和高效的音频合成 Tonic
8.序列化
快速数据交换格式和RPC系统 Cap'n Proto
协议缓冲,谷歌的数据交换格式 ProtoBuf
高效的跨语言IPC/RPC Thrift
内存高效的序列化库 FlatBuffers
9.XML库
Gnome的xml C解析器和工具包 LibXml2
简单快速的C++CML解析器 TinyXML2
简单快速的XML解析器 PugiXML
C++的xml解析器 LibXml++
10.脚本
小型快速脚本引擎 Lua
谷歌的快速JavaScript引擎 V8
嵌入式脚本语言 ChaiScript
11.Json库
进行编解码和处理Jason数据的C语言库 Jansson
C语言中的JSON解析和打印库 ibjson
轻量级的JSON库 libjson
C/C++的Jason解析生成器 Frozen
12.数学库
高质量的C++线性代数库 Armadillo
数学图形模板库 GMTL
用于个高精度计算的C/C++库 GMP
高级C++模板头文件库 Eigen
13.安全
SSL,TLS和DTLS协议的安全通信库 GnuTLS
功能齐全的,开源加密库 Openssl
有关加密方案的免费的C++库 Cryto++
14.Web应用框架
安全快速开源Web服务器 Lighttpd
基于Qt库的web框架 QDjango
高性能的HTTP和反向代理web服务器 Nginx
15.网络库
C异步网络开发库 Dyad.c
多协议文件传输库 Curl
高速模块化的异步通信库 ZeroMQ
C++面向对象网络工具包 ACE
16.异步事件
事件通知库 libevent
跨平台异步I/O libuv
功能齐全,高性能的时间循环 libev
网络和底层I/O编程的跨平台的C++库 Boost.Asio
17.协程
纯c版的协程框架 ntyco
C++11实现协程库, golang风格 libgo
微信支持8亿用户同时在线的底层IO库 libco
1.调试库
Boost测试库 Boost.Test
内存调试性能分析工具 Valgrind
谷歌C++测试框架 googleTest
内存分配跟踪库 MemTrack
2.测试库
单元测试框架 minUnit
测试用例编写 libtap
轻量级的C++单元测试框架 UnitTest++
自动化测试用例 gtest和luatest
3.性能工具
高性能代码构建系统 tundra
Http压测工具 WRK
网站压测工具 webbench
高性能构建系统 FASTBuild
1.系统命令工具
进程间通信设施状态 ipcs
Linux系统运行时长 uptime
CPU平均负载和磁盘活动 IOStat
监控,收集和汇报系统活动 sar
监控多处理器使用情况 mpstat
监控进程的内存使用情况 pmap
系统管理员调优和基准测量工具 nmon
密切关注Linux系统 glances
查看系统调用 strace
2.基础命令工具
系统进程状态 ps
虚拟内存统计工具 vmstat
控制台的流量监控工具 vnstat
进程监控工具 atop,htop
内存使用状态 free
3.网络参数工具
Linux网络统计监控工具 netstat
显示和修改网络接口控制器 ethtool
网络数据包分析利刃 tcpdump
远程登陆服务的标准协议 telnet
获取实时网络统计信息 iptraf
显示主机上网络接口带宽使用情况 iftop
4.磁盘参数工具
磁盘卸载 umount
读取、转换并输出数据 dd
文件系统系统 df
磁盘挂载 mount
5.日志监控工具
实时网络日志分析器 GoAccess
多窗口之下日志监控 MultiTail
日志分析系统 LogWatch/Swatch
6.参数监控工具
监控Apache网络服务器整体性能 apachetop
ftp 服务器基本信息 ftptop
IO监控 iotop
电量消耗和电源管理 powertop
监控 mysql 的线程和性能 mytop
系统运行参数分析 htop/top/atop
1.项目需求
物联网云广播项目介绍
项目需求规格说明
架构设计和接口说明
2.工程代码
socket TCP服务器编程
UDP编程与广播多播
TCP的长连接还是短连接
MYSQL库表设计
第三方登陆 微信OAuth2授权登陆
高德地图显示
进程间通信方案
用户注册短信验证
账户充值微信支付
内存池ringbuffer设计
3.功能测试
用户连接测试用例
tcp与udp数据包测试用例
用户注册测试用例
内存管理测试用例
数据库吞吐量测试用例
4.产品发布
自动启动之shell脚本
网络组安全与防火墙
产品上云公网发布