大家好,今天小编来为大家解答以下的问题,关于rabbitmq版本,rabbitmq版本号这个很多人还不知道,现在让我们一起来看看吧!
本文目录
rabbitmq基础配置中文说明文档spring-rabbit-1.3.5.release.jar支持什么版本的rabbitmqRabbitMQ 的4种集群架构linux怎么查看rabbitmq版本rabbitmq基础配置中文说明文档本文为官方文档翻译版本rabbitmq3.7.5版本,原地址:https://github.com/rabbitmq/rabbitmq-server/blob/master/docs/rabbitmq.conf.example。以#开头的行为配置,key和等号以及value之间尽量保持有一个空格。以下的"默认"指的为在没有添加配置文件或者该key没有配置。
rabbitmq是使用基于tcp的amqp协议通信(如果需要ssl,可参考这里),所以这里都是监听的tcp的端口。rabbitmq支持监听多端口,并支持指定网卡的ipv4和ipv6。格式为listeners.tcp.${name}=${value},name可以是任意不重复的值,如:defaul、local、local_v6等。value的格式有:
(1)包括了(2)和(3),(2)包括了(4)和(6),(3)包括了(5)和(7)。下面对应的为其中情况的配置,按需求进行配置,不需要都配,大部分情况只配置(1)。默认的配置为listeners.tcp.default=5672
例:
接受TCP侦听器连接的Erlang进程数。一旦打开了一个使用tcp连接的套接字,它就始终保持打开状态,直至任何一方关闭它或因为一个错误而终止。在建立一个连接时,一般为每一次请求产生一个新进程,num_acceptors就是控制产生新进程的个数。假设有一个监听进程,其任务是等待传入的tcp请求。只要一个请求到达,响应该连接请求的进程就变成了接收进程。默认的配置为num_acceptors.tcp=10。
例:
AMQP0-9-1握手(socket连接和TLS握手之后)的最大时间,以毫秒为单位。
默认的配置为handshake_timeout=10000。
例:
设置为'true'以在接受一个连接时执行反DNS反查询。在rabbitmqctl中和web管理中将显示主机名称而不是IP地址。默认的配置为reverse_dns_lookups=true。
例:
开启后的效果
仅允许通过本地(即localhost)连接到代理的用户列表。如果您希望允许guest用户远程连接,则需要将其更改为loopback_users=none。
要将其他用户限制为仅限localhost的连接,请像这样执行(monitoring是用户的名称):loopback_users.monitoring=true。默认的配置为loopback_users.guest=true。推荐设置loopback_users.guest=false。
例:
关于ssl的配置,内容比较多,参考官网。默认不配置。
选择要使用的认证/授权后端。可以配置ldap相关的设置。具体可以参考access-control。internal为由rabbitmq内部处理,默认的配置为auth_backends.1=internal。
例:
RabbitMQ具有对各种SASL认证机制的可插拔支持。服务器内置了三种这样的机制:PLAIN,AMQPLAIN和RABBIT-CR-DEMO,以及EXTERNAL可作为插件使用。您还可以通过在插件中实现rabbit_auth_mechanism行为来实现自己的身份验证机制。有关常规插件开发的更多信息,请参阅插件开发指南。默认的配置为PLAIN和AMQPLAIN。
内置的机制:
例:
有关rabbitmq-auth-mechanism-ssl插件的配置,查看:https://github.com/rabbitmq/rabbitmq-auth-mechanism-ssl
SSLhandshake超时时间,毫秒为单位。默认的配置为ssl_handshake_timeout=5000
。
例:
rabbitmq的用户的密码加密算法。修改该值只会影响新创建的用户,对应老用户需要重置密码进行更新。一般情况下不更改。默认的配置为password_hashing_module=rabbit_password_hashing_sha256。要使用SHA-512,请设置为rabbit_password_hashing_sha512。
例:
和web端的Importdefinitions、Exportdefinitions有关。好像没啥用==。
默认的用户及其权限和vhost。如果一个connect没有配置以下的配置,则使用默认值进行连接。
默认用户的tag。默认的配置default_user_tags.administrator=true。一般不需要改。
例:
heartbeat通常用来检测通信的对端是否存活(未正常关闭socket连接而异常crash)。其基本原理是检测对应的socket连接上数据的收发是否正常,如果一段时间内没有收发数据,则向对端发送一个心跳检测包,如果一段时间内没有回应则认为心跳超时,即认为对端可能异常crash了。
rabbitmq也不例外,heatbeat在客户端和服务端之间用于检测对端是否正常,即客户端与服务端之间的tcp链接是否正常。
heartbeat检测时间间隔的设置:
这里要注意的是:如果时间间隔配置为0,则表示不启用heartbeat检测。
例:
设置amqp协议最大允许的字节数。默认的配置为frame_max=131072(单位为字节,也就是128k),注意该值不要设置过大,如果一条消息比较大(如传输文件),可以通过PublishConfirm和ConsumerAcknowledgement机制,如设置过大,那么broker内存会容易被占完。也不要设置过小,保持在128k-1m之间。引用:使用RabbitMQ传输大文件,保证其完整性
例:
初始化时的最大字节,不知道哪里使用的。原文:Setthemaxframesizetheserverwillacceptbeforeconnectiontuningoccurs。
例:
设置每个连接的最大允许通道数量。0表示“没有限制”。默认的配置为channel_max=128。
例:
tcp连接相关的配置。尽量不要改。以下为默认的配置
例:
设置rabbitmq使用内存的阈值。有相对和绝对两种阈值。默认为vm_memory_high_watermark.relative=0.4。
队列开始将消息导出到光盘来释放内存的高水位限制的值。
例如,当vm_memory_high_watermark被设置为0.4并且该值被设置为0.5时,
可以在节点使用总可用RAM的20%时开始分页。大于1.0的值可能很危险,应谨慎使用。
一种替代方法是使用持久队列并发布消息,作为持久性。有了这个组合队列将消息更快地移动到磁盘。
另一种方法是配置队列来分页所有消息(都是持久和瞬态)到磁盘。
尽可能参阅http://rabbitmq.com/lazy-queues.html。
例:
内存使用情况报告策略。可以是以下之一,默认的配置为rss:
allocated:使用Erlang内存分配器统计信息
rss:使用操作系统RSS内存报告。这使用特定于操作系统的手段,并可能启动短暂的子进程。
legacy:使用legacy内存报告(运行时考虑使用多少内存)。这个策略相当不准确。
erlang:与legacy相同,为了向后兼容而保留
例:
根据watermarks检查内存级别。没发现具体作用。
例:
可用内存总量,不使用特定于操作系统的方式从环境中推断内存。只有当节点可用的实际最大RAM数量与节点将要推断的值不匹配时,才应使用这种方法。该值可以设置为整数个字节,或者可以以信息单位(例如“8GB”)设置。例如,当该值设置为4GB时,该节点会认为它在具有4GBRAM的计算机上运行。默认不设置该值。
例:
和vm_memory_high_watermark类似,disk_free_limit是控制硬盘的使用阈值。RabbitMQ正在存储数据的分区的磁盘可用空间限制。当可用磁盘空间低于此限制时,将触发流量控制。该值可以相对于RAM的总量或以字节或以信息单位表示的绝对值(例如"50MB"或"5GB"或"5KB")来设置,或者,我们可以设置相对于可用RAM总量的限制。低于1.0的值可能很危险,应谨慎使用。默认为disk_free_limit.absolute=50MB。
例:
网络分裂。一种在系统的任何两个组之间的所有网络连接同时发生故障后所出现的情况。发生这种情况时,分裂的系统双方都会从对方一侧重新启动应用程序,进而导致重复服务或裂脑。由网络分裂造成的最为严重的问题是它会影响共享磁盘上的数据。默认为ignore模式。如何处理网络分裂?详细的文档可以参考官网文档
可用的模式是:
在消息中镜像同步批量大小。增加这将加快同步,但批量总大小(以字节为单位)不得超过2GiB。该设置可用于RabbitMQ3.6.0或更高版本。默认的配置为mirroring_sync_batch_size=4096(4k)。
例:
集群相关的配置,为了形成一个集群,新的(“空白”)节点需要能够发现他们的同伴。这可以使用各种机制(后端)来完成。有些机制假定所有集群成员都提前知道(例如,在配置文件中列出),其他机制是动态的(节点可以动态增删)。
内置的发现机制如下:
cluster_formation.node_type:节点类型。默认为disc。
cluster_keepalive_interval:像集群里的其他子节点发送存活消息的间隔(毫秒)。默认为cluster_keepalive_interval=10000
统计相关,与web管理插件显示有关。可配置的值如下:
例:
设置为true,以便使用HiPE预编译RabbitMQ的部分,这是Erlang的即时编译器。这会以增加启动时间为代价来提高服务器吞吐量。
您可能会看到启动时延迟几分钟的成本提高20-50%。这些数据非常依赖于工作负载和硬件。
HiPE支持可能不会编译到您的Erlang安装中。如果不是,启用此选项只会导致显示一条警告消息,启动将按正常进行。例如,Debian/Ubuntu用户需要安装erlang-base-hipe软件包。
HiPE在某些平台上完全不可用,特别包括Windows。
HiPE在17.5之前的Erlang/OTP版本中存在已知问题。HiPE强烈建议使用最新的Erlang/OTP版本。默认的配置为hipe_compile=false。
等待集群中的Mnesiatables变得可用时使用的超时。默认的配置mnesia_table_loading_retry_timeout=30000。
在等待集群中的Mnesiatables可用时,需要重试的次数。默认的配置mnesia_table_loading_retry_limit=10。
在消息的字节数中,消息将被直接嵌入到队列索引中。详情请看persistertuning。默认的配置queue_index_embed_msgs_below=4096。
是否启用后台定期强制GC为“等待”状态运行节点上的所有Erlang进程。
禁用后台GC可以减少客户端操作的延迟,保持启用状态可以减少二进制堆的RAM使用量(请参阅https://www.erlang-solutions.com/blog/erlang-garbage-collector.html)。
在尝试此选项之前,请查看内存(http://www.rabbitmq.com/memory-use.html)。
默认的配置background_gc_enabled=false,当配置为true时,可以设置gc的间隔,默认的配置为background_gc_target_interval=60000(毫秒)。
设置是否启用代理,启用后不能直连到broker。默认的配置proxy_protocol=false。
未知
有关web管理后台的配置。
查看http://www.rabbitmq.com/stomp.html。
http://www.rabbitmq.com/mqtt.html
查看https://github.com/rabbitmq/rabbitmq-amqp1.0
查看http://rabbitmq.com/ldap.html。
spring-rabbit-1.3.5.release.jar支持什么版本的rabbitmq这个版本很老了,在maven仓库http://mvnrepository.com查了下,1.3.5.RELEASE
是在2014年6月发布的,你可以是使用3.2.x或3.3.x版本的rabbitmq,下载地址:
http://mvnrepository.com/artifact/com.rabbitmq/amqp-client
RabbitMQ 的4种集群架构 也称为Warren(兔子窝)模式。实现rabbitMQ的高可用集群,一般在并发和数据量不高的情况下,这种模式非常的好用且简单。
也就是一个主/备方案,主节点提供读写,备用节点不提供读写。如果主节点挂了,就切换到备用节点,原来的备用节点升级为主节点提供读写服务,当原来的主节点恢复运行后,原来的主节点就变成备用节点,和activeMQ利用zookeeper做主/备一样,也可以一主多备。
HaProxy配置:
listenrabbitmq_cluster
bind0.0.0.0:567 #配置tcp模式
modetcp #简单的轮询
balanceroundrobin #主节点 roundrobin 随机
server你的76机器hostname 192.168.11.76:5672checkinter5000rise2fall2
server你的77机器hostname 192.168.11.77:5672backupcheckinter5000rise2fall2 #备用节点
注意了,上面的rabbitMQ集群节点配置#inter每隔5秒对mq集群做健康检查,2次正确证明服务可用,2次失败证明服务器不可用,并且配置主备机制
远程模式可以实现双活的一种模式,简称shovel模式,所谓的shovel就是把消息进行不同数据中心的复制工作,可以跨地域的让两个MQ集群互联,远距离通信和复制。
Shovel就是我们可以把消息进行数据中心的复制工作,我们可以跨地域的让两个MQ集群互联。
如图所示,有两个异地的MQ集群(可以是更多的集群),当用户在地区1这里下单了,系统发消息到1区的MQ服务器,发现MQ服务已超过设定的阈值,负载过高,这条消息就会被转到地区2的MQ服务器上,由2区的去执行后面的业务逻辑,相当于分摊我们的服务压力。
在使用了shovel插件后,模型变成了近端同步确认,远端异步确认的方式,大大提高了订单确认速度,并且还能保证可靠性。
如上图所示,当我们的消息到达exchange,它会判断当前的负载情况以及设定的阈值,如果负载不高就把消息放到我们正常的warehouse_goleta队列中,如果负载过高了,就会放到backup_orders队列中。backup_orders队列通过shovel插件与另外的MQ集群进行同步数据,把消息发到第二个MQ集群上。
这是rabbitMQ比较早期的架构模型了,现在很少使用了。
shovel集群的配置,首先启动rabbitmq插件,命令如下:
rabbitmq-pluginsenableamqp_client
rabbitmq-pluginsenable rabbitmq_shovel
在/etc/rabbitmq/目录下创建rabbitmq.config文件。注意,我们源服务器和目的地服务器都使用这个相同的配置文件。
具体配置如下
非常经典的mirror镜像模式,保证100%数据不丢失。在实际工作中也是用得最多的,并且实现非常的简单,一般互联网大厂都会构建这种镜像集群模式。
mirror镜像队列,目的是为了保证rabbitMQ数据的高可靠性解决方案,主要就是实现数据的同步,一般来讲是2-3个节点实现数据同步。对于100%数据可靠性解决方案,一般是采用3个节点。
集群架构如下
如上图所示,用KeepAlived做了HA-Proxy的高可用,然后有3个节点的MQ服务,消息发送到主节点上,主节点通过mirror队列把数据同步到其他的MQ节点,这样来实现其高可靠。
也是实现异地数据复制的主流模式,因为shovel模式配置比较复杂,所以一般来说,实现异地集群的都是采用这种双活或者多活模型来实现的。这种模式需要依赖rabbitMQ的federation插件,可以实现持续的,可靠的AMQP数据通信,多活模式在实际配置与应用非常的简单。
rabbitMQ部署架构采用双中心模式(多中心),那么在两套(或多套)数据中心各部署一套rabbitMQ集群,各中心的rabbitMQ服务除了需要为业务提供正常的消息服务外,中心之间还需要实现部分队列消息共享。
多活集群架构如下:
federation插件是一个不需要构建cluster,而在brokers之间传输消息的高性能插件,federation插件可以在brokers或者cluster之间传输消息,连接的双方可以使用不同的users和virtualhosts,双方也可以使用不同版本的rabbitMQ和erlang。federation插件使用AMQP协议通信,可以接受不连续的传输。federation不是建立在集群上的,而是建立在单个节点上的,如图上黄色的rabbitnode3可以与绿色的node1、node2、node3中的任意一个利用federation插件进行数据同步。
如上图所示,federationexchanges可以看成downstream从upstream主动拉取消息,但是并不是拉取所有消息,必须是在downstream上已经明确定义Bingdings关系的exchange,也就是有实际的物理queue来接收消息,才会从upstream拉取消息到downstream。
它使用AMQP协议实现代理间通信,downstream会将绑定关系组合在一起,绑定/解绑命令将发送到upstream交换机。因此,federationexchange只接收具有订阅的消息。
linux怎么查看rabbitmq版本在linux服务器上查看rabbitmq当前安装的版本号,通过rabbitmqctlstatus就可以获得,命令如下:
sudorabbitmqctlstatus|greprabbit
得到结果:
{rabbit,"RabbitMQ","3.7.3"},
3.7.3即为rabbitmq版本号。
扩展资料
RabbitMQ的优点介绍:
除了Qpid,RabbitMQ是唯一一个实现了AMQP标准的消息服务器;
可靠性,RabbitMQ的持久化支持,保证了消息的稳定性;
高并发,RabbitMQ使用了Erlang开发语言,Erlang是为电话交换机开发的语言,天生自带高并发光环,和高可用特性
集群部署简单,正是应为Erlang使得RabbitMQ集群部署简单;
社区活跃度高,根据网上资料来看,RabbitMQ也是首选;
rabbitmq版本的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于rabbitmq版本号、rabbitmq版本的信息别忘了在本站进行查找哦。