zoukankan      html  css  js  c++  java
  • springCloud Stream

    spring Cloud Steam

    • 生产者配置

    设置生产者的输入输出通道

    package net.happyeasygo.hotel.mq.interf;
    
    import org.springframework.cloud.stream.annotation.Input;
    import org.springframework.cloud.stream.annotation.Output;
    import org.springframework.messaging.MessageChannel;
    import org.springframework.messaging.SubscribableChannel;
    
    public interface OrderProcessor {
    	String INPUT_ORDER = "inputOrder";
        String OUTPUT_ORDER = "outputOrder";
    
        @Input(INPUT_ORDER)
        SubscribableChannel inputOrder();
    
        @Output(OUTPUT_ORDER)
        MessageChannel outputOrder();
    }
    

    生产者发送消息

    @EnableBinding(OrderProcessor.class)
    public class PayCallBackController{
        @Autowired
    	private OrderProcessor orderProcessor;
    	
    	public void payMethod(){
    	    //该data可以为对象也可以为字符串
    	    String data ="";
            orderProcessor.outputOrder().send(MessageBuilder.withPayload(data).build());	    
    	   }
       }
        //添加监听消息队列output通道
        @StreamListener(OrderProcessor.INPUT_ORDER)
        public void recevieOrder(String obj) {
        	_log.info("Interface order completion, message queue");
        }
    

    设置application.yml文件

    spring:
      cloud:
        stream:
          default-binder: rabbit
          bindings:
            inputOrder:
              destination: mqSupplierOrder
            outputOrder:
              destination: mqSupplierOrder
              content-type: application/json
      rabbitmq: 
        host: ${RMQ_HOST:192.168.1.57} 
        port:  ${RMQ_PORT:5672} 
        username: ${RMQ_USERNAME:guest}
        password: ${RMQ_PASSWORD:guest}
    
    • 消费者配置

    设置消费者的输入输出通道

    package net.happyeasygo.hotel.mq.interf;
    
    import org.springframework.cloud.stream.annotation.Input;
    import org.springframework.cloud.stream.annotation.Output;
    import org.springframework.messaging.MessageChannel;
    import org.springframework.messaging.SubscribableChannel;
    
    public interface OrderProcessor {
    	String INPUT_ORDER = "inputOrder";
        String OUTPUT_ORDER = "outputOrder";
    
        @Input(INPUT_ORDER)
        SubscribableChannel inputOrder();
    
        @Output(OUTPUT_ORDER)
        MessageChannel outputOrder();
    }
    

    消费者消费消息

    
    @EnableBinding(OrderProcessor.class)
    public class OrderReceiver {
    
        @StreamListener(OrderProcessor.INPUT_ORDER)
    	public void receiveMethod(String bookingNo) throws Exception{
    		strategyDida.book("strategyDida",bookingNo);
    	}
    }
    

    application.yml配置

    spring:
      rabbitmq: 
        host: ${RMQ_HOST:192.168.1.57} 
        port:  ${RMQ_PORT:5672} 
        username: ${RMQ_USERNAME:guest}
        password: ${RMQ_PASSWORD:guest}
      cloud:
        stream:
          default-binder: rabbit
          bindings:
            inputOrder:
              destination: mqSupplierOrder
            outputOrder:
              destination: mqSupplierOrder
    
  • 相关阅读:
    SQL查询最近12个月的数据量 没有补0
    SQL查询当前月每天的数据量,没有补0
    Mac上安装mysqlclient报错:OSError: mysql_config not found
    Vue packages version mismatch: 版本始终不对
    python 时间格式2019-08-18T16:00:00.000000Z转换成常见的格式
    前端css的flex布局
    用vim编辑文件时出现错误:E325: ATTENTION的问题与解决方法
    报错:AssertionError: `basename` argument not specified, and could not automatically determine the name from the viewset, as it does not have a `.queryset` attribute.
    PDF打印:html2canvas+jspdf
    python list的Avg、WAvg、Max、Min
  • 原文地址:https://www.cnblogs.com/joinlemon/p/9335038.html
Copyright © 2011-2022 走看看