目录
项目介绍
开发环境
技术选型
环境搭建
安装 wget(一般情况下默认会自带)
更换国内软件源
安装 lrzsz 传输工具
安装编译器
安装项目构建工具 make
安装调试器
安装 git
安装 cmake
安装 Protobuf
安装 Muduo
安装 SQLite3
安装 Gtest
项目介绍
首先说一下什么叫做阻塞队列。阻塞队列实际上就是一种生产消费模型,生产者生产数据到队列中,消费者取出数据进行处理。它有很多好处:
○ 解耦合 ○ 支持并发 ○ 支持忙闲不均 ○ 削峰填谷
而在实际的后端开发中, 尤其是分布式系统里, 跨主机之间使用生产者消费者模型, 也是非常普遍的需求。因此, 我们通常会把阻塞队列封装成一个独立的服务器程序, 并且赋予其更丰富的功能。 这样的服务程序我们就称为 消息队列 (Message Queue, MQ)。市面上成熟的消息队列非常多:
○ RabbitMQ ○ Kafka ○ RocketMQ ○ ActiveMQ
其中 RabbitMQ 是一个非常知名、功能强大且广泛使用的消息队列。咱们就仿照RabbitMQ 模拟实现一个简单的消息队列。
开发环境
-
Linux(Ubuntu-22.04)
-
VSCode
-
g++/gdb
-
Makefile
技术选型
- 开发主语言:C++
- 序列化框架:Protobuf 二进制序列化
- 网络通信:
自定义应用层协议 + 原生 socket: 复杂度较高- 自定义应用层协议 + muduo 库:对 tcp 长连接的封装、并且使用 epoll 的事件驱动模式,实现高并发服务器与客户端
- 源数据信息数据库: SQLite3
- 单元测试框架: Gtest
环境搭建
安装 wget(一般情况下默认会自带)
sudo apt-get install wget
更换国内软件源
先备份原来的/etc/apt/source.list 文件
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
添加软件源文件内容,新增以下内容
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
#添加清华源
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
新增完毕后,更新源
sudo apt-get update
安装 lrzsz 传输工具
sudo apt-get install lrzsz
安装编译器
sudo apt-get install gcc g++
安装项目构建工具 make
sudo apt-get install make
安装调试器
sudo apt-get install gdb
安装 git
sudo apt-get install git
安装 cmake
sudo apt-get install cmake
安装 Protobuf
# 更新软件包列表
sudo apt update# 安装 protobuf 编译器和运行时库
sudo apt install protobuf-compiler# 验证安装
protoc --version
安装 Muduo
wget https://gitee.com/hansionz/mq/raw/master/resource/muduo-master.zip
# 安装依赖环境
sudo apt-get install libz-dev libboost-all-dev
# 运行脚本编译安装
unzip muduo-master.zip
./build.sh
./build.sh install
安装 SQLite3
sudo apt-get install sqlite3 libsqlite3-dev
安装 Gtest
sudo apt-get install libgtest-dev