【C++】:C++基于微服务的即时通讯系统(2)

🛠️ 聊天室后台环境搭建指南

📦 代码仓库:
https://gitee.com/bitedu-tech/cpp-chatsystem


一、基础开发工具安装

bash 复制代码
# 编辑器
sudo apt-get install vim

# 编译器
sudo apt-get install gcc g++

# 调试器
sudo apt-get install gdb

# 项目构建工具
sudo apt-get install make cmake

# 文件传输工具
sudo apt-get install lrzsz

# 版本管理工具
sudo apt-get install git

二、C++开发框架安装

1. 基础框架

bash 复制代码
# gflags - 命令行参数解析
sudo apt-get install libgflags-dev

# gtest - 单元测试框架
sudo apt-get install libgtest-dev

# spdlog - 日志输出框架
sudo apt-get install libspdlog-dev

2. 网络通信框架

bash 复制代码
# brpc - RPC框架(先安装依赖)
sudo apt-get install -y git g++ make libssl-dev libprotobuf-dev libprotoc-dev protobuf-compiler libleveldb-dev

# 编译安装brpc
git clone https://github.com/apache/brpc.git
cd brpc/
mkdir build && cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr .. && cmake --build . -j6
make && sudo make install

3. HTTP/WebSocket框架

bash 复制代码
# cpp-httplib - HTTP服务器
git clone https://github.com/yhirose/cpp-httplib.git

# websocketpp - WebSocket服务器
sudo apt-get install libwebsocketpp-dev
# 验证安装:ls /usr/include/websocketpp/

三、数据库与存储系统

1. Redis - 缓存与会话管理

bash 复制代码
# 安装Redis
sudo apt install redis -y

# 配置Redis(支持远程连接)
sudo vim /etc/redis/redis.conf
# 修改以下配置:
# bind 0.0.0.0           # 允许所有IP连接
# protected-mode no      # 关闭保护模式

# 启动Redis
sudo systemctl start redis-server
sudo systemctl enable redis-server

# 安装Redis客户端SDK
sudo apt install libhiredis-dev
git clone https://github.com/sewenew/redis-plus-plus.git
cd redis-plus-plus
mkdir build && cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr ..
make && sudo make install

2. MySQL - 关系型数据库

bash 复制代码
# 安装MySQL
sudo apt install mysql-server
sudo apt install -y libmysqlclient-dev

# 配置MySQL字符集和远程访问
sudo vim /etc/mysql/my.cnf
# 添加以下内容:
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
character-set-server=utf8
bind-address = 0.0.0.0

# 重启MySQL
sudo systemctl restart mysql
sudo systemctl enable mysql

3. ODB - 数据库ORM框架

bash 复制代码
# 安装build2(耗时1-3小时)
curl -sSf0 https://download.build2.org/0.17.0/build2-install-0.17.0.sh
sh build2-install-0.17.0.sh

# 安装ODB编译器
sudo apt-get install gcc-11-plugin-dev
mkdir odb-build && cd odb-build
bpkg create -d odb-gcc-N cc config.cxx=g++ config.cc.coptions=-03 config.bin.rpath=/usr/lib config.install.root=/usr/ config.install.sudo=sudo
cd odb-gcc-N
bpkg build odb@https://pkg.cppget.org/1/beta
bpkg install odb

# 设置环境变量
export PATH=${PATH}:/usr/local/bin

四、搜索与消息队列

1. Elasticsearch - 全文搜索引擎

bash 复制代码
# 安装Elasticsearch 7.17.21
curl -s https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --no-default-keyring --keyring gnupg-ring:/etc/apt/trusted.gpg.d/icsearch.gpg --import
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elasticsearch.list
sudo apt update
sudo apt-get install elasticsearch=7.17.21

# 安装中文分词插件
sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install https://get.infini.cloud/elasticsearch/analysis-ik/7.17.21

# 配置ES(允许外部访问)
sudo vim /etc/elasticsearch/elasticsearch.yml
# 修改:
# network.host: 0.0.0.0
# http.port: 9200

# 启动ES
sudo systemctl restart elasticsearch
sudo systemctl enable elasticsearch

# 安装Kibana(ES可视化工具)
sudo apt install kibana
sudo vim /etc/kibana/kibana.yml
# 修改:
# server.port: 5601
# server.host: "0.0.0.0"
# elasticsearch.hosts: ["http://localhost:9200"]

sudo systemctl start kibana
sudo systemctl enable kibana

2. RabbitMQ - 消息队列

bash 复制代码
# 安装RabbitMQ
sudo apt install rabbitmq-server

# 启动服务
sudo systemctl start rabbitmq-server

# 创建管理员用户
sudo rabbitmqctl add_user root 123456
sudo rabbitmqctl set_user_tags root administrator
sudo rabbitmqctl set_permissions -p / root "." "." ".*"

# 开启Web管理界面
sudo rabbitmq-plugins enable rabbitmq_management

# 访问地址:http://服务器IP:15672

五、服务发现与分布式协调

Etcd - 服务注册与发现

bash 复制代码
# 安装etcd
sudo apt-get install etcd
sudo systemctl start etcd
sudo systemctl enable etcd

# 安装etcd C++客户端
sudo apt-get install libboost-all-dev protobuf-compiler-grpc
sudo apt-get install libgrpc-dev libgrpc++-dev
sudo apt-get install libcpprest-dev

git clone https://github.com/etcd-cpp-apiv3/etcd-cpp-apiv3.git
cd etcd-cpp-apiv3
mkdir build && cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/usr
make -j$(nproc) && sudo make install

六、客户端SDK安装

1. Elasticsearch客户端

bash 复制代码
sudo apt-get install libmicrohttpd-dev
git clone https://github.com/seznam/elasticlient.git
cd elasticlient
git submodule update --init --recursive
mkdir build && cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr ..
make && sudo make install

2. RabbitMQ客户端

bash 复制代码
sudo apt-get install librabbitmq-dev
git clone https://github.com/CopernicaMarketingSoftware/AMQP-CPP.git
cd AMQP-CPP/
mkdir build && cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr ..
make && sudo make install
sudo apt install libev-dev    # 网络库组件

七、验证安装

1. 验证ODB安装

bash 复制代码
odb --version
# 如果找不到命令,执行:
export PATH=${PATH}:/usr/local/bin

2. 验证WebSocketPP安装

bash 复制代码
ls /usr/include/websocketpp/
# 应该能看到相关头文件

3. 验证服务状态

bash 复制代码
# 检查Redis
sudo systemctl status redis-server

# 检查MySQL
sudo systemctl status mysql

# 检查Elasticsearch
sudo systemctl status elasticsearch

# 检查RabbitMQ
sudo systemctl status rabbitmq-server

🎯 环境搭建总结

这个环境搭建指南涵盖了聊天室项目所需的所有依赖组件,包括:

  • 开发工具:编译器、调试器、构建工具
  • 网络框架:HTTP、WebSocket、RPC通信
  • 数据存储:Redis缓存、MySQL数据库
  • 搜索系统:Elasticsearch全文搜索
  • 消息队列:RabbitMQ异步处理
  • 服务发现 :Etcd分布式协调
    按照这个指南逐步安装,就可以搭建完整的聊天室后台开发环境。
相关推荐
许长安2 小时前
C/C++中的extern关键字详解
c语言·开发语言·c++·经验分享·笔记
earthzhang20213 小时前
【1039】判断数正负
开发语言·数据结构·c++·算法·青少年编程
蕓晨3 小时前
auto 自动类型推导以及注意事项
开发语言·c++·算法
mjhcsp4 小时前
C++ 递推与递归:两种算法思想的深度解析与实战
开发语言·c++·算法
_OP_CHEN4 小时前
算法基础篇:(三)基础算法之枚举:暴力美学的艺术,从穷举到高效优化
c++·算法·枚举·算法竞赛·acm竞赛·二进制枚举·普通枚举
m0_748248024 小时前
《详解 C++ Date 类的设计与实现:从运算符重载到功能测试》
java·开发语言·c++·算法
卡提西亚4 小时前
一本通网站1122题:计算鞍点
c++·笔记·编程题·一本通
im_AMBER4 小时前
Leetcode 47
数据结构·c++·笔记·学习·算法·leetcode
我命由我123454 小时前
Java 并发编程 - Delay(Delayed 概述、Delayed 实现、Delayed 使用、Delay 缓存实现、Delayed 延迟获取数据实现)
java·开发语言·后端·缓存·java-ee·intellij-idea·intellij idea