2020年10月

消息队列

基础概念

消息 message:内容,字节序列
生产者 producer:生产消息向mq提交
消费者 consumer:从mq取出消息并消费
主题 topic:一类消息的集合
队列 queue:先进先出,顺序性
消息队列服务器 broker:消息服务器,作为server提供消息核心服务

场景

支付后的回调,完成任务的回调

作用

知道了场景,就知道了作用

  1. 解耦,降低业务逻辑耦合,异步rpc
  2. 提升可用性
  3. 提升整体性能,提升服务响应速度
  4. 削峰缓冲,消息流控,蓄水池

特性

mq 高可用:

mq 可靠存储:

mq 怎样的服务模型:

mq 高吞吐、高性能:

mq 消息周期:

进阶1 消息要被可靠投递

生产侧保证发送成功前不丢弃消息
mq在消息落地存储后再确认
消费侧业务逻辑完成后再确认
数据丢失、冗余、性能的平衡与妥协

进阶2 消息要有序

生产方确保顺序产生消息
mq确保消息有序落地
mq确保消息被消费者按顺序消费
全局顺序代价高,消息分片更合理

两种工作模式

point to point

发布订阅 pub/sub

rocketmq文档

yaf会根据php路径安装。

如果默认的php不是php-fpm的php,安装后就会有问题,以http形式访问就会失败,因为yaf不在php-fpm这里,而是在另一个版本的php。
所以安装时注意:

  1. 是否安装了多个php,有的话指定php-fpm的php版本