rabbitmq使用案例_标点符号的正确使用方法及例子

rabbitmq使用案例_标点符号的正确使用方法及例子一些概念:RabbiMQ的认知:首先要抛弃熟悉的客户端和服务器的观念。对于RabbitMQ应该认为是消息投递服务。、               其次:从应用程序角度来看RabbitMQ的话,应用程序要先决定是个消息的发送者还是消息的接受者。                    如果从RabbitMQ的角度来看的话…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

一些概念:

RabbiMQ的认知:首先要抛弃熟悉的客户端和服务器的观念。对于RabbitMQ应该认为是消息投递服务。、

                              其次:从应用程序角度来看RabbitMQ的话,应用程序要先决定是个消息的发送者还是消息的接受者。

                                        如果从RabbitMQ的角度来看的话,应用程序是消息的生产者还是消息的消费者。

 Topic:

        在不同的消息中间件中, Topic可能对应着不同的概念,

        比如:在RabbitMQ中的它对应了Exchange、而在Kakfa中则对应了Kafka中的Topic。

    消息组:

        默认情况下,当没有为应用指定消费组的时候,Spring Cloud Stream会为其分配一个独立的匿名消费组。

        当一个消费组中有多个应用实例,只会有一个成员真正的收到消息并进行处理。

    消息分区:

        当生产者将消息数据发送给多个消费者实例时,保证拥有共同特征的消息数据始终是由同一个消费者实例接收和处理

        

1.创建SpringBoot 项目:Eureka 和 Rabbitmq_hello 两个项目

其中对于Rabbitmq_hello 项目加入RabbitMQ依赖:

                <dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-amqp</artifactId>
		</dependency>

2. 编写配置类RabbitConfig ,   用来配置队列、交换器、路由等高级信息

/**
 * 创建RabbitMQ的配置类 RabbitConfig,用来配置队列、交换器、路由等高级信息。
 */
@Configuration
public class RabbitConfig {

    @Bean
    public Queue helloQueue() {
        return new Queue("hello");
    }
}

3. 创建消息发送类:Sender

/**
 *
 * 通过注入 AmqpTemplate接口的实例来实现消息的发送,
 * AmqpTemplate接口定义了一套针对AMQP协议的基础操作。
 *
 * 在该生产者,我们会产生一个字符串,并发送到名为 hello的队列中。
 */
@Component
public class Sender {

    @Autowired
    private AmqpTemplate amqpTemplate;

    public void send() {
        String context = "hello " + new Date();
        System.out.println("sender: " + context);
        this.amqpTemplate.convertAndSend("hello",context);
    }
}

4. 创建消息接收类:Receiver

@Component
@RabbitListener(queues = "hello")
public class Receiver {

    @RabbitHandler
    public void process(String hello) {
        System.out.println("Receiver:" + hello);
    }
}

 

5. 写个测试类: 

 

@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest
public class ServerRabbitmqHelloApplicationTests {

	@Autowired
	private Sender sender;

	@Test
	public void hello() throws Exception {
		sender.send();
	}
}

6. 测试结果截图:

rabbitmq使用案例_标点符号的正确使用方法及例子

 

7. 总结:

对于 @RabbitListener 这个注解要注意

1.在启动类上添加@EnableRabbit注解

2.在Spring容器中托管一个RabbitListenerContainerFactory,默认实现类SimpleRabbitListenerContainerFactory

3.编写一个消息处理器类托管到Spring容器中,并使用@RabbitListener注解标注该类为RabbitMQ的消息处理类

4.使用@RabbitHandler注解标注在方法上,表示当有收到消息的时候,就交给带有@RabbitHandler的方法处理,

具体找哪个方法需要根据MessageConverter转换后的对象类型决定

 

8.参考:纯洁的微笑博客

 

9. rabbitmq菜单管理 :http://localhost:15672/

rabbitmq使用案例_标点符号的正确使用方法及例子

查看创建的hello队列

rabbitmq使用案例_标点符号的正确使用方法及例子

rabbitmq使用案例_标点符号的正确使用方法及例子

修改Receiver 类:

@Component
public class Receiver {

    @RabbitHandler
    @RabbitListener(queues = "hello")
    public void process(byte[] hello) {
        System.out.println("Receiver:" + hello);
        try {
            System.out.println(new String(hello, "utf-8"));
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
    }
}

重新启动项目,并在RabbitMQ管理菜单重新发送消息:

rabbitmq使用案例_标点符号的正确使用方法及例子

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/186304.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • layui 如何去dom_layui 弹出层

    layui 如何去dom_layui 弹出层这是一个可以重要也可以不重要的方法,重要的是,它的权利真的很大,尤其是在模块化加载layer时,你会发现你必须要用到它。它不仅可以配置一些诸如路径、加载的模块,甚至还可以决定整个弹层的默认参数。而说它不重要,是因为多数情况下,你会发现,你似乎不是那么十分需要它。但你真的需要认识一下这位伙计。如果您是采用seajs或者requirejs加载layer,你需要执行该方法来完成初始化的配置。比如:lay…

    2022年6月11日
    36
  • 史上最全的Android基础教程+入门实战训练+处理技巧(建议收藏)|寻找C站宝藏

    史上最全的Android基础教程+入门实战训练+处理技巧(建议收藏)|寻找C站宝藏有个专栏包含了Android基础教程和入门实战训练的Android项目,还有各种Android处理技巧。没错,就是我从一年前开始做的Android王国专栏。为什么叫王国呢?因为我觉得接触任何领域的第一步都是先打好基础,然后再实战演练建筑高楼,最后学会各种技巧建筑围墙,这样你的知识王国就建好了,当然这座王国还在不断更新加固。赶紧收藏起来吧,在这里,0基础学会做app!

    2022年6月12日
    35
  • url—pattern_pattern

    url—pattern_pattern首先说下,其实url-pattern就是说的url模式,就是容器在查找时根据这个模式来找到具体的servlet来执行。先来看一段规范中的IntheWebapplicationdeploymentdescriptor,thefollowingsyntaxisusedtodefinemappings:Astringbeginningwith

    2025年7月28日
    2
  • taro编译小程序问题_taro支付宝小程序要注意什么

    taro编译小程序问题_taro支付宝小程序要注意什么项目地址:https://github.com/kakaoG/taro-small-program

    2025年6月22日
    4
  • 集合转成数组的方法_数组转化为集合

    集合转成数组的方法_数组转化为集合1.转换方法1.遍历的方式,依次添加到集合中。2.Arrays.asList()方法3.List.of()方法4.Collections.addAll(集合,数组)方法,将集合存储到数组中1.1遍历的方式这种方式转换成的集合,集合长度可变,可以后续向集合添加数据int[]i={1,5,8,7,11,52};//1.遍历的方式Listlist=newArrayList();for(intx:i){

    2022年9月19日
    1
  • java系统类加载器_网易js加载器下载地址

    java系统类加载器_网易js加载器下载地址http://www.cnblogs.com/szlbm/p/5504631.html为什么要自定义类加载器类加载机制:http://www.cnblogs.com/xrq730/p/4844915.html类加载器:http://www.cnblogs.com/xrq730/p/4845144.html这两篇文章已经详细讲解了类加载机制和类加载器,还剩最后一个

    2025年9月19日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号