RabbitMQ消息队列的测试点

RabbitMQ消息队列的测试点,第1张

RabbitMQ消息队列的测试点 消息队列技术是分布式应用间交换信息的一种技术。

消息队列可驻留在内存或磁盘上,队列存储消息直到它们被应用程序读走。

通过消息队列,应用程序可独立地执行--它们不需要知道彼此的位置、或在继续执行前不需要等待接收程序接收此消息。

1、RabbitMQ

  • RabbitMQ是一个消息代理和队列服务器
  • Producer生产者
  • Connection 连接 (本质是 TCP 连接)
  • Channel 信道
  • Exchange 交换机
  • Queue 队列
  • RoutingKey 路由键
  • Consumer 消费者
  • Ack 消息确认
  • onMessage 回调函数

PS:为什么要用信道

多个线程需要从 RabbitMQ 中消费消息,或者生产消息,每个线程把持一个信道,复用了 Connection的 TCP 连接,可以在产生性能瓶颈的情况下有效地节省 TCP 连接资源。

交换机类型

  • Direct:如果消息的routing key与binding的routing key直接匹配的话,消息将会路由到该队列上;
  • Topic:如果消息的routing key与binding的routing key符合通配符匹配的话,消息将会路由到该队列上;
  • Fanout:不管消息的routing key和参数表的头信息/值是什么,消息将会路由到所有队列上。

2、在架构中的用法

异步处理:消息推送,用户注册。

发布订阅:状态通知,业务数据同步。

流量消峰:秒杀抢购场景。

3、异常情况

1)消息堆积

解决方法:临时扩容,加快消费速度。

如果长时间大量消息没处理,丢弃+批量重导(先去mq消费并丢弃,后面再补重要的)。

2)消息已推送,但未到队列,存在消费遗漏

3)消息已过期

解决方法:rabbitmq是可以设置过期时间的,就是TTL,积压一段时间是会被清理掉的。那么丢失了数据后,只能批量重导(流量低峰期,手动去查询丢失的那部分数据,然后将消息重新发送到mq里面,把丢失的数据重新补回来)。

4)服务器异常,消息丢失

4、测试时关注的点

1)验证发送mq的测试数据

2)验证是否触发mq消息成功

3)异常情况测试

①消息队列满,是否存在消息堆积情况。

②某台消息队列服务器宕机情况下,考虑丢失消息的恢复性以及新的消息不会继续发往宕机的服务器。

http://点击链接加入群聊【软件测试自学交流群】:https://jq.qq.com/?_wv=1027&k=5WQnvmGJhttp://点击链接加入群聊【软件测试自学交流群】:https://jq.qq.com/?_wv=1027&k=5WQnvmGJ

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

原文地址: http://outofmemory.cn/zaji/5635615.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存