【发布时间】:2020-04-18 17:57:41
【问题描述】:
有一个简单的 Spring-Cloud-Stream 项目,我尝试与 RabbitMQ 连接,它说它的 connected 但它不起作用。我在代码中做错了吗?
Application.properties
spring.rabbitmq.host=localhost
spring.rabbitmq.port=5672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest
spring.cloud.stream.bindings.greetingChannel.destination = greetings
server.port=8080
HelloBinding 接口
package com.gateway.cloudstreamproducerrabbitmq;
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 HelloBinding {
@Output("greetingChannel")
MessageChannel greeting();
}
生产者控制器
package com.gateway.cloudstreamproducerrabbitmq;
import com.gateway.cloudstreamproducerrabbitmq.HelloBinding;
import org.springframework.messaging.Message;
import org.springframework.messaging.MessageChannel;
import org.springframework.messaging.support.MessageBuilder;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class ProducerController {
private MessageChannel greet;
public ProducerController(HelloBinding binding) {
greet = binding.greeting();
}
@GetMapping("/greet/{name}")
public void publish(@PathVariable String name) {
String greeting = "Hello, " + name + "!";
Message<String> msg = MessageBuilder.withPayload(greeting)
.build();
this.greet.send(msg);
}
}
最后我在启动应用程序的主类中有一个 @EnableBinding(HelloBinding.class)。
【问题讨论】:
-
这看起来像 this 的副本,或者,您现在看到控制台上的连接了吗?您确定您正在寻找正确的代理/集群吗?显然,连接已建立。您是否查看过与
netstat、wireshark等的联系? “不工作”永远是不够的信息。 -
是的,它几乎是重复的,我想用另一种方式描述它,在我想删除另一个但我找不到删除按钮之后。
标签: java spring rabbitmq connection spring-cloud-stream