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

相关推荐

  • 局域网内不同网段的设备互相连接设置

    局域网内不同网段的设备互相连接设置这个问题是我在实际中遇到的,如下图所示,我的主机有一个公司内网的IP,可以自动获取,也可以设置固定IP,不管怎么样,网段是172.16.0.xxx,不同的部分只是这里的xxx,我的主机IP是172.16.0.83。但是有时候,我们会从别的地方拿过来一块开发板,而开发板内部的IP基本是写死的,假如这个IP是192.168.253.10,我们会使用一个交换机,然后把外网引进来,而我…

  • xamarin android listview的用法

    xamarin android listview的用法listview也许是用的非常频繁的一个控件之一,下面我写一个xamarin的listview栗子,大家尝一尝xamarinandroid开发的乐趣。原谅我的大小写吧.listview绑定自定义的BaseAdapter先来看一下最终实现的效果图:News.cs和NewAdapter.csnamespaceDrawerLayout.Adapter{public…

  • RegisterStartupScript() 和 RegisterClientScriptBlock()[通俗易懂]

    RegisterStartupScript() 和 RegisterClientScriptBlock()[通俗易懂] 使用RegisterStartupScript()和RegisterClientScriptBlock()添加客户端脚本块  System.Web.UI.Page类包含的两个方法可以将客户端脚本代码发送到由ASP.NETWeb页面提供的HTML中: RegisterStartupScript(key,sc

  • Java8 新特性 —— 函数式编程

    Java8 新特性 —— 函数式编程

    2020年11月19日
  • android toast用法_android五种布局的特点

    android toast用法_android五种布局的特点Toast用于向用户显示一些帮助/提示。下面我做了5中效果,来说明Toast的强大,定义一个属于你自己的Toast。1.默认效果代码Toast.makeText(getApplicationContext(),"默认Toast样式",     Toast.LENGTH_SHORT).show(); 2.自定义显示位置效果代码toast=Toast.mak…

  • redis的5种数据类型「建议收藏」

    redis的5种数据类型「建议收藏」1.redis的5种数据类型:string字符串(可以为整形、浮点型和字符串,统称为元素)list列表(实现队列,元素不唯一,先入先出原则)set集合(各不相同的元素)hashhash散列值(hash的key必须是唯一的)sortset有序集合2.string类型的常用命令:自加:incr

发表回复

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

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