您的位置 首页 > 数码极客

linux如何查看mq

Linux运维指南含Nacos、Rabbit MQ、Redis

一、Rabbit MQ安装指南

1.1安裝Erlang语言

因为Rabbit MQ是基于Erlang语言开发的,运行环境必须依赖于Erlang,无论是Windows机器还是Linux机器,安装Rabbit MQ之前第一步要安装Erlang.


1.1.1安装Erlang所需依赖

进入Linux服务器,创建/u01目录:mkdir /u01

进入u01目录:cd /u01



yum安装依赖:

yum -y install gcc glibc-devel make ncurses-devel openssl-devel xmltoperl wget gtk2-devel binutils-devel

如图


如下表示安装成功:

1.1.2下载Erlang

下载方式一:Linux敲命令:

wget

下载方式二:通过Widows机器浏览器访问下载到本地,再上传到Linux及其对应目录下,如/u01目录下。


在/u01目录下:

解压软件o:

tar -zxvf o



解压完成:

1.1.3安装Erlang

(1) 移位置

mv o /usr/local/



(2) 切换目录

cd /usr/local/o/



(3) 创建即将安装的目录

mkdir ../erlang



(4) 配置安装路径

./configure --prefix=/usr/local/erlang



(5) 安装

make install



耗时比较久

如下



安装成功


查看一下是否安装成功

ll /usr/local/erlang/bin



正常

(6)环境变量

添加环境变量:

echo 'export PATH=$PATH:/usr/local/erlang/bin' >> /etc/profile



刷新环境变量

source /etc/profile



(7)测试:erl



如图已成功安装Erlang

在里面输入halt().命令退出来(那个点号别忘记)



1.2安装RabbitMQ

1.2.1下载Rabbit MQ

进入/u01目录:cd /u01

下载命令:


wget

也可以在电脑浏览器直接下载


上传到/u01目录下:



由于是格式的所以需要用到xz,没有的话就先安装:

yum install -y xz



(1)第一次解压


/bin/xz -d rabbitmq-server-generic-unix-3.7.15.

(2)第二次解压


tar -xvf rabbi



完成:

1.2.2移走MQ


mv rabbi /usr/local/



改名:mv /usr/local rabbitmq

1.2.3配置环境变量

echo 'export PATH=$PATH:/u01/rabbitmq/sbin' >> /etc/profile



刷新环境变量

source /etc/profile

创建配置目录[本文并未使用单独配置文件,可能多余]

mkdir /etc/rabbitmq

1.2.4启动MQ

启动:

rabbitmq-server -detached



查看是否启动成功:ps -ef|grep rabbitmq



表示启动成功

停止RMQ命令:rabbitmqctl stop

查看RMQ状态:rabbitmqctl status

1.3开启RabbitMQ Web端管理

1.3.1开启Web插件

命令:rabbitmq-plugins enable rabbitmq_management



防火墙请关掉,使用云服务器的请放开5672、15672这2个端口

关闭防火墙步骤:

systemctl stop #停止firewall

systemctl disable #禁止firewall开机启动

firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)

防火墙关闭或端口放开后,浏览器访问:http://ip:15672



安装成功,默认账号:guest /guest

1.3.2用户管理

(1)查看所有用户

rabbitmqctl list_users



(2) 添加一个用户

rabbitmqctl add_user opendi opendi



(3) 配置权限

rabbitmqctl set_permissions -p "/" opendi ".*" ".*" ".*"



(4) 查看用户权限

rabbitmqctl list_user_permissions opendi



(5) 设置tag

rabbitmqctl set_user_tags opendi administrator



(6) 删除用户(安全起见,删除默认用户)

rabbitmqctl delete_user guest

(7) 重启Rabbit MQ

先:rabbitmqctl stop

再:rabbitmq-server -detached



就可以使用opendi/opendi登录网页端了


二、Spring Boot整合Rabbit MQ消息中转推送中心

2.1MQ消息中心适用场景

Rabbit MQ的适用范围有:(1)消息中转推送中心(2)消息总线(3)分布式事务,最终数据一致性(4)实时数据同步

消息中心示例架构图:


不同业务系统,不同的系统代码,例如:校园安防系统,有人脸识别考勤打卡一体机、电子班牌、宿舍管理等系统服务。各系统人脸识别或者考勤提醒微信、短信、语音、邮件消息推

送,就可以采用消息中心架构。

不同的业务代码,不需要知道调用的接口url,只需要向队列里面写数据。消息中心的消费者监听队列,同步发送数据,就可以完成微信、短信、语音、邮件的发送。

2.1.1消息中心做的事情

消息中心,根据信息类别分为4类:

(1)短信消息

(2)微信模板消息

(3)语音消息

(4)邮件消息

•消息中心,对各类消息的模板进行入库存储,设置模板格式。

•消息中心对外暴露统一Queue队列入口。

•按大类信息类别区分为不同类型的消息处理。

•然后各自类型里面的消息再按照不同的业务类型,使用不同的模板消息匹配,组成发送的消息数据。

•然后调用各信息类别的统一接口,发送短信、微信、语音、邮件消息。

•消息中心建立日志表,存储发送的消息,并对完成功发送的消息建立重试补偿机制。

•消息中心界面可视化配置,查看消息日志等。

2.2Rabbit MQ基础知识

2.2.1队列、生产者、消费者

队列是RabbitMQ的内部对象,用于存储消息。生产者(下图中的P)生产消息并投递到队列中,消费者(下图中的C)可以从队列中获取消息并消费。

多个消费者可以订阅同一个队列,这时队列中的消息会被平均分摊给多个消费者进行处理,而不是每个消费者都收到所有的消息并处理。

2.2.2发布订阅模式

Publish/Subscribe,订阅发布模式,每个通道都会收到消息

2.2.3Exchange、Binding交换机与绑定

上图是生产者将消息发送给所有消费者。实际场景是,生产者将消息发送到Exchange(交换机,下图中的X),再通过Binding将Exchange与Queue关联起来。  


(1)Direct exchange,一个交换机和多个Queue绑定,会根据绑定的不同路由键,发送到不同的Queue中

Exchange、Binding交换机与绑定

Topic exchange,按模式匹配路由键。模式符号 "#" 表示一个或多个单词,"*" 仅匹配一个单词。

2.3Rabbit MQ几种工作模式

2.3.1RMQ交换机Exchange绑定方式

Fanout:广播模式,把所有发送到该Exchange的消息投递到所有与它绑定的队列中。


特点:与Exchange绑定的所有队列都能收到消息

direct:直连模式,把消息投递到那些binding key与routing key完全匹配的队列中。


特点:队列与交换机绑定的路由键必须与约定的路由键完全匹配,该队列才能接收到消息

topic:匹配模式,将消息路由到binding key与routing key模式匹配的队列中。


特点:绑定的路由键规则可以为模糊匹配形式,*.abc.*。模糊匹配符合该格式的路由键,

例如123.abc.eff,aet.abc.278,都可以接收该*.abc.*路由消息。

注意:模糊匹配*.abc.*并非广播,如果被其中的某一个符合规则的队列消费了,其他环境

和队列就不会受到消息

2.3.2RMQ工作模式的选择

•当遇到要求所有客户端都需要接收到消息的场景时,可以考虑用fanout广播模式,广播给所有消费者

•当遇到要求符合特定条件的客户端队列接收消息时,使用Topic模式,按条件匹配。渐进递增式开发可以考虑用Topic模式

2.3.3RMQ消费确认模式

RMQ消息具有手工确认模式和自动确认模式,一般采用自动确认模式。RabbitMQ可以在消息从MQ服务器发送

出(写入TCP Socket)后立刻就将其当做已成功处理,或者当收到来自消费者显示的(手工的)的确认后。

(1)手动确认模式

ba(deliveryTag,multiple) 用来确认成功消息(positive acknowledgements)

ba(deliveryTag,requeue,multiple) 用来确认失败的消息(negative acknowledgements)

ba(deliveryTa,requeue) 用来确认失败的消息

确认成功简单的令rabbitMQ将消息记录为已发送并丢弃。使用ba

方法令RabbitMQ记录消息为发送失败,但仍然需要丢弃。

(2)自动确认模式

在自动确认模式(automatic acknowledgement)中,消息在发出去后就被认为是已成功处理。

2.4示例程序

2.4.1Spring Boot项目引入坐标

引入以下坐标加入MQ:

<dependency>

<groupId>org.;/groupId>

<artifactId>spring-boot-starter-amqp</artifactId>

<version>1.5.2.RELEASE</version>

</dependency>

2.4.2生产者

公共发送代码:

直连交换机

Topic交换机

广播Fanout交换机


2.4.3消费者

消费者绑定队列


监听队列


2.4.4测试

Fanout广播


消费者所有队列都收到消息

Topic路由模糊匹配

Direct直连


三、 linux根目录满了,怎样快速查看是哪个文件占用空间大

3.1查看Linux磁盘挂载占用情况

df -h

3.2查看具体目录文件占用大小

查看根目录下占用:cd /

du -sh *

查看某个目录比如/u01下目录占用

cd /u01

du -sh *

四、Nacos安装及启动

下载Naco

(提取码:ywxp)

将naco上传到Linux系统/u01目录下,解压:cd /u01

tar -zxvf naco

然后进入Nacos:/u01/nacos/bin,

首先安装dos2unix命令:yum install dos2unix

格式化dos2unix要转译\: dos2unix

dos2unix

启动命令:nohup sh -m standalone

访问地址:http://ip:8848/nacos

Nacos访问账号:nacos/nacos

查看是否启动成功:ps -ef|grep nacos

五、Nacos环境隔离

5.1Namespace

Nacos引入了命名空间(Namespace)的概念来进行多环境配置和服务的管理及隔离。

Namespace也是官方推荐的多环境支持方案。

5.2如何进行配置和服务的管理、隔离

当我们的服务达到一定的数量,集中式的管理许多服务会十分不便,

那我们可以将这些具有相同特征或属性的服务进行分组管理,服务对应的配置也进行分组隔离。

这里的分组就是Namespace的概念,将服务和配置纳入相同的Namespace进行管理,

不同Namespace下的服务和配置之间就隔离开来。

5.3创建和获取NamespaceID

NamespaceId值是在配置文件配置时必须要填入的配置项,所以需要我们先创建Namespace和Id,步骤如下:

(1)nacos 的控制台左边功能栏看到有一个命名空间的功能,点击就可以看到新建命名空间 的按钮

(2)新建成功后,可以在命名空间列表中查看到你所创建的Namespace和他生成的ID值

(3)创建完成之后,创建的DEV、TEST

(4)代码中根据namespaceid分组不同的命名空间,相应的配置和环境也是各自namespace的环境

六、Nacos作为配置中心

6.1自定义group

在同一个group下,配置文件名不能重复,所以当需要创建文件名称相同的两个配置文件时,将两个配置文件创建在不同的group下即可。当我们再同一个group下创建一个已有的配置文件时,nacos会将其视为配置文件的修改,而不是新建。

6.2已有的配置文件

我们在另一个group下再创建一个 naco

6.3修改客户端配置文件

修改boo


spring.cloud.nacos.config.server-addr=127.0.0.1:8848

#

注:该配置必须放在 boo 文件中


启动客户端你,访问http://localhost:8080/test

就可以看到不同的配置了。

七、环境切换打包

7.1整体切换环境

整体切换使用dev环境:

java -jar a --

整体切换使用test环境:

java -jar a --

整体切换使用prod环境:

java -jar a --

整体切换使用uat环境:

java -jar a --

7.2Maven打不同环境的包

打包命令详解test环境

mvn clean install -Ptest -DskipTests=TRUE

打包命令详解dev环境

mvn clean install -Pdev -DskipTests=TRUE

打包命令详解prod环境

mvn clean install -Pprod -DskipTests=TRUE

打包命令详解uat环境

mvn clean install -Puat -DskipTests=TRUE

八、宝塔Linux工具

宝塔Linux安装:https://www.bt.cn

宝塔能够自动安装:MySQL、Nginx

实现文件上传工具

九、Redis

安装之后设置Redis配置redis.conf文件:host 0.0.0.0

daemonize yes

查看Redis是否启动:ps -ef|grep redis

客户端连接Redis:redis-cli

切换数据库:select 0

select 1

select 2

清空当前的Redis库:flushdb

清空所有Redis库:flushall

9.1Redis使用实例

可参考我发过的文章:springboot集成springsession利用redis来实现session共享

责任编辑: 鲁达

1.内容基于多重复合算法人工智能语言模型创作,旨在以深度学习研究为目的传播信息知识,内容观点与本网站无关,反馈举报请
2.仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证;
3.本站属于非营利性站点无毒无广告,请读者放心使用!

“linux如何查看mq”边界阅读