当前位置:科技动态 > 【第350期】面试官:谈谈RabbitMQ的几种工作模式及优化建议

【第350期】面试官:谈谈RabbitMQ的几种工作模式及优化建议

  • 发布:2023-10-05 08:55

May 17, 2022 4:17 pm • 面试问题 • 阅读 6 围观者: 推荐一个好朋友 1. 组件介绍 Broker:提供传输服务。它的作用是维护一条从生产者到消费者的路由,保证数据能够按照指定的方式传输。 Exchange:消息交换,指定消息按照什么规则路由到哪个队列。 队列:消息的载体。每条消息都会被放入一个或多个队列中。 Binding:绑定,其作用是根据路由规则绑定exchange和queue。 Routing Key:路由关键字,交换机根据该关键字传递消息。 vhost:虚拟主机。一个broker中可以有多个vhost,用于区分不同用户的权限。 生产者:消息生产者是传递消息的程序。 消费者:消息消费者是接受消息的程序。 通道:消息通道。客户端的每个连接中可以建立多个通道。 2.消息发布和接收流程 1. 如何发送消息 Producer和Broker建立TCP连接 生产者和经纪人建立渠道 Producer通过Channel将消息发送给Broker,Exchange转发消息。 Exchange 将消息转发到停止丢弃的队列。 2. 如何接收消息 Consumer和Broker建立TCP连接 消费者和经纪人建立渠道 消费者监听指定的Queue(队列) 当消息到达Queue时,Broker默认会将消息推送给consumer。 消费者收到消息 3、工作模式 1、直播模式 这是最简单的模式。即在创建消息队列时,指定一个路由键(RoutingKey)。发送者发送消息时,指定对应的Key。当Key与消息队列的RoutingKey一致时,消息就会被发送。到消息队列。 2.Topic话题交换区模式 主题转发信息主要基于通配符,队列和交换机的绑定主要基于某种模式(通配符+字符串)。发送消息时,只有指定的Key与pattern匹配时才会发送消息。发送到消息队列。通配符:*代表一个单词,#代表零个或多个单词 3.fanout是路由广播的一种形式扇出是路由广播的一种形式,它将消息发送到与其绑定的所有队列。即使设置了 key,它也会被忽略。因此,我们发送到交换机的消息将被绑定到交换机的每个队列接收。消息,即使此时指定了路由键(routingKey)或规则(即上面的convertAndSend方法的参数2),也会被忽略! 4.RabbitMQ优化建议 1、增加服务器带宽 当访问量较大时,长数据很容易占满带宽。如果服务器上传带宽为10M,则实际上传带宽可以认为是1M,每秒上传量为1M/1K=1K。如果带宽增加到100M,则每秒上传量为10K。一般情况下,RabbitMq服务器每秒可以接受20K-50K写入(8G内存),所以当带宽小于200M时,增加带宽会有明显的提升效果,而且效果可能没有那么高。太明显了。 2.增加记忆力 RabbitMq的机制是先将消息放置在内存中,然后批量写入硬盘。小批量的数据基本上都写入内存中。当内存数据量过大时,客户端数据会写入内存,而内存中的旧数据会写入硬盘,严重影响速度。的损失。通过适当增加内存,队列会在内存中放置更多的消息,提高系统的处理速度。 3.使用固态硬盘 机械硬盘的写入速度较慢,在处理大量数据时,机械硬盘的性能损失非常严重。如果要存储1亿条数据,需要的硬盘大小为100G,建议使用100-500G的固态硬盘。另外,消费者端不断地处理数据,达到千万条消息需要处理也不容易。 4.增加生产者 服务器可以建立多个连接。单个生产者通常无法充分利用服务器的潜力。建立多个生产者后,服务器的处理能力将得到充分利用。正常情况下,生产者每秒可以传输1000-5000条消息。在 1-10 范围内,每增加一个生产者,处理速度将比单个生产者提高一倍。 5、增加消费者 当消费者数量增加时,队列出队速度显着提高。该方案对出队速度影响有限。在1-10道工序范围内,相比单一工序仅提高一倍左右。建议开2-5个线程,多了可能影响不大。造成这种现象的原因可能是服务器带宽或者硬件处理能力有限,加多了消费者也是没有用的。由于没有实际环境测试,本文仅是一个建议。在采用之前你可以多做一些实验。 6.将网络访问更改为本地访问当消费者/生产端和 RabbitMq 服务器部署在同一台计算机上时,该解决方案很有用,因为省略了网络传输,从而大大节省了处理时间。如果消费者/生产者与RabbitMq服务器分开部署,则无法使用此解决方案。只需将代码中的IP地址127.0.0.1更改为localhost即可 感谢您的阅读,希望对您有所帮助:) 来源:www.sychzs.cn/smartsteps/article/details/107002567 主流java进阶技术(学习资料分享) 而不是在网上搜索问题?还不赶快关注我们吧~ PS:因为公众号平台改变了推送规则,如果不想错过内容,记得看完后点击“阅读”并加个“星”,这样每次推送新文章,它将尽快出现在您的订阅中。在列表中。点击“关注”即可支持我们! 版权声明:本文内容由网友自愿贡献,本文所表达的观点仅代表作者自己的观点。本网站仅提供信息存储空间服务,不拥有任何所有权,也不承担相关法律责任。如果您发现本站有任何涉嫌侵权/非法内容,请发送邮件举报。一经核实,该网站将立即删除。 本文由斑马博客整理。本文链接为:https://www.sychzs.cn/index.php/post/8731.html

相关文章