【仿RabbitMQ的发布订阅式消息队列】--- 介绍

Welcome to 9ilk's Code World

(๑•́ ₃ •̀๑) 个人主页: 9ilk

(๑•́ ₃ •̀๑) 文章专栏: 项目


本篇博客主要是对仿RabbitMQ消息队列这个组件项目的总体介绍。

为什么做这个项目

之前接触类似消息队列的概念,主要是在学习生产者消费者模型中了解到的阻塞队列。在学习分布式系统的时候,发现消息队列的应用较为广泛,它可以作为跨主机之间使用的生产者消费者模型,其中业界有不少成熟的消息队列中间件,比如RabbitMQ,Kafka,RocketMQ等,本项目主要是用来对消息队列内部主要工作和设计流程进行学习的一个组件项目。

**消息队列(Message Queue,MQ)**其实就是把阻塞队列封装为一个独立的服务器程序,并且赋予更丰富的功能,它主要用于异步传输数据,允许程序应用程序通过发送和接收消息来进行解耦、异步和可靠的通信。它有如下的好处:

  • **异步:**发送方不需要等待接收方处理完成,有利于提升系统的响应速度。
  • 解耦:发送方和接收方不直接依赖,系统更容易扩展和维护。
  • 削峰填谷:高并发时,消息积压在队列中,后端系统可以慢慢处理,防止崩溃。
  • 可靠性:消息可持久化,防止数据丢失。

技术栈

  1. 开发环境
  • Linux(Ubuntu-22.04)
  • VSCode
  • g++ / gdb
  • Makefile
  • C++11
  1. 关键技术
  • 编程语言:C++
  • 序列化框架:Protobuf二进制序列化
  • 网络库:Muduo库
  • 源数据信息数据库:SQLite
  • 单元测试框架:GTest
  • C++11异步操作技术:future/async/packaged_test/promise

项目相关环境依赖

  1. 安装基础工具
  • 安装wget
bash 复制代码
sudo apt-get install wget 
  • 安装lszrz传输工具
cpp 复制代码
sudo apt-get install lrzsz
  • 安装g++编译器
cpp 复制代码
sudo apt-get install g++ gcc
  • 安装构建工具make和调试工具gdb
cpp 复制代码
sudo apt-get install make
sudo apt-get install gdb
  • 安装git
bash 复制代码
sudo apt-get install git
  • 安装cmake
cpp 复制代码
sudo apt-get install cmake
  1. protobuf安装
  • 安装Protobuf依赖库
cpp 复制代码
sudo apt-get install autoconf automake libtool curl unzip gzip
  • 下载Protobuf包,并编译安装
bash 复制代码
wget https://github.com/protocolbuffers/protobuf/releases/download/v3.20.2/protobuf-all-3.20.2.tar.gz
//解压缩
tar -xzf protobuf-all-3.20.2.tar.gz 
//切换目录
cd protobuf-3.20.2/
//环境检测
./autogen.sh
//配置安装路径 默认安装在/usr/local目录,lib、bin都是分散的
./configure
//开始编译
make
//开始安装
sudo make install
//确认是否安装成功
protoc --version
  1. muduo库安装
  • 通过git下载Muduo库的源码或使用备用下载链接
cpp 复制代码
git clone https://github.com/chenshuo/muduo.git
wget https://gitee.com/hansionz/mq/raw/master/resource/muduo-master.zip
  • 安装依赖环境,并运行脚本编译安装
cpp 复制代码
sudo apt-get install libz-dev libboost-all-dev
./build.sh
./build.sh intsall //库文件打包到一起

//测试
#切换编译目录 bin
root@VM-8-14-ubuntu:~/build/release-cpp11# cd bin
#运行protobuf-demo服务端
./protobuf_server  9091
#运行protobuf-demo服务端
./protobuf_client  0.0.0.0 9091    
  1. SQLite安装
cpp 复制代码
sudo apt-get install sqlite3 libsqlite3-dev
sqlite3 --version
  1. GTest安装
bash 复制代码
sudo apt-get install libgtest-dev
相关推荐
超级大只老咪6 小时前
快速进制转换
笔记·算法
嵩山小老虎7 小时前
Windows 10/11 安装 WSL2 并配置 VSCode 开发环境(C 语言 / Linux API 适用)
linux·windows·vscode
Fleshy数模7 小时前
CentOS7 安装配置 MySQL5.7 完整教程(本地虚拟机学习版)
linux·mysql·centos
a41324477 小时前
ubuntu 25 安装vllm
linux·服务器·ubuntu·vllm
Fᴏʀ ʏ꯭ᴏ꯭ᴜ꯭.8 小时前
Keepalived VIP迁移邮件告警配置指南
运维·服务器·笔记
一点程序9 小时前
基于SpringBoot的选课调查系统
java·spring boot·后端·选课调查系统
一只自律的鸡9 小时前
【Linux驱动】bug处理 ens33找不到IP
linux·运维·bug
17(无规则自律)9 小时前
【CSAPP 读书笔记】第二章:信息的表示和处理
linux·嵌入式硬件·考研·高考
!chen9 小时前
linux服务器静默安装Oracle26ai
linux·运维·服务器
ling___xi9 小时前
《计算机网络》计网3小时期末速成课各版本教程都可用谢稀仁湖科大版都可用_哔哩哔哩_bilibili(笔记)
网络·笔记·计算机网络