主要包含三个部分:1、创建项目,添加依赖。2、创建监听器,包含声明和绑定信道。用来消费消息。3、从RabbitMQ触发一条消息,看监听器有没有消费这条消息。
ArtifactId和Module_name保持一致,在项目的上一级创建一个文件夹,将项目存储在普通文件夹中,点开文件夹才能看到java应用。
把acturator和web引入进来。
Stream的独门秘诀:stream-rabbit。
packageing是jar的类型,cloud/微服务项目打的都是jar包。
com.company.artifactName>childModuleName。
只有一顶帽子@SpringBootApplication,不需要集成eureka的组件。
创建业务类,businessLogic,文件夹起名叫做biz。
普通的java对象(pojo)MessageBean。用来干什么呢?用来接收消息的。生产者发布消息的时候,生成的消息体,用payload接收。我们原封不动的把payload传给消费者。
创建Listener(就是Consumer)。定义一个方法来接收上游(这个上游就是指生产者吧,它发送消息会产生消息体吧)的消息。
Stream特有的标签-StreamListener,它用来做什么呢?传入一个信道(信道指的就是topic)的名称。
创建一个可被订阅的通信通道。Message的Sink.Input(是一个默认的信道,核心是创建可订阅信道的那个方法 SubcribableChannel input())。通道的名称就是字符串"input"。
信道。可通信的通道,它是有名字的。
将信道绑定到当前标签标记的这个方法上。我们的方法体也就能够监听到这个信道生成的消息体从而进行消费。消息体和信道的关系是,信道创建了消息体,就像是消息体的发源地和存储仓库一样。
使用的是Stream默认为我们声明的interface Sink(用来获取一个可订阅的信道>由此可以推测:既然Sink的作用是创建一个信道,作为一个默认的信道,如果不用,那么,我们必须自定义一个信道,由此推测,enableBiding使用来绑定自定义信道的)。使用EnableBiding(作用:将自定义信道加载到上下文),我们可是使用我们自定义的信道。
channel、信道、topic都是指同一个东西。
将信道加载到上下文(启动项目的时候),所以自定义接口中必须创建一个信道,然后把intefacename.class当作value设置进标签enableBiding中。
设置配置文件。如果喜欢yml,但是文件已经是properties了,可以去网上找工具把properties转化成yml,反之。
配置文件。应用名称、端口、rabbitMQ连接字符串、acturator管理字符串。
先启动rabbitMQ再启动项目。
创建一个信道会创建一个queue(客户端可见),队列名称包含信道名称input。
尝试给channel发送一条消息。直接在RabbitMQ的客户端手动发送,连消息名称都是自定义的payload。
点开input那个队列,找到publish message,往payload中添加一条消息。
这一章节虽然创建了consumer,但是没有创建producer哦。
通过java应用往rabbitMQ中创建了一个queue,可以手动往queue中添加一条消息体,java应用程序会监听到。当前章节学习了如何声明一个信道并与消费者绑定,以及如何手动往信道中publish一条消息,从而被消费者接收并做一个打印文字的响应。