# 《分布式IM系统》环境搭建-第01节:分布式IM即时通讯系统研发环境搭建

作者:冰河
星球:http://m6z.cn/6aeFbs (opens new window)
博客:https://binghe.gitcode.host (opens new window)
文章汇总:https://binghe.gitcode.host/md/all/all.html (opens new window)
源码获取地址:https://t.zsxq.com/0dhvFs5oR (opens new window)
课程视频:https://t.zsxq.com/14oOdmec0 (opens new window)

沉淀,成长,突破,帮助他人,成就自我。

  • 本章难度:★★☆☆☆
  • 本章重点:安装运行分布式IM即时通讯系统所需要的研发依赖环境,重点涉及到Docker环境、docker-compose环境,以及基于docker-compose一键安装分布式IM即时通讯系统所依赖的基础服务和其他中间件,包括:MySQL、Redis、RocketMQ、ElasticSearch、Logstash、Kibana、Nacos、Sentinel等。另外,项目源码中会提供基于docker-compose的开箱即用的yml脚本文件。
  • 课程视频:https://t.zsxq.com/14oOdmec0 (opens new window)

大家好,我是冰河~~

在充分了解了分布式IM即时通讯系统的需求、业务流程、技术流程和架构设计之后,在正式开始研发分布式IM即时通讯系统之前,还需要搭建分布式IM即时通讯系统的研发环境。

注意:本节源码的README.md文件中,已经给出了安装docker和docker-compose的命令,大家打开源码的README.md文件查看即可。

# 一、前言

任何一套系统的研发和运行都是有条件的,那就是需要在特定的环境下研发或者运行,在分布式IM即时通讯系统的架构设计章节,为了进一步增强分布式IM即时通讯系统的性能、可用性和可伸缩性,我们采用容器化架构的设计方案,所以,在正式研发分布式IM即时通讯系统之前,还需要对这些研发环境进行安装和测试。

# 二、本章诉求

还是那句话:磨刀不无砍柴功。在动手写代码之前,将所有要准备的工作完成,这样写起代码来才会更加顺畅。本章,会在CentOS7操作系统之上搭建Docker环境、docker-compose环境,基于docker-compose环境一键安装分布式IM即时通讯系统所依赖的数据库、基础软件和中间件环境,随后会对搭建的环境进行测试。

注意:如何安装VMWare以及安装CentOS7操作系统,小伙伴们可以参见Seckill秒杀系统的《第7章:秒杀系统基础环境搭建 (opens new window)》,并且本节所有环境和软件的安装,都需要CentOS7能够正常联网才行,如果小伙伴们的虚拟机不能正常联网,可以参见Seckill秒杀系统的《第7章:秒杀系统基础环境搭建 (opens new window)》一章的内容解决。

# 三、安装Docker环境

之前安装的操作系统为CentOS7版本,所以,这里以CentOS7为例安装Docker环境,具体安装步骤如下所示。

# 3.1 查看操作系统内核版本

由于Docker CE 支持 64 位版本 CentOS 7,并且要求内核版本不低于 3.10,所以这里先查看下安装的CentOS7操作系统的内核版本。在,命令行输入如下命令。

uname -srm
1

输出的结果信息如下所示。

Linux 3.10.0-1160.el7.x86_64 x86_64
1

可以看到,内核版本是3.10,符合要求。

# 3.2 卸载旧版本Docker

如果之前安装过旧版本的Docker,则可以执行如下命令卸载。

yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine docker-ce
1

# 3.3 安装gcc环境

安装gcc环境主要是为了更加顺利的安装Docker环境,在命令行分别执行如下两条命令来安装gcc环境。

yum -y install gcc
yum -y install gcc-c++
1
2

# 3.4 安装yum工具

在命令行执行如下命令安装yum工具。

yum install -y yum-utils device-mapper-persistent-data lvm2 --skip-broken
1

# 3.5 设置Docker镜像仓库

这里,我将Docker的镜像仓库设置为阿里镜像源,执行如下命令即可。

yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
1

执行如下命令将docker-ce.repo镜像仓库配置文件中的镜像源修改成阿里镜像源。

sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo
1

# 3.6 更新yum包软件索引

更新yum包软件索引后,执行yum命令安装软件会快一些,在命令行执行如下命令更新yum包软件索引。

yum makecache fast
1

# 3.7 安装Docker

在命令行执行如下命令安装Docker。

yum -y install docker-ce docker-ce-cli containerd.io
1

# 3.8 启动Docker

在命令行执行如下命令启动Docker。

systemctl start docker
1

# 3.9 设置Docker开机自启动

在命令行执行如下命令设置Docker开机自启动。

systemctl enable docker
1

# 3.10 查看Docker版本

在命令行输入如下命令查看Docker版本。

docker version
1

输出的结果信息如下所示。

Client: Docker Engine - Community
 Version:           23.0.6
 API version:       1.42
 Go version:        go1.19.9
 Git commit:        ef23cbc
 Built:             Fri May  5 21:21:29 2023
 OS/Arch:           linux/amd64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          23.0.6
  API version:      1.42 (minimum version 1.12)
  Go version:       go1.19.9
  Git commit:       9dbdbd4
  Built:            Fri May  5 21:20:38 2023
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.21
  GitCommit:        3dce8eb055cbb6872793272b4f20ed16117344f8
 runc:
  Version:          1.1.7
  GitCommit:        v1.1.7-0-g860f061
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

# 3.11 配置镜像加速

# 查看完整文章

加入冰河技术 (opens new window)知识星球,解锁完整技术文章、小册、视频与完整代码