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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Arthas – Java 线上问题定位处理的终极利器「建议收藏」

    Arthas – Java 线上问题定位处理的终极利器「建议收藏」前言在使用Arthas之前,当遇到Java线上问题时,如CPU飙升、负载突高、内存溢出等问题,你需要查命令,查网络,然后jps、jstack、jmap、jhat、jstat、hprof等一通操作。最终焦头烂额,还不一定能查出问题所在。而现在,大多数的常见问题你都可以使用Arthas轻松定位,迅速解决,及时止损,准时下班。1、Arthas介绍Arthas是Alib…

    2025年8月22日
    9
  • java集合类框架的基本接口有哪些

    java集合类框架的基本接口有哪些转自:牛客网java集合类框架的基本接口有哪些?答:Collection:代表一组对象,每一个对象都是它的子元素Set:不包括重复元素的CollectionList:有顺序的Collection,并且可以包含重复元素Map:可以把键(key)映射到值(value)的对象,键不能重复下面是详细解释:转自:牛客网(一)总共有两大接口:Collecti

    2022年5月15日
    37
  • SQL经典语句大全及应用示例汇总

    SQL经典语句大全及应用示例汇总SQL经典语句大全及应用示例汇总无论您是一位SQLsever的新手,或是一位只是需要对SQL复习一下的资料仓储业界老将,您就来对地方了。本期专题精选了SQl语句、SQL语法、实例和教程等经典相关资源,助您SQL语句学习快速入门,让您一次看个够。可以下载附件留存~资源名称资源地址SQL语句大全【经典教程】…

    2022年5月15日
    35
  • 屏幕尺寸、分辨率、像素密度及其三者之间的关系[通俗易懂]

    屏幕尺寸、分辨率、像素密度及其三者之间的关系[通俗易懂]屏幕尺寸屏幕对角线的长度单位英寸,1英寸等于2.54厘米分辨率横纵向方向像素的大小纵向像素*横向像素,如1920px*1080px单位像素(px)像素密度指每英寸屏幕所拥有的像素的数量单位dpi三者关系像素密度=Sqrt(横向像素*横向像素+纵向像素*纵向像素)/屏幕尺寸注意:像素大小并不是固定的,不同的设备像素的大小可能不相同

    2022年5月30日
    60
  • MySQL为什么用B+树,而不用B树?

    MySQL为什么用B+树,而不用B树?

    2022年2月19日
    55
  • a标签去下划线或文字添加下修饰_a标签下划线(如何去掉a标签下划线)

    a标签去下划线或文字添加下修饰_a标签下划线(如何去掉a标签下划线)去掉a标签下划线:对超链接下划线设置使用代码"text-decoration"语法:text-decoration:none||underline||blink||overline||line-throughtext-decoration参数:none:.为什么我这个没有下划线?a:hover{color:red;}我爱你正常状态下的a标签是这…

    2022年5月2日
    75

发表回复

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

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