一、JDK 安装
1. JDK安装包解压并放到 /usr/local/ 目录下
2. Linux环境变量配置都在:/etc/profile文件中
[root@localhost ~]# vim /etc/profile
编辑模式下,在结尾或开头添加如下:
export JAVA_HOME=/usr/local/jdk1.8.0_161
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.ja
3. 重新载入配置文件
[root@localhost ~]# source /etc/profile
4. 检查新安装的JDK
[root@localhost ~]# java -version
二、Tomcat安装
1. Tomcat解压并放到 /usr/local/ 目录下
2. 把名字改成tomcat1
[root@localhost local]# mv apache-tomcat-9.0.37 tomcat1
3. 复制Tomcat1到Tomcat2、Tomcat3、Tomcat4
[root@localhost local]# cp -r tomcat1 tomcat2
4. 修改Tomcat端口
[root@localhost local]# vim tomcat2/conf/server.xml
5. 开启
[root@localhost local]# ./tomcat2/bin/startup.sh
三、MongoDB安装
1. 下载MongoDB
2. 解压
3. 创建dbpath和logpath
4. 添加环境变量
修改/etc/profile,添加环境变量,方便执行MongoDB命令
export MONGODB_HOME=/usr/local/mongodb
PATH=$PATH:$MONGODB_HOME/bin
然后执行source /etc/profile 重新加载环境变量
5. 利用配置文件启动服务
编辑/mongodb/conf/mongo.conf文件,内容如下:
systemLog:
destination: file
path: /usr/local/mongodb/log/mongod.log
logAppend: true
storage:
dbPath: /usr/local/mongodb/data
engine: wiredTiger #存储引擎
journal: #是否启用journal日志
enabled: true
net:
port: 27017 # port
processManagement:
fork: true
注意:一定要yaml格式
6. 启动MongoDB
mongod ‐f /usr/local/mongodb/conf/mongo.conf
-f 选项表示将使用配置文件启动mongodb
7. 关闭MongoDB服务
方式1:
mongod ‐‐port=27017 ‐‐dbpath=/mongodb/data ‐‐shutdown
方式2:
进入mongo shell
use admin
db.shutdownServer()
四、RabbitMQ安装
1. 安装Erlang语言包
下载完成后,可以尝试使用下面的指令安装
[root@worker1 tools]# rpm -ivh erlang-23.2.7-1.el7.x86_64.rpm
警告:erlang-23.2.7-1.el7.x86_64.rpm: 头V4 RSA/SHA1 Signature, 密钥 ID 6026dfca: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:erlang-23.2.7-1.el7 ################################# [100%]
这样Erlang语言包就安装完成了。 安装完后可以使用 erl -version 指令检测下erlang是否安装成功。
[root@worker1 tools]# erl -version
Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 11.1.8
2. 安装socat
使用 rpm -Uvh 指令安装RabbitMQ的rpm包时,会报错,需要安装一个socat。
yum install socat
3. 安装RabbitMQ
采用RPM安装包的方式。安装包可以到github仓库中下载发布包。
RabbitMQ下载地址
使用 rpm -Uvh 指令安装RabbitMQ的rpm包
[root@localhost local]# rpm -Uvh rabbitmq-server-3.9.15-1.el7.noarch.rpm
warning: rabbitmq-server-3.9.15-1.el7.noarch.rpm: Header V4 RSA/SHA512 Signature, key ID 6026dfca: NOKEY
Verifying... ################################# [100%]
Preparing... ################################# [100%]
package rabbitmq-server-3.9.15-1.el7.noarch is already installed
安装完成后,可以查看下他的安装情况
[root@localhost local]# whereis rabbitmqctl
rabbitmqctl: /usr/sbin/rabbitmqctl /usr/share/man/man8/rabbitmqctl.8.gz
启动RabbitMQ服务
[root@localhost local]# service rabbitmq-server start
Redirecting to /bin/systemctl start rabbitmq-server.service
查看服务状态
[root@localhost local]# service rabbitmq-server status
常用的启停操作
rabbitmq-server -deched --后台启动服务
rabbitmqctl start_app --启动服务
rabbitmqctl stop_app --关闭服务
这样RabbitMQ服务就启动完成了。 之后可以配置下打开他的Web管理页面:
[root@worker1 rabbitmq]# rabbitmq-plugins enable rabbitmq_management
Enabling plugins on node rabbit@worker1:
rabbitmq_management
The following plugins have been configured:
rabbitmq_management
rabbitmq_management_agent
rabbitmq_web_dispatch
Applying plugin configuration to rabbit@worker1...
The following plugins have been enabled:
rabbitmq_management
rabbitmq_management_agent
rabbitmq_web_dispatch
set 3 plugins.
Offline change; changes will take effect at broker restart.
可以看到,这时需要重启RabbitMQ服务才能生效。重启后,就可以访问Web控制台了。 访问端口192.168.xxx.xxx:15672。
这时,可以使用默认的guest/guest用户登录。 但是注意下,默认情况下,只允许在localhost本地登录,远程访问是无法登录的。这时,可以创建一个管理员账户来登录。
[root@worker1 ~]# rabbitmqctl add_user admin admin
Adding user "admin" ...
Done. Don't forget to grant the user permissions to some virtual hosts! See 'rabbitmqctl help set_permissions' to learn more.
[root@worker2 tools]# rabbitmqctl set_permissions -p / admin "." "." ".*"
Setting permissions for user "admin" in vhost "/" ...
[root@worker2 tools]# rabbitmqctl set_user_tags admin administrator
Setting tags for user "admin" to [administrator] ...
这样就可以用admin/admin用户登录Web控制台了。
4. RabbitMQ集群搭建
1:需要同步集群节点中的cookie。
默认会在 /var/lib/rabbitmq/目录下生成一个.erlang.cookie。 里面有一个字符串。我们要做的就是保证集群中三个节点的这个cookie字符串一致。
我们实验中将worker1和worker3加入到worker2的RabbitMQ集群中,所以将worker2的.erlang.cookie文件分发到worker1和worker3。
2:将worker1的服务加入到worker2的集群中。
首先需要保证worker1上的rabbitmq服务是正常启动的。 然后执行以下指令:
- 我们这时就用worker1为例,修改worker1虚拟机上的hostname
hostnamectl set-hostname worker1
- 把IP地址加入到hosts中,其中的IP是服务器的IP
echo 192.168.xxx.xxx worker1>>/etc/hosts
echo 192.168.xxx.xxx worker2>>/etc/hosts
echo 192.168.xxx.xxx worker3>>/etc/hosts
重启rabbit服务,然后查看rabbitMQ的状态
systemctl restart rabbitmq-server
rabbitmqctl status
[root@worker1 rabbitmq]# rabbitmqctl stop_app
Stopping rabbit application on node rabbit@worker1 ...
[root@worker1 rabbitmq]# rabbitmqctl join_cluster --ram rabbit@worker2
Clustering node rabbit@worker1 with rabbit@worker2
[root@worker1 rabbitmq]# rabbitmqctl start_app
Starting node rabbit@worker1 ...
–ram 表示以Ram节点加入集群。RabbitMQ的集群节点分为disk和ram。disk节点会将元数据保存到硬盘当中,而ram节点只是在内存中保存元数据。
1、由于ram节点减少了很多与硬盘的交互,所以,ram节点的元数据使用性能会比较高。但是,同时,这也意味着元数据的安全性是不如disk节点的。在我们这个集群中,worker1和worker3都以ram节点的身份加入到worker2集群里,因此,是存在单点故障的。如果worker2节点服务崩溃,那么元数据就有可能丢失。在企业进行部署时,性能与安全性需要自己进行平衡。
2、这里说的元数据仅仅只包含交换机、队列等的定义,而不包含具体的消息。因此,ram节点的性能提升,仅仅体现在对元数据进行管理时,比如修改队列queue,交换机exchange,虚拟机vhosts等时,与消息的生产和消费速度无关。
3、如果一个集群中,全部都是ram节点,那么元数据就有可能丢失。这会造成集群停止之后就启动不起来了。RabbitMQ会尽量阻止创建一个全是ram节点的集群,但是并不能彻底阻止。所以,综合考虑,官方其实并不建议使用ram节点,更推荐保证集群中节点的资源投入,使用disk节点。
然后同样把worer3上的rabbitmq加入到worker2的集群中。
加入完成后,可以在worker2的Web管理界面上看到集群的节点情况:
连接时报错
解决方案:到主节点中将该节点移除集群: rabbitmqctl forget_cluster_node rabbit@worker3 (rabbit@worker3节点名称)
五、CentOS8 使用install安装软件时报错
Error: Failed to download metadata for repo ‘appstream’: Cannot prepare internal mirrorlist: No URLs in mirrorlist
在CentOS 8上安装软件时,遇到如下报错
CentOS Linux 8 - AppStream 错误:为仓库 ‘appstream’ 下载元数据失败 : Cannot prepare internal mirrorlist: No URLs in mirrorlist
在网上一顿搜索也没能解决,最终在阿里云开发者社区找到了答案!网址为:阿里云开发者社区
问题原因
CentOS Linux 8在2022年12月31日来到生命周期终点(End of Life,EoL)。即CentOS Linux 8操作系统版本结束了生命周期(EOL),Linux社区已不再维护该操作系统版本。所以原来的CentOS Linux 8的yum源也都失效了!最终导致此问题的产生。
问题解决方法
- 更换CentOS Linux 8的yum源
[root@localhost local]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# ls
CentOS-Linux-AppStream.repo CentOS-Linux-Devel.repo CentOS-Linux-Media.repo
CentOS-Linux-BaseOS.repo CentOS-Linux-Extras.repo CentOS-Linux-Plus.repo
CentOS-Linux-ContinuousRelease.repo CentOS-Linux-FastTrack.repo CentOS-Linux-PowerTools.repo
CentOS-Linux-Debuginfo.repo CentOS-Linux-HighAvailability.repo CentOS-Linux-Sources.repo
[root@localhost yum.repos.d]# mkdir bak
[root@localhost yum.repos.d]# mv CentOS-Linux-* bak
[root@localhost yum.repos.d]# ls
bak
2. 下载新的源文件,并用命令yum makecache建立新的元数据缓存
下载源文件命令:
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
- 测试源
yum install socat