成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

RabbitMQ系列之Hello World

開發 前端
簡單的說就是用來傳輸消息的中間載體,就是將你的信息發送到接受方,它并不關心發送的數據是什么。RabbitMQ就是一個消息中間件。

大家好,我是指北君。

在工作中經常會用到消息隊列處理各種問題,今天指北君帶領大家來學一個很常用到的技術-RabbitMQ;接下來還會有關于RabbitMQ的系列教程。

RabbitMQ是什么

隊列:一種數據結構,先進先出。

消息隊列:簡單的說就是用來進行消息傳輸的隊列。

消息中間件:簡單的說就是用來傳輸消息的中間載體,就是將你的信息發送到接受方,它并不關心發送的數據是什么。RabbitMQ就是一個消息中間件。

RabbitMQ的特點

  • 可靠性。支持持久化,傳輸確認,發布確認等保證了MQ的可靠性。
  • 靈活的分發消息策略。這應該是RabbitMQ的一大特點。在消息進入MQ前由Exchange(交換機)進行路由消息。分發消息策略有:簡單模式、工作隊列模式、發布訂閱模式、路由模式、通配符模式。
  • 支持集群。多臺RabbitMQ服務器可以組成一個集群,形成一個邏輯Broker。
  • 多種協議。RabbitMQ支持多種消息隊列協議,比如 STOMP、MQTT 等等。
  • 支持多種語言客戶端。RabbitMQ幾乎支持所有常用編程語言,包括 Java、.NET、Ruby 等等。
  • 可視化管理界面。RabbitMQ提供了一個易用的用戶界面,使得用戶可以監控和管理消息 Broker。
  • 插件機制。RabbitMQ提供了許多插件,可以通過插件進行擴展,也可以編寫自己的插件。

為什么使用消息隊列

  1. 解耦,模塊間的通信使用消息隊列進行,降低模塊之間的耦合度。
  2. 異步,模塊A處理完核心業務之后,發消息給模塊B,就可以直接返回給客戶端,提高性能。
  3. 削峰,短時間內有大量請求,可以通過消息隊列來逐個處理,防止系統宕機。

Hello World

首先,安裝RabbitMQ,可直接使用docker安裝一個。

docker 地址:https://hub.docker.com/_/rabbitmq/tags

# 拉取鏡像
docker pull rabbitmq:management

# 啟動容器
docker run -id --hostname my-rabbit \
--name rabbitmq \
-p 15672:15672 \
-p 5672:5672 \
-e RABBITMQ_DEFAULT_USER=admin \
-e RABBITMQ_DEFAULT_PASS=admin \
rabbitmq:management

然后在網頁訪問:http://服務器的ip:15672,輸入賬號密碼。記得開放端口

看到此頁面代表安裝成功

圖片

準備就緒,先寫個Hello World

導入pom依賴

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>

準備工具類

public class ConnectionUtils {

public static Connection getConnection(){
ConnectionFactory factory = new ConnectionFactory();
factory.setHost("1.15.88.28");
factory.setPort(5672);
factory.setUsername("admin");
factory.setPassword("admin");
factory.setVirtualHost("/");
try {
return factory.newConnection();
} catch (IOException | TimeoutException e) {
e.printStackTrace();
}
return null;
}
}

生產者

public class Producer {
// 聲明隊列的名字
private static final String QUEUE_NAME = "queue_helloworld_1";

public static void main(String[] args) throws IOException, TimeoutException {
// 1. 獲取連接
Connection connection = ConnectionUtils.getConnection();
// 2. 創建數據傳輸通道
Channel channel = connection.createChannel();
// 3. 聲明隊列
channel.queueDeclare(QUEUE_NAME, false, false, false, null);
// 4. 發送數據到隊列
channel.basicPublish("", QUEUE_NAME, MessageProperties.PERSISTENT_TEXT_PLAIN, "第一個隊列消息...".getBytes());
// 5. 關閉通道
channel.close();
// 6. 關閉連接
connection.close();
}
}

消費者

public class Consumer {
// 聲明隊列的名字
private static final String QUEUE_NAME = "queue_helloworld_1";

public static void main(String[] args) throws IOException, TimeoutException {
// 1. 獲取連接
Connection connection = ConnectionUtils.getConnection();
// 2. 創建通道
Channel channel = connection.createChannel();
// 3. 聲明隊列
channel.queueDeclare(QUEUE_NAME, false, false, false, null);
// 4. 聲明消費者
DefaultConsumer defaultConsumer = new DefaultConsumer(channel) {
@Override
public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {
System.out.println("接收到的消息是:" + new String(body));
channel.basicAck(envelope.getDeliveryTag(), false);
}
};
// 5. 綁定消費者
channel.basicConsume(QUEUE_NAME, false, defaultConsumer);
}
}

測試

  1. 先啟動消費者
  2. 再啟動生產者
  3. 可以看到消費者的控制臺打印出 生產者傳遞的消息

圖片

小結

本文到這里就結束了,簡單介紹了一下RabbitMQ是什么,以及RabbitMQ的安裝。

責任編輯:武曉燕 來源: Java技術指北
相關推薦

2009-09-16 17:15:19

OSGi Bundle

2011-09-08 10:41:12

Node.js

2011-12-05 15:44:45

Knockout

2014-12-19 10:07:10

C

2017-11-23 17:45:46

Yii框架IntelYii框架深度剖析

2021-01-20 07:48:28

TechFlow前端網站

2012-02-20 14:26:48

JavaPlay Framew

2023-03-03 08:18:41

2009-07-30 13:21:17

Scala入門Hello World

2009-08-11 10:32:23

什么是Groovy

2023-09-04 07:30:03

Wasm匯編語言

2011-06-08 14:39:06

Qt 教程

2009-08-14 16:54:19

C# Hello Wo

2021-11-26 08:22:01

Java動態開發

2011-08-05 09:48:46

iPhone Interface

2024-04-11 13:13:27

2014-04-11 11:36:42

NDKAndroid開發終端

2023-05-23 08:01:10

Netty網絡通信

2015-10-27 09:47:11

2021-03-30 13:48:47

WebAssemblyWeb瀏覽器編程語言
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日本三级网站在线观看 | 蜜桃视频在线观看免费视频网站www | 欧美 中文字幕 | 超碰人人插| 国产精品久久国产精品 | 伊人免费视频二 | 亚洲精品久久久久中文字幕欢迎你 | 欧美午夜精品 | 亚洲第一福利视频 | 国产美女精品视频 | 日韩一级电影免费观看 | 国产韩国精品一区二区三区 | 欧美日韩国产在线观看 | 人人九九精 | 久久久精品视频一区二区三区 | 国产欧美精品一区二区 | 国户精品久久久久久久久久久不卡 | 成人在线观看中文字幕 | 夜夜久久 | 中文字幕视频在线观看 | 欧美aaaaa| 国产精品女人久久久 | 手机在线观看av | 精品久久久久久红码专区 | 国产精品高潮呻吟久久久久 | 欧美精品一区二区在线观看 | 污污的网站在线观看 | 亚洲欧美在线视频 | 99re视频在线免费观看 | 99精品亚洲国产精品久久不卡 | 夜夜操av| 精品视频在线免费观看 | 91精品国产91久久综合桃花 | 天天澡天天狠天天天做 | 亚洲三级视频 | 黄色成人在线网站 | 在线色网| 亚洲精品福利在线 | 91在线精品秘密一区二区 | 久久亚洲国产精品日日av夜夜 | 秋霞a级毛片在线看 |