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使用案例_标点符号的正确使用方法及例子

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 最炫民族风原创_manjaro deepin

    最炫民族风原创_manjaro deepin最近有一首最具有民族风的歌曲很流行,它就是《最炫民族风》。中华民族的儿女都有这种情节,对于民族风的事物都非常感兴趣。与之相关,有一款最具民族风的Linux桌面操作系统也正在引起大家的关注。2012年7月17日,国人最喜爱的一款Linux发行版——DeepinLinux12.06正式发布了。LinuxDeepin也就是我们所说的深度Linux,这是一款基于Ubuntu11.04的发行

  • java如何键盘录入数组_从键盘输入给数组赋值

    java如何键盘录入数组_从键盘输入给数组赋值有时候在编写Jave的时候需要键盘输入一个数组,本小白也是看了几篇博客后才知道了如何在自己的程序中进行键盘输入,废话不多说,直接上代码:第一种方法:(不限制输入数组的长度)System.out.println("请输入几个数并用逗号隔开:");Scannersc=newScanner(System.in);Stringstr=sc.next().toString();…

  • 激光slam综述_激光slam原理

    激光slam综述_激光slam原理本篇是记录曾书格老师的课程《激光slam理论与实践》先贴一下个人总结(有理解的不正确的,麻烦指出来):第一章:激光SLAM简要介绍1、输出Metricalmap尺度地图,slam分为两种:基于滤波的filter-based的SLAM,和Graph-based的SLAM。2、(1)基于Graph-based的代表是cartographer,可以修复t时刻之前的误差分为两部…

  • Linux压测工具(http_load,webbench,ab,siege)

    Linux压测工具(http_load,webbench,ab,siege)

  • python编程画圆入门(python常用函数)

    python画圆运用了matplotlb库的figure()和Circle()函数;其中,figure()函数用于确定画布大小,而Circle()函数用于配置圆的相关信息,进而画圆。H9Z少儿编程网-https://www.pxcodes.comH9Z少儿编程网-https://www.pxcodes.com本教程操作环境:windows7系统、Python3版、DellG3电脑。H9Z少儿…

  • 最近做RTSP流媒体的实时广播节目

    最近做RTSP流媒体的实时广播节目

发表回复

您的电子邮箱地址不会被公开。

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