Rumah  >  Artikel  >  Java  >  Barisan mesej mikroperkhidmatan dan alat komunikasi tak segerak dilaksanakan di Jawa

Barisan mesej mikroperkhidmatan dan alat komunikasi tak segerak dilaksanakan di Jawa

王林
王林asal
2023-08-09 18:49:47761semak imbas

Barisan mesej mikroperkhidmatan dan alat komunikasi tak segerak dilaksanakan di Jawa

Baris gilir mesej perkhidmatan mikro dan alat komunikasi tak segerak dilaksanakan dalam Java

Pengenalan:
Dalam era Internet hari ini, populariti seni bina perkhidmatan mikro telah menjadi fakta yang tidak dapat dipertikaikan. Dalam seni bina perkhidmatan mikro, baris gilir mesej dan komunikasi tak segerak adalah komponen utama yang sangat diperlukan. Artikel ini akan memperkenalkan cara menggunakan Java untuk melaksanakan baris gilir mesej perkhidmatan mikro dan alat komunikasi tak segerak serta memberikan contoh kod yang sepadan.

1. Barisan Mesej Perkhidmatan Mikro
1.1 Apakah baris gilir mesej?
Baris gilir mesej ialah kaedah komunikasi dipisahkan aplikasi yang mencapai gandingan longgar antara penghantar dan penerima dengan menghantar mesej ke baris gilir. Pengirim hanya perlu menghantar mesej ke baris gilir dan tidak peduli bagaimana mesej itu diproses. Penerima boleh mengalih keluar mesej secara tak segerak daripada baris gilir untuk diproses.

1.2 Pengenalan kepada RabbitMQ
RabbitMQ ialah sistem baris gilir mesej sumber terbuka yang menggunakan AMQP (Advanced Message Qeuing Protocol) sebagai protokol penghantaran mesej. Ia mempunyai kebolehpercayaan yang tinggi, berskala dan mekanisme penghalaan yang fleksibel, dan sangat sesuai untuk membina baris gilir mesej dalam seni bina perkhidmatan mikro.

1.3 Penggunaan RabbitMQ
1.3.1 Tambah kebergantungan
Mula-mula, tambahkan kebergantungan RabbitMQ dalam pom projek

1.4 Running Example

Jalankan kelas Pengeluar dan Pengguna masing-masing, anda akan melihat mesej yang dihantar oleh Pengeluar. Pengguna.

2. Alat komunikasi tak segerak

2.1 Pengenalan kepada CompletableFuture

CompletableFuture ialah kelas alat yang diperkenalkan di Java 8 untuk memproses tugas tak segerak. Ia boleh mengendalikan panggilan tak segerak dengan lebih mudah, mengelakkan pemprosesan panggilan balik yang menyusahkan, dan meningkatkan kecekapan pengaturcaraan serentak.

2.2 Penggunaan CompletableFuture

2.2.1 Mencipta tugas tak segerak
Gunakan bekalan kaedah statikAsync of CompletableFuture untuk mencipta tugasan tak segerak dengan nilai pulangan.

<dependency>
    <groupId>com.rabbitmq</groupId>
    <artifactId>amqp-client</artifactId>
    <version>5.7.3</version>
</dependency>

2.2.2 Menggabungkan berbilang tugas tak segerak

CompletableFuture juga menyokong gabungan berbilang tugas tak segerak berdasarkan kebergantungan.

import com.rabbitmq.client.ConnectionFactory;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.Channel;

public class Producer {
    private final static String QUEUE_NAME = "my_queue";

    public static void main(String[] args) {
        try {
            // 创建连接工厂
            ConnectionFactory factory = new ConnectionFactory();
            factory.setHost("localhost");
            
            // 创建连接
            Connection connection = factory.newConnection();
            
            // 创建通道
            Channel channel = connection.createChannel();
            
            // 声明队列
            channel.queueDeclare(QUEUE_NAME, false, false, false, null);
            
            // 发送消息
            String message = "Hello, RabbitMQ!";
            channel.basicPublish("", QUEUE_NAME, null, message.getBytes("UTF-8"));
            System.out.println("Message sent: " + message);
            
            // 关闭连接
            channel.close();
            connection.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Ringkasan:

Dengan menggunakan RabbitMQ sebagai baris gilir mesej perkhidmatan mikro, komunikasi tak segerak di bawah seni bina perkhidmatan mikro boleh dicapai. Pada masa yang sama, kelas alat CompletableFuture yang diperkenalkan dalam Java 8 juga menyediakan sokongan kuat untuk pengaturcaraan tak segerak. Dengan menggunakan baris gilir mesej dan alat komunikasi tak segerak dengan betul, kami boleh membina sistem perkhidmatan mikro berskala dan boleh dipercayai.


Rujukan:


Dokumentasi rasmi RabbitMQ: https://www.rabbitmq.com/documentation.html

Dokumentasi rasmi CompletableFuture: https://docs.oracle.com/javase/8/docs/api/java / util/concurrent/CompletableFuture.html

    Atas ialah kandungan terperinci Barisan mesej mikroperkhidmatan dan alat komunikasi tak segerak dilaksanakan di Jawa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

    Kenyataan:
    Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn