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)
上一篇 2022年10月3日 下午6:46
下一篇 2022年10月3日 下午6:46


相关推荐

  • 配置OPTIONS请求

    配置OPTIONS请求协议 HTTP 或者 HTTPS IP 端口三者都相同 则为同源 否则为跨域 跨域请求 就是这么来的 配置 OPTIONS 请求 有两种情况 第一种是开发环境 第二种是测试环境 生产环境 开发环境 配置如下 配置代理 修改 config index js 文件 dev proxyTable 可以配置 N 个 api target process env API ROOT changeOrigin true 是否跨域 pathRewrite api

    2026年3月17日
    2
  • 教程 Tags

    教程 Tags

    2026年3月15日
    4
  • 手机如何传输高清视频

    手机如何传输高清视频 为了应对手机传输高清摄像的挑战,需要在USB标准中定义一个USB音视频类来规范USB视频传输(Video-over-USB)技术。【您可以是大型系统集成商、可以是相关贸易的经销商、也可以是设计单位、即便您是个人、只要您有资源、只要您有渠道、我们都会最大限度内保证您的利益。】  手机的摄像功能已经从一种新鲜事物发展为主流配置,移动供应商策略性地把高清录像作为他们的高端产品。在手机中整合高清视频将会进一步体现其实用价值,因为它已不仅是一个数码相机,还是一个数码摄像机​。  把高清录像放到手机会带.

    2022年10月3日
    4
  • Oracle报错:不是单组分组函数解决「建议收藏」

    Oracle报错:不是单组分组函数解决「建议收藏」Oracle报错:不是单组分组函数解决报错:不是单组分组函数实例:selectdeptno,count(empno)fromemp;报错:不是单组分组函数原因:1,如果程序中使用了分组函数,则有两种情况可以使用:程序中存在groupby,并指定了分组条件,这样可以将分组条件一起查询出来改为:selectdeptno,count(empno)fromempgrou…

    2022年6月29日
    197
  • ARM 软中断指令SWI

    ARM 软中断指令SWI前面我们学习 ARM 工作模式中 处理器模式切换可以通过软件控制进行切换 即修改 CPSR 模式位 但这是在特权模式下 当我们处于用户模式下 是没有权限实现模式转换的 若想实现模式切换 只能由另一种方法来实现 即通过外部中断或是异常处理过程进行切换 于是 ARM 指令集中提供了两条产生异常的指令 通过这两条指令可以用软件的方法实现异常 其中一个就是中断指令 SWI nbsp nbsp 一 软件中断 nbsp nbsp nbsp nbsp nbsp nbsp nbsp 软中

    2026年3月18日
    2
  • Django 模型_django反向生成model

    Django 模型_django反向生成model前言随着项目越来越大,采用写原生SQL的方式在代码中会出现大量的SQL语句,那么问题就出现了:1.SQL语句重复利用率不高,越复杂的SQL语句条件越多,代码越长。会出现很多相近的SQL语句。2.

    2022年7月30日
    8

发表回复

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

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