找回密码
 立即注册

QQ登录

只需一步,快速开始

phoben 讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2023-12-29 21:41  /   查看:5044  /  回复:22
本帖最后由 phoben 于 2024-1-16 16:00 编辑

image.png272032164.png


不知道大家对这只小兔子熟不熟悉,这是一个很出名的消息队列开源程序。
如果不了解的格友,可以看下下面简介,知道这是什么可以跳到中间部分

什么是MQ?
消息总线(Message Queue),是一种跨进程、异步的通信机制,用于上下游传递消息。由消息系统来确保消息的可靠传递。

MQ是干什么用的?
应用解耦、异步、流量削锋、数据分发、错峰流控、日志收集等等...

MQ衡量标准
服务性能、数据存储、集群架构

这是ChatGPT打的一个比喻,方便大家理解:

image.png288890685.png

简单说就是大家伙都把任务(消息)往RabbitMQ服务里丢,然后由它来根据我们实现定义的规则进行分发。活字格可以通过插件订阅某个列队,当有消息时,就会自动推送到服务器,执行实现定义好的逻辑;至于消息该分配到哪个列队呢? RabbitMQ提供了好几种路由的方法,我们通过路由键(RoutingKey)来定义,非常的灵活。]
RabbitMQ中有几个很重要的概念:
生产者(Producer):产生消息的一方
消费者(Consumer):订阅接收消息的一方
虚拟机(Vhost):每个虚拟机相当于一个小的RabbitMQ服务,默认自带一个
交换机(Exchange):负责将消息分配给不同的列队
队列(Queue):负责储存和下发消息
消息(Message):消息内容

GUID-8D3D2474-F410-4B59-AB0B-68124EC4C80C-low.jpg




进入正文


这几天在研究如何给活字格接上消息列队

帮助我们在一些中大型项目里,对高并发、多任务、协同处理等场景提供更强大的支持。

经过不懈努力,终于将消息列队成功与活字格进行了无缝对接

通过安装“消息队列插件套装”你可以获得完整的管理工具

能方便的对列队进行管理、订阅

在使用插件之前

我先给大家普及下如何在服务器上安装RabbitMQ服务。


第一步

下载安装文件(免费)  


    下载地址:官方下载地址

    我这里用Windows系统举例,


image.png307320250.png


(下载这里的2个安装文件)

image.png492310790.png


(得到RabbitMQ的安装文件和Erlang安装文件)


image.png626755981.png


第二步
安装RabbitMQ


  1.安装Erlang,这里没什么好说的,直接安装,啥也不改。

    image.png224326781.png


安装完,查一下系统变量是否有下面这个

    image.png995588989.png


  
2.安装RabbitMQ,也是一路next就行。
    到安装路径,进入cmd
      image.png479289245.png

   输入下方命令,安装下web管理页面

  1. rabbitmq-plugins enable rabbitmq_management
复制代码

    image.png985165710.png

   在sbin目录下,双击rabbitmq-server.bat启动脚本,重启RabbitMQ服务。
   打开任务管理器,可以看到RabbitMQ服务正在运行

    image.png467143859.png

登录成功后,进入下面页面即代表安装成功,至此大功告成

image.png145593260.png

安装完成



其实RabbitMQ还支持集群部署
也就是多个服务器同时重复上述步骤
将他们配置成一个集群
不过不是特别大的项目,一个足够了。

至此,RabbitMQ就安装好了
部署的这台服务器可以同时部署活字格
也可以另外部署专门的服务器。
如果数据量和并发并不是特别高
可以在一台上部署即可。

我发布了一个体验地址,匿名即可使用
大家可以发送消息
感受下消息列队推送的丝滑和快感

评分

参与人数 2满意度 +10 收起 理由
robert + 5
amtath + 5

查看全部评分

22 个回复

倒序浏览
phoben讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2023-12-29 22:49:30
沙发

RabbitMQ队列概念

本帖最后由 phoben 于 2024-1-3 13:57 编辑

该插件为一个套装,封装及优化了大名鼎鼎的消息列队开源服务RabbitMQ。
内涵14款插件,可以从各个方面无缝管理RabbitMQ的连接、交换机、队列、消息等。

相信还是有一些小伙伴没有接触过MQ队列,估计会问:MQ队列到底干嘛的?它能帮我解决啥问题?感觉没有它对我的项目也能做?
关于这些问题,我让GPT来回答吧:



RabbitMQ有几个重要的概念,分别是:
对象概念:连接(Connection)、节点(Node)、虚拟机(Vhost)、交换机(Exchange)、通道(Channel)、队列(Queue)、消息(Message)
角色概念:生产者(Producer)、消费者(Consumer)
数据概念:请求头(Header)、请求内容(Body)、参数(Properties)

通过一张图可以看清他们的关系:

可以看到中间的RabbitMQ掌管了整个消息的队列和发布,发布者和订阅者(也称消费者)不关心具体过程
当多个服务器不停想RabbitMQ发布新的消息(任务)时,它始终都能很好的按照预定规则,将每条消息准确送达到消费者手中。
好了,关于消息列队的科普就说到这儿,如果你还不是很懂MQ列队的作用及用法,可以参考网络相关文章。


回复 使用道具 举报
phoben讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2023-12-29 22:50:24
板凳

插件使用篇

本帖最后由 phoben 于 2024-1-3 13:56 编辑

假设你已经成功的部署好了RabbitMQ,那么恭喜你,你可以使用插件来轻松的管理它。
安装好插件后,在活字格设计器内的服务端命令下拉框里,就可以看到整个插件包的内容


插件看起来多,但不是每一个我们都需要频繁的用,大部分是用来做配置的
如果你对RabbitMQ熟悉,其实你也可以完全自己在它的web管理后台来配置,可能更加方便。
这里将插件分为几个类,让大家更好了解它的作用:

类别包含插件作用描述
服务器连接
conneciton
创建服务器连接
删除服务器连接
获取所有连接名
用来与Rabbit MQ服务器建立连接,可连接本机/内网/外网/云服务器等等...
交换机管理
Exchange
创建交换机
删除交换机
用来创建或删除一个交换机Exchange
交换机是Rabbit MQ里的重要概念,它负责将消息分配到不同列队。
队列管理
Queue
创建一个队列
删除队列
清空队列
用来创建或删除一个队列
队列是用来存放待发布的消息的,交换机通过规则将消息存放到队列,消费者通过订阅队列拿到消息
绑定
Binding
绑定交换机与队列
将交换机与队列按一定规则进行绑定
通道
Channel
创建连接通道
关闭连接通道
这是消费者与服务器通信的通道,也可以理解为信道,它包括一些独特的配置,来定义本次通信的规则
订阅
开始订阅队列
停止订阅队列
这是最常用也是最核心的功能,它用来订阅或取消订阅一个队列,当你订阅后,有新的消息会主动的推送过来
从而触发我们实现编排好的处理命令

一般来说,开启web管理插件后,在服务器的15672端口会开放一个web系统,登录即可查看。


订阅列队的方法
如果你已经完成了交换机、列队的创建和绑定,你可以直接使用插件发送一条消息来测试。

第1步:连接服务器
连接后会得到一个“连接标识”,记得保存哦!



第2步:订阅消息
使用第一步的“连接标识”和你要订阅的“队列名称”来完成订阅。
订阅成功后,会返回一个“消费者标识”,取消订阅的时候需要用到。

这是核心中的核心了,我们必须定义消息到达后,如何处理该消息?
有了这些数据,我们就可以任意编辑需要处理消息的逻辑了



PS:这样做的好处显而易见,我收到了一条消息,但是我没有处理好它,如果这时RabbitMQ以为我处理完了,直接删掉了该消息,那我再也没有机会去处理了,也间接的导致该条消息的丢失。


第3步:发送消息
剩下的就是发布消息了,只需要提供消息内容即可,其他配置均可默认即可;
消息发布后,会返回一个“唯一消息标识”用于和你的业务数据形成关联;


发布消息和订阅消息,都可以很多服务器一起参与,比如说:你有三台服务器都部署了活字格应用,他们可能都是不同应用,但是不妨碍他们都朝RabbitMQ发布消息、订阅消息。

回复 使用道具 举报
紫色幽魂
金牌服务用户   /  发表于:2023-12-29 23:05:50
地板
学习下
回复 使用道具 举报
dlxubo
银牌会员   /  发表于:2023-12-31 08:41:50
5#

站位
回复 使用道具 举报
nsc117
中级会员   /  发表于:2023-12-31 10:44:47
6#
板凳坐等更新,很实用的插件
回复 使用道具 举报
137294886
金牌服务用户   /  发表于:2024-1-1 11:56:14
7#
学习下
回复 使用道具 举报
dlxubo
银牌会员   /  发表于:2024-1-1 14:00:12
8#
还没有后续
回复 使用道具 举报
phoben讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2024-1-1 14:20:36
9#
dlxubo 发表于 2024-1-1 14:00
还没有后续

回复 使用道具 举报
amtath悬赏达人认证 活字格认证
论坛元老   /  发表于:2024-1-1 20:31:46
10#
回复 使用道具 举报
123下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部