rabbitmq基础配置中文说明文档

rabbitmq基础配置中文说明文档,第1张

JMS:Java Message Service,java消息服务,是一个消息服务的标准或者说是规范,允许应用程序组件基于JavaEE平台创建、发送、接收和读取消息。它使分布式通信耦合度更低,消息服务更加可靠以及异步性。

JMS是java的消息服务,JMS的客户端之间可以通过JMS服务进行异步的消息传输。

p2p:点对点发送,一个消息只能被消费一次

涉及:

消息队列(Queue)

发送者(Sender)

接收者(Receiver)

每个消息都被发送到一个特定的队列,接收者从队列中获取消息。队列保留着信息,直到它们被消费或超时。

示意图:p2p示意图

特点:

Pub/Sub:发布订阅,一个消息可以被消费多次

涉及角色:

主题(Topic)

发布者(Publisher)

订阅者(Subscriber)

客户端将消息发送到主题。多个发布者将消息发送到Topic,系统将这些消息传递给多个订阅者。

示意图:Pub/Sub示意图

特点:

MQ:消息中间件(MOM:Message Orient middleware),消息队列

作为系统间通信的必备技术,低耦合、可靠传输、流量控制、最终一致性

实现异步消息通信

Apache下

完全支持Java的JMS协议

消息模式:1、点对点 2、发布订阅

Erlang语言实现的开源的MQ中间件,支持多种协议

主要的通信协议是AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用协议的一个开放标准,为面向消息的中间件设计。

Apache下开源项目

高性能分布式消息队列,一般海量数据传输,大数据部门用

单机吞吐量:10w/s

阿里 贡献给了Apache

参考了Kafka实现基于Java 消息中间件

消息传输最快

RabbitMQ是一个开源的AMQP实现,服务端用Erlang语言编写,支持多种客户端,如:Python、Ruby、NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。

消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在。AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。

涉及角色:

可以基于Docker安装RabbitMQ,记住其端口:

15672:网页版可视化服务器数据

5672:客户端连接的端口号

点对点消息

一个消息只能消费一次

只需要队列就可以,不需要交换机

消息发送者和消息接收者者可以不同时在线

RabbitMQ特色就在于Exchange,主要有以下类型:

fanout:只要有消息就转发给绑定的队列,不会进行消息的路由判断

direct:会根据路由匹配规则,将消息发送到指定队列中,注意路由规则不支持特殊字符

topic:会根据路由匹配规则,将消息发送到指定队列中,注意路由规则支持特殊字符,比如: #

在前面的文章中我们介绍过RabbitMQ的搭建: RabbitMQ的安装过 以及各大主流消息中间件的对比: ,本章就主要来介绍下我们之前安装的管控台是如何使用以及如何通过命令行进行 *** 作。

rabbitmqctl stop_app:关闭应用

rabbitmqctl start_app:启动应用

rabbtmqctl status:节点状态

rabbitmqctl add_user username password:添加用户

rabbitmqctl list_users:列出所有用户

rabbitmqctl delete_user username:删除用户

rabbitmqctl clear_permissions - p vhostpath username: 清除用户权限

rabbitmqctl list_user_permissions_username: 列出用户权限

rabbitmqctl change_password username newpassword:修改密码

rabbitmqctl set_permissions -p vhostpath username " " " " "" :设置用户权限

涉及的用户命令还有许多,这里就不一一列举了。

rabbitmqctl add_vhost vhostpath:创建虚拟主机

rabbitmqctl list_vhosts:列出所有虚拟主机

rabbitmqctl list_permissions -p vhostpath:列出虚拟主机上所有权限

rabbitmqctl delete_vhost vhostpath:删除虚拟主机

rabbitmqctl list_queues:查看所有队列信息

rabbitmqctl -p vhostpath purge_queue bule:清除队列里的消息

rabbitmqctl reset:移除所有数据,要在rabbitmqctl stop_app之后使用

rabbitmqctl join_clust <clusternode> [--ram]:组成集群命令

rabbitmqctl clustr_status:查看集群状态

rabbitmqctl change_cluster_node_type disc|ram 修改集群节点的存储形式

rabbitmqctl forget_cluster_node [--offline] 忘记节点(摘除节点)

rabbitmqctl rename_cluster_node oldnode1 newnode1 [oldnode2] [newnode2] (修改节点名称)

登录RabbitMQ web管理界面: >

这里要说明事情有以下几点:

1RabbitMQ作为消息队列中间件,就设计成进行保证消息被可靠传递,所以才会有上述“RabbitMQ会将消息投递到下一个consumer客户端”的行为。这个默认行为要想更改,要么去改 RabbitMQ 服务端代码,要么改你的 client 的使用方式。显然后者更可行。

2“一条异常数据会把我的所有线程挂掉”这个本身就说明你的客户端程序是存在问题的,如果非要找到一种变通的方式(看你上面的描述,似乎不要求消息的可靠传递),可以采用设置 autoAck=1 的方法。这样设置后,一旦消息从 server 端被 deliver 出来后立即会被移除,此时即使你的某个 consumer 线程因为某种原因崩溃掉了,当前消息也不会再次被发送到其他的 consumer 线程上。

if我是一名前端Dev,在我项目的技术栈中有这样一个工具:RabbitMQ。

当我们寻找技术资料的时候,几乎都是先讲RabbitMQ的内部概念,再附加上几个应用场景。

我明白这样介绍的目的是为了我们能够理解,但是事与愿违,实际上要经过上面的过程,你会发现很难起到明显的作用,仍旧不知道什么时候用,怎么用。原因主要有两个吧:

1,不像前端开发工具那样,和另外一个工具比较着就能逐渐学会;

2,涉及不到使用MQ的场景;

所以我用和MQ类似的前端技术来讲,看看是不是能够讲MQ讲明白。

一旦遇到RabbitMQ,我们只需要将焦点MQ(Message Queue)这两个字母上,因为MQ才是核心,而MQ的实现又有很多中,如:RabbitMQ、Kafka。这些不同的实现涉及不同的业务需求场景,但其核心思想都是MQ。

所以,要了解RabbitMQ,就需要先弄明白什么是MQ(Message Queue)。

看完描述简介,我问了自己一个问题:

应该至少包含三部分吧:

1,消息发送(生产者);

2,消息处理;

3,消息接收(消费者)。

我第一时间想到的如下几个场景:

1,公共变量的设置和使用;

2,前端技术中对cookie和localstorage的设置和使用;

3,对>

我们都知道MQ的稳定性至关重要,如果只是单机的应用是无法在生产环境应用。

rabbitmq在消息中间件中是比较具有代表性的,它主要基于 主从模式 进行高可用的。

rabbitmq主要有三种模式:单机、普通集群、镜像集群。

这个单机模式,就是指单应用,我们可以用来学习mq的使用,不具备生产价值。

这种模式,其实是启动了多个mq实例在不同机器上,组合成一个集群。每个实例都会同步queue的元数据(可以理解成配置信息,如exchange,queue的配置),通过元数据可以找到queue所在的实例,获取到数据。但是我们创建的queue只会放在一mq个实例上。

当然这也不是个好的模式

所以这个方案也只是比第一个好些,部署了多台机器,可以支撑更多的消息,提高吞吐量,但不具备高可用

镜像模式其实就是每个mq实例都有一份完整的镜像。当我们将往queue里写数据时,都会自动将消息同步到多个实例的queue中。

这种模式虽然保证了高可用,但缺点也十分明显:

以上就是关于rabbitmq基础配置中文说明文档全部的内容,包括:rabbitmq基础配置中文说明文档、RabbitMQ集群、消息中间件之RabbitMQ等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/9483101.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存