为什么需要消息队列

  • 应用解藕
  • 流量削峰
  • 消息分发

消息队列中push、pull及长轮询的优缺点

类型 pros cons
push方式是Server端接收到消息后,主动把消息推送给Client端 实时性高 1. 加大Server端的工作量,进而影响Server的性能
2.Client的处理能力各不相同,Client的状态不受Server控制,如果Client不能及时处理Server推送过来的消息,会造成各种潜在问题
pull方式是Client端循环地从Server端拉取消息 主动权在Client手里,自己拉取到一定量消息后,处理妥当了再接着取 循环拉取消息的间隔不好设定:间隔太短就处在一个“忙等”的状态,浪费资源;时间间隔太长Server端有消息到来时有可能没有被及时处理
长轮询是指根据client的能力不断的从Server拉取消息。如果没有消息broker会被阻塞一定的时间。在一定时间内如果有消息就返回,如果没有消息就返回空结果 保证了实时性
同时兼顾了客户端的处理能力
阻塞client请求的时候需要占用资源,它适合客户端连接数可控的场景

命令

  • nohup sh mqnamesrv &
  • sh mqshutdown namesrv
  • sh mqshutdown broker
  • nohup sh mqbroker -n localhost:9876&
  • nohup sh mqbroker -c config_file &
  • sh mqadmin updateTopic -n localhost:9876 -c DefaultCluster -t topicTest
  • sh mqadmin clusterList -n localhost:9876