目录
2.1 生产者微服务服务搭建(user_service_9001)
2.1 消费者微服务服务搭建(order_service_9002)
windows下搭建Rocketmq:
windows下安装RocketMQ+可视化页面搭建https://blog.csdn.net/ytyDaMoTou/article/details/125343297
windows搭建rocketmq集群(双主双从)https://blog.csdn.net/ytyDaMoTou/article/details/125629290
一 MQ介绍
消息队列是一种“先进先出”的数据结构
其应用场景主要包含以下三个方面:应用解耦 流量削峰 数据分发
其主要功能有:
1.灵活可扩展性、
2.海量消息堆积能力、
3.支持顺序消息、
4.多种消息过滤方式、
5.支持事务消息、
6.回溯消费等常用功能。
RocketMQ 核心的四大组件:Name Server、Broker、Producer、Consumer ,每个组件都可以部署成集群模式进行水平扩展。
常见面试问题:
1 为什么要使用MQ?
1 解耦:系统耦合度降低,没有强依赖关系
2 异步:不需要同步执行的远程调用可以有效提高响应时间
3 削峰:请求达到峰值后,后端service还可以保持固定消费速率消费,不会被压垮
2 RocketMQ如何保证消息不丢失?
对于消息来说,以下三个部分都可能会出现丢失消息的情况:
Producer端、Broker端、Consumer端
采取send()同步发消息,发送结果是同步感知的。
发送失败后可以重试,设置重试次数。默认3次。其设置如下:
producer.setRetryTimesWhenSendFailed(10);
集群部署,比如发送失败了的原因可能是当前Broker宕机了,重试的时候会发送到其他Broker上。
修改刷盘策略为同步刷盘。默认情况下是异步刷盘的。
flushDiskType = SYNC_FLUSH