Heim > Java > javaLernprogramm > Wie man mit Java eine verteilte Messaging-Middleware-Anwendung basierend auf RocketMQ entwickelt

Wie man mit Java eine verteilte Messaging-Middleware-Anwendung basierend auf RocketMQ entwickelt

WBOY
Freigeben: 2023-09-21 14:30:11
Original
1060 Leute haben es durchsucht

Wie man mit Java eine verteilte Messaging-Middleware-Anwendung basierend auf RocketMQ entwickelt

So verwenden Sie Java, um eine verteilte Messaging-Middleware-Anwendung basierend auf RocketMQ zu entwickeln

Einführung:
Mit der rasanten Entwicklung der Internetbranche werden verteilte Systeme immer häufiger. Als eine der am häufigsten verwendeten Komponenten in verteilten Systemen spielt die Nachrichten-Middleware eine wichtige Rolle bei der Verbindung verschiedener verteilter Komponenten, der Entkopplung und der Gewährleistung der Datenkonsistenz. In diesem Artikel wird erläutert, wie Sie mithilfe von Java eine auf RocketMQ basierende Middleware-Anwendung für verteiltes Messaging entwickeln. Ziel ist es, den Lesern zu helfen, die Verwendung von RocketMQ für verteiltes Messaging zu verstehen und zu beherrschen.

1. Vorbereitung

  1. RocketMQ installieren und NameServer und Broker starten
    Download-Adresse: http://rocketmq.apache.org/
  2. Ein Maven-Projekt erstellen
    Erstellen Sie ein neues Maven-Projekt in der IDE und fügen Sie Abhängigkeiten wie folgt hinzu:
<dependency>
    <groupId>org.apache.rocketmq</groupId>
    <artifactId>rocketmq-client</artifactId>
    <version>4.8.0</version>
</dependency>
Nach dem Login kopieren

2. Senden Sie eine Nachricht

  1. Erstellen Sie einen Produzenten

    import org.apache.rocketmq.client.producer.DefaultMQProducer;
    import org.apache.rocketmq.common.message.Message;
    import org.apache.rocketmq.remoting.common.RemotingHelper;
    
    public class Producer {
        public static void main(String[] args) throws Exception {
            DefaultMQProducer producer = new DefaultMQProducer("producerGroup");
            producer.setNamesrvAddr("localhost:9876");
            producer.start();
    
            Message message = new Message("TopicTest", "TagA", "Hello RocketMQ".getBytes(RemotingHelper.DEFAULT_CHARSET));
            producer.send(message);
            System.out.println("发送消息成功");
    
            producer.shutdown();
        }
    }
    Nach dem Login kopieren

    Erstellen Sie eine Klasse mit dem Namen Producer, erstellen Sie eine DefaultMQProducer-Instanz in der Hauptmethode und legen Sie die NameServer-Adresse fest. Erstellen Sie als Nächstes eine Nachrichteninstanz und geben Sie den Betreff, die Bezeichnung und den Nachrichteninhalt an, die gesendet werden sollen. Rufen Sie die Methode Producer.send (Nachricht) auf, um die Nachricht zu senden, und schließen Sie schließlich den Producer.

  2. Führen Sie den Producer aus.
    Führen Sie die Hauptmethode der Producer-Klasse aus. Wenn alles richtig konfiguriert ist, wird auf der Konsole die Ausgabe „Nachricht erfolgreich gesendet“ angezeigt.

3. Nachrichten empfangen

  1. Erstellen Sie einen Verbraucher

    import org.apache.rocketmq.client.consumer.DefaultMQPushConsumer;
    import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext;
    import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyStatus;
    import org.apache.rocketmq.client.consumer.listener.MessageListenerConcurrently;
    import org.apache.rocketmq.common.message.MessageExt;
    
    import java.util.List;
    
    public class Consumer {
        public static void main(String[] args) throws Exception {
            DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("consumerGroup");
            consumer.setNamesrvAddr("localhost:9876");
            consumer.subscribe("TopicTest", "*");
    
            consumer.registerMessageListener(new MessageListenerConcurrently() {
                @Override
                public ConsumeConcurrentlyStatus consumeMessage(List<MessageExt> list, ConsumeConcurrentlyContext consumeConcurrentlyContext) {
                    for (MessageExt messageExt : list) {
                        System.out.println("接收到消息:" + new String(messageExt.getBody()));
                    }
                    return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;
                }
            });
    
            consumer.start();
            System.out.println("消费者启动");
        }
    }
    Nach dem Login kopieren

    Erstellen Sie eine Klasse mit dem Namen Consumer, erstellen Sie eine DefaultMQPushConsumer-Instanz in der Hauptmethode und legen Sie die NameServer-Adresse fest. Als Nächstes abonnieren Sie die Themen und Tags, die Sie nutzen möchten, indem Sie die Methode „consumer.subscribe“ aufrufen. Verwenden Sie dann die Methode „registerMessageListener“ des Consumer-Objekts, um einen Nachrichten-Listener zu registrieren und die Geschäftslogik auszuführen, wenn die Nachricht eintrifft. Starten Sie abschließend den Verbraucher.

  2. Führen Sie den Consumer aus.
    Führen Sie die Hauptmethode der Consumer-Klasse aus. Wenn alles richtig konfiguriert ist, sehen Sie die Ausgabe von „Consumer Started“ in der Konsole und können vom Produzenten gesendete Nachrichten empfangen.
  3. 4. Zusammenfassung
    Durch die Einleitung dieses Artikels haben wir gelernt, wie man mit Java eine verteilte Messaging-Middleware-Anwendung basierend auf RocketMQ entwickelt. Wir lernten, wie man Nachrichten sendet und empfängt und erhielten konkrete Codebeispiele. Natürlich müssen in tatsächlichen Anwendungen weitere Funktionen wie die Behandlung von Ausnahmen und das Festlegen von Nachrichtenverzögerungen detaillierter beschrieben werden. Ich hoffe, dass dieser Artikel Ihnen den Einstieg in RocketMQ und die Anwendung der Nachrichten-Middleware-Technologie in tatsächlichen Projekten erleichtern kann, um die Skalierbarkeit und Stabilität des Systems zu verbessern.

    Das obige ist der detaillierte Inhalt vonWie man mit Java eine verteilte Messaging-Middleware-Anwendung basierend auf RocketMQ entwickelt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage