在 Spring boot 2.x 中使用 RabbitMQ 的一些小疑问

2019-05-30 17:20:36 +08:00
 phpdever

我目前参考一篇文章: https://www.cnblogs.com/ityouknow/p/6120544.html

但我产生了一些疑问,麻烦先看代码:

HelloSender.java 生产消息

public void send(User user) {
        System.out.println("Sender object: " + user.toString());
        this.rabbitTemplate.convertAndSend("hello", user);
    }

HelloReceiver.java 消费消息

@RabbitHandler
    public void process(User user) {
        System.out.println("Receiver object : " + user);
    }

RabbitmqController.java 调用发送消息返回结果

Sender object: {"uid":3825,"name":"用户名","pass":"123456"}

Receiver object : {"uid":3825,"name":"用户名","pass":"123456"}

现在通过文中的 Demo,可以配置交换机,队列,发送消息,接收消息,但是我到底要怎么用呢?比如发送消息的时候,用户 id 是 100,接收 id 是 101,我该怎么做呢?

1986 次点击
所在节点    Java
7 条回复
phpdever
2019-05-30 17:28:47 +08:00
@ityouknow 尽管文章已经写的十分详细,但我依然没法将 RabbitMQ 真正用于生产环境当中,如果您有时间,还请不吝赐教,另外在您的文章当中,在“发送者”一段代码中,其中的“@component ”注解,应该是“@Component ”。
airfling
2019-05-30 17:37:37 +08:00
你看下我很久前写的一个 demo,里面有详细列举了各种情况下的使用情况 https://github.com/airlove/spring-amqp-demo
skypyb
2019-05-30 18:25:53 +08:00
什么叫用户 id100,接受 id 是 101 ? 没看明白需求。
能发消息能收消息,线上生产环境就可以用了啊。
要是发送不了 /接受不了可以看我这篇文章: http://skypyb.com/2018/12/jishu/java/755/

不过我这文章里创建交换机、队列都是在注解里;生产环境一般在配置类里创建哈,设置参数方便很多
CFO
2019-05-30 19:03:41 +08:00
直接用起来太麻烦了 所以我用了 spring-cloud-rabbitmq-stream
mapper
2019-05-31 09:52:46 +08:00
不懂你啥意思, 用户 id 100 接收 id 101 ?
我建议你花半小时看一下 rabbitmq 的基本内容再回来提问
leafin
2019-05-31 11:27:32 +08:00
'比如发送消息的时候,用户 id 是 100,接收 id 是 101'
我感觉你描述的这个场景是点对点通信 /发邮件,此 ‘消息’ 非彼 ‘消息’
phpdever
2019-05-31 11:28:35 +08:00
@mapper 明白,我再花时间看看

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/569192

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX