采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
要是定议成这样!在启动时就会报错!
后来我改成这样
启动后,MQ上面只有一个Input的队列
发送消息后,打印出来的,却是OutPut 的 这是怎么回事?
order-dev.yml中添加如下配置:
Spring:
cloud:
stream:
bindings:
myInput:
destination: myStream
group: order
myOutput:
StreamClien如下:
public interface StreamClient { String INPUT = "myInput"; String OUTPUT = "myOutput"; @Input(StreamClient.INPUT) SubscribableChannel inputMessage(); @Output(StreamClient.OUTPUT) MessageChannel outputMessage();}
StreamReceiver如下:
public class StreamReceiver { @StreamListener(StreamClient.INPUT) public void process(String message){ log.info("StreamReceiver:{}",message); }}
怎么输出不是时间,是[110,111,119,......] 这样的东西
把接收那个方法的参数改成String就好了
ok了,谢谢大佬!
第一个问题:启动报错,你看下日志已经很清楚了,你的“myMessage”已经定义过了,至于为什么重复你可以全局搜索看下,或者你的实例是否已经启动过了。
第二个问题:“启动后,MQ上面只有一个Input的队列”为什么?因为你的SteamClient中定义的队列名称都不一样!为什么要定义成相同的队列名?这就要理解流的概念,对同一个队列要有输入和输出,你这样写是不是就只是一个队列只有输入流,一个队列只有输出流呢?
第二个问题理解了第三个问题就迎刃而解,你的接收者监听了两个队列,而你在定义StreamClient的时候你的“myMessageInput”队列根本就没有定义输出,你疯狂的发消息给队列,却没有输出,消费者根本不知道从哪里获取队列的消息。
同学,你再仔细看看老师的视频吧,切勿心急,理解知识比学习知识更重要。
第一个问题,就是将输入和输出流同量定议为myMessage 然后就启动不了,不知到怎么解决
如果是我遇到这个问题,我的解决思路如下:1、切换回和老师一样的版本再测试,如果不行就 2、git检出老师在该章节的代码仔细看和自己的有什么不同(因为我看你代码应该是自己敲的,避免不了可能敲错的情况)如果自己的代码和老师的代码相同那就 3、运行老师的项目,如果老师的项目能跑起来自己的却跑不起来那问题八九不离十定位在代码上(因为环境自己的和老师的肯定是一样,环境问题可以排除),如果老师的项目也跑不起来这个时候才应该去提问题向老师求助,看是自己开发环境问题还是老师的代码问题。
源码暂时没看,但是这相当于是在同一个容器声明了同样的beanname了所以会提示重复。不知道是不是cloud版本问题。有用和老师一样cloud版本的同学可以说下
登录后可查看更多问答,登录/注册
SpringCloud组件实现微服务,【已升级Finchley.Release】
2.1k 3
2.8k 6
2.5k 7
1.7k 25
3.3k 24
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号