目錄
項目介紹
開發環境
技術選型
環境搭建?
安裝 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