RabbitMQ 入门 Helloworld(3)

2、介绍

RabbitMQ 是信息传输的中间者。本质上,他从生产者(producers)接收消息,转发这些消息给消费者(consumers).换句话说,他能够按根据你指定的规则进行消息转发、缓冲、和持久化。

RabbitMQ 的一些常见的术语:

Producing意味着无非是发送。一个发送消息的程序是一个producer(生产者)。一般用下图表示Producer:

Queue(队列)类似邮箱。依存于RabbitMQ内部。虽然消息通过RabbitMQ在你的应用中传递,但是它们只能存储在queue中。队列不受任何限制,可以存储任何数量的消息—本质上是一个无限制的缓存。很多producers可以通过同一个队列发送消息,相同的很多consumers可以从同一个队列上接收消息。一般用下图表示队列:

Consuming(消费)类似于接收。consumer是基本属于等待接收消息的程序。一般使用下图表示Consumer:

注意:producer(生产者),consumer(消费者),broker(RabbitMQ服务)并不需要部署在同一台机器上,实际上在大多数实际的应用中,也不会部署在同一台机器上。

2、Java入门实例

一个producer发送消息,一个接收者接收消息,并在控制台打印出来。如下图:

注:需要在官网下载rabbitmq-java-client-bin-*.zip将jar放入项目的classpath.

**发送端:**Send.java 连接到RabbitMQ(此时服务需要启动),发送一条数据,然后退出。

package com.zhy.rabbit._01;

import com.rabbitmq.client.Channel;

import com.rabbitmq.client.Connection;

import com.rabbitmq.client.ConnectionFactory;

public class Send

{

//队列名称

private final static String QUEUE_NAME = “hello”;

public static void main(String[] argv) throws java.io.IOException

{

/**

  • 创建连接连接到MabbitMQ

*/

ConnectionFactory factory = new ConnectionFactory();

//设置MabbitMQ所在主机ip或者主机名

factory.setHost(“localhost”);

//创建一个连接

Connection connection = factory.newConnection();

//创建一个频道

Channel channel = connection.createChannel();

//指定一个队列

channel.queueDeclare(QUEUE_NAME, false, false, false, null);

//发送的消息

String message = “hello world!”;

//往队列中发出一条消息

channel.basicPublish(“”, QUEUE_NAME, null, message.getBytes());

System.out.println(" [x] Sent ‘" + message + "’");

//关闭频道和连接

channel.close();

connection.close();

}

}

值得注意的是队列只会在它不存在的时候创建,多次声明并不会重复创建。信息的内容是字节数组,也就意味着你可以传递任何数据。

**接收端:**Recv.java 不断等待服务器推送消息,然后在控制台输出。

package com.zhy.rabbit._01;

import com.rabbitmq.client.Channel;

import com.rabbitmq.client.Connection;

import com.rabbitmq.client.ConnectionFactory;

import com.rabbitmq.client.QueueingConsumer;

public class Recv

{

//队列名称

private final static String QUEUE_NAME = “hello”;

public static void main(String[] argv) throws java.io.IOException,

java.lang.InterruptedException

{

//打开连接和创建频道,与发送端一样

ConnectionFactory factory = new ConnectionFactory();

factory.setHost(“localhost”);

Connection connection = factory.newConnection();

Channel channel = connection.createChannel();

//声明队列,主要为了防止消息接收者先运行此程序,队列还不存在时创建队列。

channel.queueDeclare(QUEUE_NAME, false, false, false, null);

System.out.println(" [*] Waiting for messages. To exit press CTRL+C");

//创建队列消费者

QueueingConsumer consumer = new QueueingConsumer(channel);

//指定消费队列

channel.basicConsume(QUEUE_NAME, true, consumer);

while (true)

{

尾声

如果你想成为一个优秀的 Android 开发人员,请集中精力,对基础和重要的事情做深度研究。

对于很多初中级Android工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。 整理的这些架构技术希望对Android开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。

这里,笔者分享一份从架构哲学的层面来剖析的视频及资料分享给大家梳理了多年的架构经验,筹备近6个月最新录制的,相信这份视频能给你带来不一样的启发、收获。

PS:之前因为秋招收集的二十套一二线互联网公司Android面试真题 (含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。)

架构篇

《Jetpack全家桶打造全新Google标准架构模式》

《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!

[外链图片转存中…(img-8TSyhTHU-1715864592441)]

架构篇

《Jetpack全家桶打造全新Google标准架构模式》
[外链图片转存中…(img-f6OWD3Zi-1715864592443)]
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!

  • 7
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
RabbitMQ是一款使用Erlang语言开发的开源消息中间件,它实现了AMQP(高级消息队列协议)。RabbitMQ具有以下特点: 1. 可靠性:支持持久化、传输确认和发布确认等机制,确保消息的可靠性。 2. 灵活的消息分发策略:通过Exchange(交换机)进行路由消息,支持简单模式、工作队列模式、发布订阅模式、路由模式和通配符模式等多种分发策略。 3. 支持集群:多台RabbitMQ服务器可以组成一个集群,形成一个逻辑的Broker。 4. 多种协议:RabbitMQ支持多种消息队列协议,如STOMP、MQTT等。 5. 多种语言客户端:RabbitMQ几乎支持所有常用编程语言,包括Java、.NET、Ruby等。 6. 可视化管理界面:RabbitMQ提供了一个易用的用户界面,方便用户监控和管理消息Broker。 7. 插件机制:RabbitMQ提供了许多插件,可以通过插件进行扩展,也可以编写自己的插件。 要入门RabbitMQ,您可以按照以下步骤: 1. 安装RabbitMQ:根据操作系统的不同,您可以按照相应的方式进行安装。例如,在Windows 10系统中,您可以通过双击rabbitmq-server.bat启动脚本来启动RabbitMQ。 2. 学习基础概念:了解什么是消息队列以及为什么使用消息队列。 3. 学习RabbitMQ的特点和组成部分:深入了解RabbitMQ的可靠性、消息分发策略等特点。 4. 学习RabbitMQ的工作流程:了解消息在RabbitMQ中的传递和处理过程。 5. 完成一个HelloWorld小案例:尝试使用RabbitMQ发送和接收简单的消息,以便熟悉RabbitMQ的基本用法。 6. 学习RabbitMQ交换机的四种类型的特点和使用方法:了解直连交换机、扇形交换机、主题交换机和头交换机的不同特点和使用场景。 通过以上步骤,您可以初步入门RabbitMQ,并开始使用它进行消息传递和处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值