其他分享
首页 > 其他分享> > 消息中间件

消息中间件

作者:互联网

用途

异步处理

img

业务场景 关键步骤 非关键步骤
秒杀 网关, 鉴权, 并发控制 订单生成, 短信回馈, 更新页面

削峰填谷

分布式事务

产品对比

MQ 特点
Kafka 适合大数据集中处理, broker采用"先攒后传"模型, 吞吐量高但延时也高
RocketMQ 适合实时场景, 直接发送, 延时低, 吞吐量低

模型

img

消息丢失

// 同步式
try {
    RecordMetadata metadata = producer.send(record).get();
    log.info(" 消息发送成功!");
} catch (Throwable e) {
    log.warn(" 消息发送失败!尝试重试");
    try {
        retry10Times();
    } catch (Throwable e) {
        log.error("重试失败!");
        return 
    }
}
// 异步式
producer.send(record, (metadata, exceptionHandler()) -> {
    if (metadata != null) {
        log.info(" 消息发送成功。");
    } else {
        log.warn(" 消息发送失败!, 尝试重试");
        () -> exceptionHandler();
    }
});

标签:关键步骤,发送,log,broker,重试,MQ,消息中间件
来源: https://www.cnblogs.com/rellik96/p/16665307.html