comment implémenter le mécanisme RPC à l'aide de RabbitMQ en java

Sameek Mishra:

comment implémenter le mécanisme RPC (à la fois producteur et consommateur) en utilisant RabbitMQ en java? Je visite également le site officiel http://www.rabbitmq.com/api-guide.html#rpc mais je reçois une description détaillée de ces choses.

Merci

Romain Hippeau:

http://www.rabbitmq.com/api-guide.html#rpc

Sinon, vous pouvez télécharger la source de l'API Java qui comprend un exemple de code ici. http://www.rabbitmq.com/releases/rabbitmq-java-client/v2.0.0/rabbitmq-java-client-2.0.0.zip Il y a un dossier d'exemple là-dedans - Le code ci-dessous est de HelloServer.java et HelloClient.java

Serveur

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

public class HelloServer {
    public static void main(String[] args) {
        try {
            String hostName = (args.length > 0) ? args[0] : "localhost";
            int portNumber = (args.length > 1) ? Integer.parseInt(args[1]) : AMQP.PROTOCOL.PORT;

            ConnectionFactory connFactory = new ConnectionFactory();
            connFactory.setHost(hostName);
            connFactory.setPort(portNumber);
            Connection conn = connFactory.newConnection();
            final Channel ch = conn.createChannel();

            ch.queueDeclare("Hello", false, false, false, null);
            StringRpcServer server = new StringRpcServer(ch, "Hello") {
                    public String handleStringCall(String request) {
                        System.out.println("Got request: " + request);
                        return "Hello, " + request + "!";
                    }
                };
            server.mainloop();
        } catch (Exception ex) {
            System.err.println("Main thread caught exception: " + ex);
            ex.printStackTrace();
            System.exit(1);
        }
    }
}

Client

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

public class HelloClient {
    public static void main(String[] args) {
        try {
            String request = (args.length > 0) ? args[0] : "Rabbit";
            String hostName = (args.length > 1) ? args[1] : "localhost";
            int portNumber = (args.length > 2) ? Integer.parseInt(args[2]) : AMQP.PROTOCOL.PORT;

            ConnectionFactory cfconn = new ConnectionFactory(); 
            cfconn.setHost(hostName); 
            cfconn.setPort(portNumber);
            Connection conn = cfconn.newConnection();
            Channel ch = conn.createChannel();
            RpcClient service = new RpcClient(ch, "", "Hello");

            System.out.println(service.stringCall(request));
            conn.close();
        } catch (Exception e) {
            System.err.println("Main thread caught exception: " + e);
            e.printStackTrace();
            System.exit(1);
        }
    }
}

Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.

En cas d'infraction, veuillez [email protected] Supprimer.

modifier le
0

laisse moi dire quelques mots

0commentaires
connexionAprès avoir participé à la revue

Articles connexes

Comment implémenter le mécanisme de nouvelle tentative en Java à l'aide d'AspectJ

comment implémenter l'appel de procédure distante (RPC) dans RabbitMQ à l'aide de Nodejs

Comment implémenter le typage fort de domaine à l'aide d'annotations Java

Comment implémenter le tramage 1 bit à l'aide de Java?

Comment implémenter Church Numerals à l'aide de Java 1.8

Implémenter Stack à l'aide de Array en Java

Comment implémenter le mécanisme d'authentification dans Java EE 6

Comment implémenter un mécanisme de suivi en temps réel en Python?

Comment implémenter le mécanisme de mise à jour dans MySql?

Comment implémenter le wrapping de constructeur en Java?

Comment implémenter un calcul parallèle simple sur différents cœurs à l'aide de MPI en Python

Comment implémenter l'exemple de Dead Lock en Java

comment implémenter le mécanisme de nouvelle tentative lorsque j'ai reçu un modem gsm Exception: aucune donnée reçue du téléphone?

Comment implémenter le même mécanisme d'authentification pour le mvc asp.net et l'API Web

Comment inclure un mécanisme de gestion exceptionnel dans CXF Restful WebServices à l'aide de JAVA

Comment implémenter le modèle Node.JS à l'aide de Sequelize

Comment implémenter le modèle Singleton dans Dart à l'aide de constructeurs d'usine?

Comment implémenter le modèle de pilote à l'aide des Helpers dans Lumen

Comment implémenter l'infini en Java?

Comment implémenter l'accessibilité en Java

Besoin d'aide pour identifier le problème dans le mécanisme de croisement à point unique de l'algorithme génétique en Java

Comment implémenter la recherche complète dans le type de cas à l'aide de Salesforce?

Comment implémenter l'édition en ligne pour cette grille à l'aide de Devexpress Blazor

Comment implémenter le paramétrage pour un test complet à l'aide de python pytest

Comment implémenter le sélecteur d'imprimante à l'aide de SwiftUI?

Comment implémenter la fonction d'annulation pour le canevas HTML à l'aide de JavaScript ?

Tailwind.css — Comment implémenter le dernier enfant à l'aide de Tailwind ?

Comment implémenter le serveur MQTT à l'aide de Spring Integration?

Comment implémenter le routage dans Polymer 3 à l'aide de App-Route

TOP liste

  1. 1

    Microsoft.WebApplication.targets

  2. 2

    Spring @RequestParam DateTime format comme ISO 8601 Date Heure facultative

  3. 3

    comment supprimer "compte de connexion google" à des fins de développement - actions sur google

  4. 4

    Comment ajouter une entrée à une table de base de données pour une combinaison de deux tables

  5. 5

    Passer la taille d'un tableau 2D à une fonction ?

  6. 6

    Exporter la table de l'arborescence vers CSV avec mise en forme

  7. 7

    Impossible d'accéder à la vue personnalisée pendant le test de l'interface utilisateur dans XCode

  8. 8

    Créer un système Buzzer à l'aide de python

  9. 9

    Comment changer le navigateur par défaut en Microsoft Edge pour Jupyter Notebook sous Windows 10 ?

  10. 10

    impossible d'obtenir l'image d'arrière-plan en plein écran dans reactjs

  11. 11

    Algorithme: diviser de manière optimale une chaîne en 3 sous-chaînes

  12. 12

    CSS: before ne fonctionne pas sur certains éléments,: after fonctionne très bien

  13. 13

    Conversion double en BigDecimal en Java

  14. 14

    Comment obtenir l'intégration contextuelle d'une phrase dans une phrase à l'aide de BERT ?

  15. 15

    Comment choisir le nombre de fragments et de répliques Elasticsearch

  16. 16

    Comment vérifier si un utilisateur spécifique a un rôle? Discord js

  17. 17

    Comment créer un bot à compte à rebours dans Discord en utilisant Python

  18. 18

    Existe-t-il un moyen de voir si mon bot est hors ligne ?

  19. 19

    comment afficher un bouton au-dessus d'un autre élément ?

  20. 20

    Comment activer le message Pylint "too-many-locals" dans VS Code?

  21. 21

    Je continue à obtenir l'objet 'WSGIRequest' n'a pas d'attribut 'Get' sur django

chaudétiquette

Archive