栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Spring Cloud Stream 整合 RabbitMQ

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring Cloud Stream 整合 RabbitMQ

目录

Spring Cloud Stream

原理图

工作原理

MQ

MQ原理图

RabbitMQ概述

常见消息模型

Spring AMQP

Docker方式下载、运行RabbitMQ

Demo练习

导入依赖

生产者

消费者

效果


Spring Cloud Stream

原理图

 

工作原理

 

MQ

MQ原理图

RabbitMQ概述

常见消息模型

Spring AMQP

 

Docker方式下载、运行RabbitMQ
# 拉取镜像
docker pull rabbitmq:3-management

# 查看本地镜像
docker images

# 运行rabbitmq
docker run 
-e RABBITME_DEFAULT_USER=itcast       #账号
-e RABBITMQ_DEFAULT_PASS=123321       #密码
--name rabbitmq                       #容器名
--hostname mq1                        #主机名
-p 15672:15672                        #ui服务端口
-p 5672:5672                          #信息交互端口
-d                                    #后台方式运行
rabbitmq:3-management                  #镜像名

================= 运行后访问UI界面 =================

================= 首页信息介绍 =================

 

Demo练习

导入依赖

生产者

application.yml配置文件

  # rabbitmq连接信息
  rabbitmq:
    host: 192.168.241.121 # 主机名
    port: 5672 # 端口
    virtual-host: / # 虚拟主机
    username: guest  # 用户名
    password: guest  # 密码

自定义消息生产者绑点

public interface OutputMessageBinding {
    
    String OUTPUT = "message-center";


    
    @Output(OUTPUT)
    MessageChannel output();

}

 将通道和交换机建立连接,并向交换机发送消息

@Service
@EnableBinding(OutputMessageBinding.class) //使自定义通道和交换机建立连接
public class PremisesInfoServiceImple implements PremiseInfoService {

    @Resource
    private OutputMessageBinding outputMessageBinding;

    @Override
    public List queryList(Map map) {

        OperationLog log = new OperationLog().setId(1L).setMethodName("测试数据");
        //调用output方法获得消息信道,调用send向交换机发送消息
        outputMessageBinding.output().send(MessageBuilder.withPayload(log).build());
    }
}

消费者

配置文件同上

编写InputMessageBinding.java自定义消费者绑点

public interface InputMessageBinding {

    String INPUT = "message-center";
    
    
    @Input(INPUT)
    SubscribableChannel input();

}

编写MqReceiver.java 消费消息 

@Slf4j
@EnableBinding(InputMessageBinding.class) //将自定义绑点和交换机建立连接
public class MqReceiver {

    @StreamListener(InputMessageBinding.INPUT)
    public void handle(String value){
        log.info("[消息] 接收到发送消息MQ: {}", value);
        OperationLog log = JSON.parseObject(value, OperationLog.class);
        System.out.println(log);
    }
}

效果

==========================交换机注册情况==========================

==========================消息消费情况==========================

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/887755.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号