rabbitmq

1.安装 rabbitmq 服务

1.1 本地源安装

# 安装 openssl 依赖
sudo apt-get install libssl-dev

# 添加源
echo 'deb http://www.rabbitmq.com/debian/ testing main' |
        sudo tee /etc/apt/sources.list.d/rabbitmq.list

# 更新源
sudo apt-get update

# 安装 rabbitmq-server
sudo apt-get install rabbitmq-server
# 如安装失败,添加公钥到信任列表
wget http://www.rabbitmq.com/rabbitmq-signing-key-public.asc

1.2 使用 docker

# 查询镜像文件
docker search rabbitmq

# 拉取镜像文件
docker pull rabbitmq:3.7-management

# 启动
docker run -it -d --hostname my-rabbit --name rabbit \
    -e RABBITMQ_DEFAULT_USER=admin \
    -e RABBITMQ_DEFAULT_PASS=admin \
    -p 15672:15672 \
    -p 5672:5672 \
    rabbitmq:3.7-management

2. c++ 中使用 rabbitmq

rabbitmq-c

rabbitmq-codegen

SimpleAmqpClient

2.1 rabbitmq-c 安装

2.1.1 安装依赖库
2.1.2. 安装 rabbitmq-c
```bash
git clone https://github.com/alanxz/rabbitmq-c
cd rabbitmq-c
git clone https://github.com/rabbitmq/rabbitmq-codegen.git
mv rabbitmq-codegen codegen  # 重命名为 codegen

mkdir build
cd build
cmake -DBUILD_EXAMPLES=OFF -DBUILD_SHARED_LIBS=ON \
    -DBUILD_STATIC_LIBS=ON -DBUILD_TESTS=OFF ..
make

# 默认安装位置移动至 /usr/local
mv /usr/local/lib/x86_64-linux-gnu/pkgconfig/librabbitmq.pc \
    /usr/local/lib/pkgconfig/librabbitmq.pc
mv /usr/local/lib/x86_64-linux-gnu/librabbitmq.* /usr/local/lib/
# rm -rf /usr/local/lib/x86_64-linux-gnu
```

2.2 SimpleAmqpClient 安装

```bash
# 安装依赖库
sudo apt-get install libboost-chrono-dev libboost-system-dev

git clone https://github.com/alanxz/SimpleAmqpClient.git
cd SimpleAmqpClient
mkdir build
cd build
cmake ..
make
sudo make install
```

附:rabbitmq 常用命令

# 启动 web 监控
sudo rabbitmq-server
# 开启 Web 管理插件
sudo rabbitmq-plugins enable rabbitmq_management
# 查看服务
sudo rabbitmq-plugins list
# 启动
sudo service rabbitmq-server start
# 关闭
sudo rabbitmqctl stop
# 设置开机自启
sudo chkconfig rabbitmq-server on

# 新建用户
rabbitmqctl add_user <用户名> <密码> # guest 只能本地访问
# 设定用户 administrator 角色
rabbitmqctl set_user_tags <用户名> administrator
# 赋予用户权限
rabbitmqctl set_permission -p / <用户名> ".*" ".*" ".*"
# 查看所有账号
rabbitmqctl list_users
# 修改密码
rabbitmqctl change_password <用户名> <新密码>
# 删除用户
rabbitmqctl delete_user <用户名>
Table of Contents