【无标题】

这里使用最简单的方式 Spring Cloud Stream去整合MQ

  • 导入依赖(这里依赖要注意,如果报错更换低版本试试)

如果是其他的MQ将rabbit更换成其他的即可,但是版本号需要自己去拉取

  <!--spring-cloud-starter-stream-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-stream-rabbit</artifactId>
            <version>3.0.13.RELEASE</version>
        </dependency>
  • 添加连接配置
rabbitmq:
    host: ${RABBIT_HOST:127.0.0.1}
    port: ${RABBIT_PORT:5672}
    username: ${RABBIT_HOST:eladmin}
    password: ${RABBIT_HOST:eladmin}
    #虚拟host 可以不设置,使用server默认host
    virtual-host: ${RABBIT_virtual_HOST:eladmin}
  • 绑定broker 注意生产者跟消费者的destination 必须一致:
# rabbit配置
  cloud:
    stream:
      bindings:
        userOutPut:
          destination: user_message

        userInPut:
          destination: user_message
#          group: userMassageConstomer
#其他的配置可以参考 BindingServiceProperties类 
  • 创建provider
public interface UserMessageSource {

    String USER_IN_PUT = "userInPut";

    String USER_OUT_PUT = "userOutPut";

    @Output(USER_OUT_PUT)
    MessageChannel userOutPut();

    @Input(USER_IN_PUT)
    SubscribableChannel userInPut();

}
  • 创建生产者
@EnableBinding(UserMessageSource.class)
public class UserMessageProducer {

    private final UserMessageSource channel;

    public UserMessageProducer(UserMessageSource channel) {
        this.channel = channel;
    }

    public void publish(User user){
        channel.userOutPut().send(MessageBuilder.withPayload(user).build());
    }
}
  • 创建消费者
@Slf4j
@EnableBinding(UserMessageSource.class)
public class UserMessageConsumer {

    @StreamListener(UserMessageSource.USER_IN_PUT)
    public void consumer(@Payload User user){
        log.info("收到消息:{}",user);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值