本文介绍开发Linux后台服务器所需的知识点。 Linux后台服务器的开发面向有Linux的基础。 本文从8个方面概括开发中使用的知识点。 (技术要点均提供免费视频,关注私信关键词。 1。 拿下)
第一 算法与设计专题
1.排序和搜索插入排序
快速排序
希尔排序
水桶排序
基数排序
合并排序
2 .常用算法
布隆过滤器
字符串匹配KMP算法
回溯算法
贪婪算法
推荐算法
深度优先、广度优先
3 .常用数据结构
平衡二叉树
红黑的树
B-树
KMP算法
堆栈/队列
布隆过滤器
4 .常用的设计模式
单实例模式
责任链模式
过滤模式
发布订阅模型
代理模式
工厂模式
第二 后台组件编程专题
1.持久化MySQLMySQL安装配置和远程连接
项目:数据操作基于SQL语句
项目:存储过程和事务
项目: SQL函数、运算、暂定表
项目:防止数据丢失的备份和恢复
项目:索引MySQL库生成表
2 .消息队列ZeroMQ
ZMQ编译安装与开发环境构建
项目:实现发布器-订阅器模式
项目:实现请求响应模式
项目:实现路由器-经销器模式
项目:历史上最快的消息队列-配置文件
缓存Redis
Redis编译安装配置
项目:客户端的全局唯一ID保存机制
项目: Redis消息队列机制发出订阅
项目: Redis事务实战
项目: Redis安全性能、数据备份和恢复
项目: Redis分布式锁定详细信息
4 .反向代理Nginx
Nginx开发介绍
项目:反向代理负载平衡配置详细信息
项目:自定义协议upstream开发
项目:子域名映射
项目:服务器后台攻击预防
项目: nginx双虚拟主机
5.rest风格的http
Http第三方接口的实现
项目:异步Http请求
项目: ngrok和Restlet
项目:长连接和短链接
6 .协调服务ZooKeeper
ZK编译安装和C API开发环境
项目:集群管理和服务注册
项目:创建和监视节点
项目:实现分布式锁定
项目: ZK伪集群部署和服务管理
7.NoSQL MongoDB
MongDB的安装与开发介绍
项目: MongoDB备份和恢复
项目: MongoDB文档操作
项目:全文搜索和正则表达式
项目:蒙哥数据库建设藏品
第三 代码工程化专题
1.体系结构工程工程参数配置与编译cmake
代码规范和命名约定
文件命名和变量命名约定
脚本配置工具autoconf
代码工程组织体系结构Makefile
2 .托管代码
分布式版本控制系统git
远程仓库,标签管理
github和代码云
创建、导入和检出仓库
svn环境的构建与原理
分支管理冲突解决
产品代码版本管理SVN
第四 网络服务专题
1.源代码实现服务器IO核心— epoll编程实战
客户端多网络连接机制poll
文件IO管理选择实战
2 .框架实战
高性能的时间周期libev
跨平台异步I/O libuv
跨平台c库Boost.Asio
事件通知库libevent
3 .理论细节
分块型BIO
异步IO AIO
非闭塞型IO NIO
第五 开源框架专题
1.TCP协议栈基于DPDK的高性能用户状态协议栈f -栈
>基于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
第七 Linux系统专题
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脚本
网络组安全与防火墙
产品上云公网发布