【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分布式协调
    按照这个指南逐步安装,就可以搭建完整的聊天室后台开发环境。
相关推荐
这是程序猿10 分钟前
基于java的ssm框架旅游在线平台
java·开发语言·spring boot·spring·旅游·旅游在线平台
芳草萋萋鹦鹉洲哦14 分钟前
【elemen/js】阻塞UI线程导致的开关卡顿如何优化
开发语言·javascript·ui
爱学习的小邓同学18 分钟前
C++ --- 多态
开发语言·c++
颜*鸣&空26 分钟前
QT实现串口通信+VSPD+串口调试工具
开发语言·qt
槁***耿1 小时前
JavaScript在Node.js中的事件发射器
开发语言·javascript·node.js
U***49831 小时前
JavaScript在Node.js中的Strapi
开发语言·javascript·node.js
@大迁世界1 小时前
相信我兄弟:Cloudflare Rust 的 .unwrap() 方法在 330 多个数据中心引发了恐慌
开发语言·后端·rust
大侠课堂1 小时前
C#经典面试题100道
开发语言·c#
X***E4631 小时前
PHP在电商中的订单处理
开发语言·php
Old_Driver_Lee1 小时前
C语言常用语句
c语言·开发语言