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

news/2024/11/14 4:52:13/文章来源:https://www.cnblogs.com/lihaijia/p/18541226

在充分了解了分布式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 - CommunityVersion:           23.0.6API version:       1.42Go version:        go1.19.9Git commit:        ef23cbcBuilt:             Fri May  5 21:21:29 2023OS/Arch:           linux/amd64Context:           defaultServer: Docker Engine - CommunityEngine:Version:          23.0.6API version:      1.42 (minimum version 1.12)Go version:       go1.19.9Git commit:       9dbdbd4Built:            Fri May  5 21:20:38 2023OS/Arch:          linux/amd64Experimental:     falsecontainerd:Version:          1.6.21GitCommit:        3dce8eb055cbb6872793272b4f20ed16117344f8runc:Version:          1.1.7GitCommit:        v1.1.7-0-g860f061docker-init:Version:          0.19.0GitCommit:        de40ad0
 
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/832147.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

物流园区烟火烟雾检测系统

物流园区烟火烟雾检测系统通过在园区关键位置安装的高清摄像头,物流园区烟火烟雾检测系统实现对监控区域的无人值守和不间断工作。系统利用先进的AI视觉算法,能够主动发现监控区域内的烟雾和火灾苗头,并进行实时分析报警。与传统的火灾监测系统相比,该系统不需要依赖其他传…

错误代码的个人见解以及逻辑分析题

一、代码错误分析代码中的错误: 1.src 指针指向字符串字面值,不可修改: 字符串 "hello,world" 是存储在只读区域的常量字符串,不能通过指针直接修改。 如果需要倒序操作,需要把字符串复制到一个可修改的内存中。2.dest 未正确分配内存: 在 malloc(len) 时,没有…

docx 生成word报告

# -*- coding: utf-8 -*- import base64 import os from io import BytesIO from docx import Document from docx.shared import Inches, Pt from bs4 import BeautifulSoup from matplotlib import pyplot as plt from wordcloud import WordCloud # 设置全局字体 plt.rcPara…

leetcode算法题-有效的括号(简单)

有效的括号(简单) leetcode:https://leetcode.cn/problems/valid-parentheses/description/ 前言 防止脑袋生锈,做一下leetcode的简单算法题,难得也做不来哈哈。 大佬绕道,小白可看。 题目描述 给定一个只包括 (,),{,},[,] 的字符串 s ,判断字符串是否有效。 有效字符…

30+企业高管齐聚!医疗器械企业渠道优化与健康增长主题沙龙成功举办

10月29日,深圳医疗器械行业协会携手纷享销客,共同举办了一场以“渠道优化与健康增长”为主题,探索医疗器械企业在新形势下渠道管理及落地实践的沙龙活动。此次活动吸引了33位医疗器械企业的管理层,共同探寻医疗器械企业营销增长的新思路、新渠道与新路径。<活动照片>…

AutoCAD Blockview .net在wpf项目中的问题

之前使用Blockview是遇到平移的问题, 这几天在学习使用CommunityToolkit.MVVM框架来创建用户界面, 当创建GsPreviewCtrl控件时会遇到错误, 导致整个窗体不能显示, 错误信息如下:************** 异常文本 ************** System.InvalidProgramException: 公共语言运行时检…

html`` - function html(str) { return str+111 } 调用方式 - solidjs文档里面发现的

html`` - function html(str) { return str+111 } 调用方式 标签模板字符串Tagged Template Literals 这里是自己实现这个字符串模板,等于函数调用的另一种方式 html(111) html`111`solidjs文档里面发现的 https://www.solidjs.com/guides/getting-started#不使用构建工具----…

模态内重叠优化,简单有效的CLIP微调方法 | BMVC24 Oral

来源:晓飞的算法工程笔记 公众号,转载请注明出处论文: CLIP Adaptation by Intra-modal Overlap Reduction论文地址:https://arxiv.org/abs/2409.11338创新点提出一种基于轻量级适配的新方法,直接在图像空间中减少CLIP中的模态内重叠(IMO)。新特征与任何利用缓存模型的无…

一文了解:如何多纬度阐述数据安全传输问题,部署及解决方案!

企业的业务正常开展依赖安全有序的数据流转,数据传输环节融合在企业生产办公、日常经营、技术研究、战略发展等活动的方方面面。数据是任何企业的命脉,但企业数据在传输过程中仍然面临着监管机制不健全、传输主体涉及面广、网络环境复杂、攻击手段多样、数据泄露引发多米诺骨…

Ftrans文件自动化传输方案:释放双手,让数据流动更自由!

随着企业业务不断扩大发展,数据传输和汇集逐渐成为其业务链中的一个重要环节。在企业内部,一般会存在多台文件存储服务器,基于业务开展需要,存在将不同服务器上的不同数据文件自动化传输到同一台文件存储服务器上的场景需求。当下企业选择较多的文件自动化传输方式如FTP、R…

项目UML图

1.用例图2.类图3.时序图

【Unity】UGUI中ScrollView的设置

UI实现横向滚动展示元素,并可以点击指定项增加元素。UI实现横向滚动展示元素,并可以点击指定项增加元素。 成果展示Scene部分ScrollView的设置此案例取消了纵向的滚动条,可以直接删除对应的Scrollbar,然后取消勾选Scroll Rect中的Vertical属性; MovementType属性选择了Cla…