RabbitMQ Server 3.8.0使用指南

RabbitMQ Server 3.8.0是一個開源的消息隊列軟件,官方網站為https://www.rabbitmq.com,本文將為你講解如何使用RabbitMQ Server 3.8.0實現消息通信。

一、安裝RabbitMQ Server 3.8.0

RabbitMQ Server 3.8.0能支持跨平台而開發的服務器版本,可以安裝在Linux(Fedora, RHEL, CentOS)、 macOS、Windows,核心的代碼使用Erlang語言編寫,不同平台的安裝方式略有不同,下面我們以CentOS操作系統為例進行說明。

1.安裝Erlang

sudo yum install erlang

2.安裝RabbitMQ Server 3.8.0

sudo wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.0/rabbitmq-server-3.8.0-1.el7.noarch.rpm
sudo rpm --import https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc
sudo yum install rabbitmq-server-3.8.0-1.el7.noarch.rpm

3.啟動RabbitMQ Server

sudo systemctl start rabbitmq-server.service

二、RabbitMQ Server 3.8.0的使用

1.連接到RabbitMQ Server

RabbitMQ Server的默認端口為5672,許多客戶端和庫都支持RabbitMQ Server與服務器之間的要求,下面是Python和Java兩種語言的示例代碼:

Python代碼:

import pika
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()

Java代碼:

import java.io.IOException;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
public class Producer {
  private final static String QUEUE_NAME = "hello";
  public static void main(String[] argv) throws Exception {
    ConnectionFactory factory = new ConnectionFactory();
    factory.setHost("localhost");
    try (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("UTF-8"));
      System.out.println(" [x] Sent '" + message + "'");
    }
  }
}

2.創建、發送和接收消息

RabbitMQ Server的基本概念是在Producers和Consumers之間傳遞消息,下面是創建,發送和接收消息的例子:

Python代碼:

import pika
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()
channel.queue_declare(queue='hello')
channel.basic_publish(exchange='', routing_key='hello', body='Hello World!')
print(" [x] Sent 'Hello World!'")

Java代碼:

import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
import com.rabbitmq.client.DeliverCallback;
public class Consumer {
  private final static String QUEUE_NAME = "hello";
  public static void main(String[] argv) throws Exception {
    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");
    DeliverCallback deliverCallback = (consumerTag, delivery) -> {
        String message = new String(delivery.getBody(), "UTF-8");
        System.out.println(" [x] Received '" + message + "'");
    };
    channel.basicConsume(QUEUE_NAME, true, deliverCallback, consumerTag -> { });
  }
}

三、集成RabbitMQ Server 3.8.0

RabbitMQ Server 3.8.0不僅能夠實現生產者的功能,還可以與Spring Boot等框架進行集成,下面是使用Spring Boot集成RabbitMQ的例子:

spring.rabbitmq.host=localhost
spring.rabbitmq.port=5672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest
spring.rabbitmq.virtual-host=/

1.發送消息

@Autowired
private AmqpTemplate rabbitTemplate;
...
rabbitTemplate.convertAndSend("hello", message);

2.接收消息

@RabbitListener(queues = "hello")
public void receive(String message) {
    System.out.println("Received message: " + message);
}

四、安全性

RabbitMQ Server 3.8.0提供了許多安全性措施來確保服務器和客戶端之間的安全通信,包括SSL、SASL和防止DDoS攻擊等,下面是一些安全性示例:

1.SSL

ssl_options = {
    "ca_certs": "/path/to/ca_certificate",
    "ssl_certfile": "/path/to/client_certificate",
    "ssl_keyfile": "/path/to/client_key",
    "verify_hostname": False
}
connection_params = pika.ConnectionParameters(host="localhost", port=5671, ssl=True, ssl_options=ssl_options)
connection = pika.BlockingConnection(connection_params)

2.SASL

credentials = pika.PlainCredentials("username", "password")
connection_params = pika.ConnectionParameters(host="localhost", port=5672, credentials=credentials)
connection = pika.BlockingConnection(connection_params)

3.DDoS攻擊防範

sudo rabbitmqctl set_connection_backpressure_threshold  

總結

本文對RabbitMQ Server 3.8.0進行了全面概述,包括安裝與使用,集成Spring Boot,安全性等。在許多場景下,使用RabbitMQ Server 3.8.0都能極大地提升數據處理的速度和可靠性。

原創文章,作者:YOCNM,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/373961.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
YOCNM的頭像YOCNM
上一篇 2025-04-27 15:26
下一篇 2025-04-27 15:26

相關推薦

  • wzftp的介紹與使用指南

    如果你需要進行FTP相關的文件傳輸操作,那麼wzftp是一個非常優秀的選擇。本文將從詳細介紹wzftp的特點和功能入手,幫助你更好地使用wzftp進行文件傳輸。 一、簡介 wzft…

    編程 2025-04-29
  • RabbitMQ和Yii2的消息隊列應用

    本文將探討RabbitMQ和Yii2之間的消息隊列應用。從概念、安裝和配置、使用實例等多個方面詳細講解,幫助讀者了解和掌握RabbitMQ和Yii2的消息隊列應用。 一、Rabbi…

    編程 2025-04-29
  • Fixmeit Client 介紹及使用指南

    Fixmeit Client 是一款全能的編程開發工具,該工具可以根據不同的編程語言和需求幫助開發人員檢查代碼並且提供錯誤提示和建議性意見,方便快捷的幫助開發人員在開發過程中提高代…

    編程 2025-04-29
  • Open h264 slic使用指南

    本文將從多個方面對Open h264 slic進行詳細闡述,包括使用方法、優缺點、常見問題等。Open h264 slic是一款基於H264視頻編碼標準的開源視頻編碼器,提供了快速…

    編程 2025-04-28
  • mvpautocodeplus使用指南

    該指南將介紹如何使用mvpautocodeplus快速開發MVP架構的Android應用程序,並提供該工具的代碼示例。 一、安裝mvpautocodeplus 要使用mvpauto…

    編程 2025-04-28
  • Python mmap共享使用指南

    Python的mmap模塊提供了一種將文件映射到內存中的方法,從而可以更快地進行文件和內存之間的讀寫操作。本文將以Python mmap共享為中心,從多個方面對其進行詳細的闡述和講…

    編程 2025-04-27
  • Python隨機函數random的使用指南

    本文將從多個方面對Python隨機函數random做詳細闡述,幫助讀者更好地了解和使用該函數。 一、生成隨機數 random函數生成隨機數是其最常見的用法。通過在調用random函…

    編程 2025-04-27
  • 按鍵精靈Python插件使用指南

    本篇文章將從安裝、基礎語法使用、實戰案例以及常用問題四個方面介紹按鍵精靈Python插件的使用方法。 一、安裝 安裝按鍵精靈Python插件非常簡單,只需在cmd命令行中輸入以下代…

    編程 2025-04-27
  • Python輸入變量的使用指南

    Python作為一種高級編程語言,其表達式和語法的簡潔和易讀性特點備受程序員青睞。本文將從多個方面詳細闡述Python輸入變量的使用方法。 一、變量類型 在Python中,變量名是…

    編程 2025-04-27
  • Ghostscript使用指南

    本文旨在對Ghostscript的常見使用進行詳細的闡述和舉例,內容涵蓋了Ghostscript的基本用法、PDF轉換、PDF加密、PDF合併、PDF拆分等多個方面。 一、基本用法…

    編程 2025-04-27

發表回復

登錄後才能評論