RocketMQ学习总结2- SpringBoot整合RocketMQ开发

1、普通方式生产消费

生产者:

1)依赖:

<dependency>
        <groupId>org.apache.rocketmq</groupId>
        <artifactId>rocketmq-spring-boot-starter</artifactId>
        <version>${rocketmq-spring-boot-starter-version}</version>
</dependency>

2)配置文件

# application.properties
rocketmq.name-server=192.168.25.135:9876;192.168.25.138:9876
rocketmq.producer.group=my-group

3)启动类:

Springboot启动类

4)注入并使用:

@Autowired
private RocketMQTemplate rocketMQTemplate;

消费者:依赖、配置文件、启动类相同

使用:

@Component
@RocketMQMessageListener(topic = "springboot-mq",consumerGroup = "springboot-mq-consumer-1")
public class Consumer implements RocketMQListener<String> {

    @Override
    public void onMessage(String message) {
        log.info("Receive message:"+message);
    }
}

2、跨系统微服务Dubbo的使用:

1)SpringBoot整合Dubbo面向接口的:下载dubbo-spring-boot-starter依赖包 安装到本地仓库

2)搭建Zookeeper集群

3)Dubbo是面向接口的RPC,定义接口X

4)生产者项目添加依赖包括dubbo、zookeeper和对接口X项目的依赖,并提供对接口X的实现

5)消费者项目添加相同依赖,用@Reference注入接口X,就可以使用生产者对接口X的实现了

3、使用案例:

在商城项目中下订单会依次对库存、优惠券、余额等进行扣减,如果发生异常,在异常捕获中可通过MQ对以上服务发送回退消息同时进行异常回退处理。

下单过程如下

先定义接口,然后定义接口实现:

@Service(interfaceClass = IOrderService.class)
public class OrderServiceImpl implements IOrderService {
    @Override
    public Result confirmOrder(TradeOrder order) {
        //1.校验订单      
        //2.生成预订单      
        try {//通过dubbo调用 :
            //3.扣减库存            
            //4.扣减优惠券         
            //5.使用余额        
            //6.确认订单            
            //7.返回成功状态          
        } catch (Exception e) {
            //1.确认订单失败,发送MQ消息           
            //2.返回失败状态
        }
    }
}

订单如果支付成功,支付服务payService发送MQ消息,订单服务、用户服务、日志服务需要订阅消息进行处理,

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值