Maison Java javaDidacticiel Quels sont les frameworks RPC ?

Quels sont les frameworks RPC ?

Oct 29, 2020 pm 03:04 PM
rpc框架

Les frameworks RPC incluent : 1. RMI, invocation de méthode à distance ; 2. Hessian, invocation de méthode à distance basée sur HTTP 3. Dubbo, le framework RPC open source basé sur TCP de Taobao.

Quels sont les frameworks RPC ?

Les frameworks rpc sont :

RPC est l'abréviation de procédure à distance call , largement utilisé dans les applications distribuées à grande échelle, son rôle est de faciliter la division verticale du système et de faciliter son expansion. Il existe de nombreux frameworks RPC en Java, chacun avec ses propres caractéristiques. Les plus utilisés incluent RMI, Hessian, Dubbo, etc. Une autre fonctionnalité de RPC est qu'il peut multilingue. Cet article prend uniquement comme exemple le RPC dans le langage JAVA.

Il existe un diagramme de relation logique pour RPC, en prenant RMI comme exemple :


D'autres structures de framework sont similaires. La différence réside dans la méthode de sérialisation des objets, le protocole de communication pour la transmission des objets et la conception de gestion et de basculement du centre d'enregistrement (à l'aide de zookeeper).

Le client et le serveur peuvent s'exécuter dans différentes JVM. Le client n'a qu'à présenter l'interface et les données requises pour l'exécution sont toutes côté serveur. repose principalement sur la technologie. Il s'agit d'un protocole de sérialisation, de désérialisation et de transmission. En JAVA, il correspond à la sérialisation, la désérialisation et la transmission de données sérialisées. La sérialisation et la désérialisation de RMI sont natives de JAVA. La sérialisation et la désérialisation en Hessian sont privées, et le protocole de transmission est HTTP. La sérialisation de Dubbo peut être sélectionnée parmi une variété d'options. Le protocole de sérialisation de Hessian est généralement utilisé. framework NIO hautes performances Netty. Je m'y connais aussi en sérialisation, comme ProBuffer de Google, JBoss Marshalling et Apache Thrift, etc. J'ai déjà écrit un article de blog présentant ProBuffer

1. RMI (Remote Method Invocation)

Le propre outil d'invocation de méthode à distance de JAVA, mais il a certaines limites. Après tout, c'est la conception originale du langage JAVA. , les principes de nombreux frameworks étaient basés sur RMI. L'utilisation de RMI est la suivante :

Interface externe

<span style="font-size:12px;">public interface IService extends Remote {

    public String queryName(String no) throws RemoteException;

}</span>
Copier après la connexion

<.>Implémentation du service

import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;

// 服务实现
public class ServiceImpl extends UnicastRemoteObject implements IService {

    /**
     */
    private static final long serialVersionUID = 682805210518738166L;

    /**
     * @throws RemoteException
     */
    protected ServiceImpl() throws RemoteException {
        super();
    }

    /* (non-Javadoc)
     *
     */
    @Override
    public String queryName(String no) throws RemoteException {
        // 方法的具体实现
        System.out.println("hello" + no);
        return String.valueOf(System.currentTimeMillis());
    }
    
}
Copier après la connexion

Client RMI

import java.rmi.AccessException;
import java.rmi.NotBoundException;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;

// RMI客户端
public class Client {

    public static void main(String[] args) {
        // 注册管理器
        Registry registry = null;
        try {
            // 获取服务注册管理器
            registry = LocateRegistry.getRegistry("127.0.0.1",8088);
            // 列出所有注册的服务
            String[] list = registry.list();
            for(String s : list){
                System.out.println(s);
            }
        } catch (RemoteException e) {
            
        }
        try {
            // 根据命名获取服务
            IService server = (IService) registry.lookup("vince");
            // 调用远程方法
            String result = server.queryName("ha ha ha ha");
            // 输出调用结果
            System.out.println("result from remote : " + result);
        } catch (AccessException e) {
            
        } catch (RemoteException e) {
            
        } catch (NotBoundException e) {
            
        }
    }
}
Copier après la connexion

Serveur RMI

import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;

// RMI服务端
public class Server {

    public static void main(String[] args) {
        // 注册管理器
        Registry registry = null;
        try {
            // 创建一个服务注册管理器
            registry = LocateRegistry.createRegistry(8088);

        } catch (RemoteException e) {
            
        }
        try {
            // 创建一个服务
            ServiceImpl server = new ServiceImpl();
            // 将服务绑定命名
            registry.rebind("vince", server);
            
            System.out.println("bind server");
        } catch (RemoteException e) {
            
        }
    }
}
Copier après la connexion

Gestion des enregistrements des services Le serveur est écrit dans le serveur et peut bien sûr être extrait en tant que service distinct. Dans certains autres frameworks, Zookeeper est souvent utilisé pour jouer le rôle de gestion des enregistrements.

2. Hessian (invocation de méthode à distance basée sur HTTP)

Basé sur la transmission du protocole HTTP, les performances sont également bon Ce n'est pas parfait. L'équilibrage de charge et le basculement dépendent de l'équilibreur de charge de l'application. L'utilisation de Hessian est similaire à RMI. La différence est que le rôle du registre est minimisé et utilise HessianProxyFactory pour créer un proxy. objet basé sur l'adresse configurée. En plus, présentez également le package Hessian Jar.


3. Dubbo (le framework RPC open source basé sur TCP de Taobao)

Un framework RPC hautes performances basé sur Netty, open source d'Alibaba Le principe général est le suivant :


Avant de comprendre Dubbo, vous devez d'abord avoir une compréhension approfondie de Zookeeper Une fois que vous aurez compris Zookeeper, Dubbo n'aura plus de secrets.

La description détaillée de Dubbo est très détaillée dans Taobao Open Source. Dubbo est utilisé dans de nombreux projets de production au travail, et de nombreux éléments doivent être pris en compte dans le processus, en particulier celui-ci. De nombreuses configurations et paramètres inappropriés seront ennuyeux. Il est préférable de le personnaliser et de l'optimiser en fonction du Dubbo open source existant.

Recommandations d'apprentissage gratuites associées :

Tutoriel de base Java

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Vous avez un jeu croisé?
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Le framework RPC manuscrit n'est vraiment pas seulement destiné à faire semblant d'avoir 13 ans ! Le framework RPC manuscrit n'est vraiment pas seulement destiné à faire semblant d'avoir 13 ans ! Aug 16, 2023 pm 05:01 PM

Peut-être qu'on ne vous l'a pas demandé, peut-être avez-vous de la chance, ou peut-être n'êtes-vous pas encore à ce niveau. Habituellement, le salaire mensuel est supérieur à 20 000 et ils poseront essentiellement des questions de conception. Du point de vue de l'intervieweur : il est préférable de poser ce type de questions plutôt que de rédiger un essai en huit parties, qui implique de nombreux points techniques. Par exemple : connaissances sur les modèles de conception, les protocoles de communication, les agents dynamiques, la virtualisation, les pools de threads, etc.

Intervieweur d'Alibaba : Veuillez écrire à la main un framework RPC pour moi. Intervieweur d'Alibaba : Veuillez écrire à la main un framework RPC pour moi. Aug 17, 2023 pm 04:24 PM

RPC est un protocole de communication informatique. Ce protocole permet à un programme exécuté sur un ordinateur d'appeler un sous-programme sur un autre ordinateur sans que le développeur ait à programmer en plus cette interaction.

Principes et applications du framework RPC en langage Go Principes et applications du framework RPC en langage Go Jun 01, 2023 pm 03:01 PM

1. Le concept de framework RPC Dans les systèmes distribués, les données doivent souvent être transférées entre différents serveurs et clients. Le framework RPC (RemoteProcedureCall) est un moyen technique couramment utilisé. Le framework RPC permet aux applications d'appeler des fonctions ou des méthodes d'un autre environnement d'exécution via une messagerie à distance, permettant ainsi au programme de s'exécuter sur différents ordinateurs. Il existe actuellement de nombreux frameworks RPC sur le marché, tels que gRPC de Google, Thrift, Hessian, etc. Cet article présente principalement

Comment développer le framework RPC en PHP ? Comment développer le framework RPC en PHP ? May 13, 2023 pm 03:22 PM

RPC (RemoteProcedureCall) est un protocole de communication inter-processus qui permet à différents processus de communiquer et de collaborer sur le réseau sur différentes machines physiques. Le framework RPC attire de plus en plus l'attention car il peut aider les développeurs à mettre en œuvre facilement le développement de systèmes distribués. Dans cet article, nous présenterons étape par étape comment utiliser PHP pour développer le framework RPC. 1. Qu'est-ce que le cadre RPC ? Le framework RPC est un framework utilisé pour implémenter des appels de procédure distante. En mode RPC

Quels sont les frameworks RPC ? Quels sont les frameworks RPC ? Aug 03, 2023 am 10:17 AM

Les frameworks rpc incluent : 1. gRPC, un framework RPC open source hautes performances développé par Google ; 2. Apache Thrift, un framework RPC multilingue développé et open source par Facebook 3. Apache Dubbo, un framework RPC de haute qualité ; framework RPC performant et léger, adapté aux systèmes distribués à grande échelle ; 4. Apache Axis2, un framework RPC basé sur les normes de services Web ; 5. Spring Cloud, un framework open source pour la création de systèmes distribués.

Évaluation du framework RPC du langage Go : performances, facilité d'utilisation, comparaison du support communautaire Évaluation du framework RPC du langage Go : performances, facilité d'utilisation, comparaison du support communautaire Feb 27, 2024 pm 09:12 PM

En tant que langage de programmation moderne important, le langage Go est de plus en plus utilisé dans le développement de systèmes distribués. Lors de la construction d’un système distribué, le choix du framework RPC (appel de procédure à distance) est souvent crucial. Cet article procédera à une évaluation horizontale des frameworks RPC actuels du langage Go, comparera leurs avantages et leurs inconvénients en termes de performances, de facilité d'utilisation et de support communautaire, et joindra des exemples de code spécifiques. 1. Comparaison des performances Dans les systèmes distribués, les performances sont souvent l'un des principaux indicateurs auxquels les développeurs prêtent attention. Voici quelques principaux

Comment implémenter un framework RPC à haute concurrence en langage Go Comment implémenter un framework RPC à haute concurrence en langage Go Aug 05, 2023 pm 12:49 PM

Introduction à la façon de mettre en œuvre un framework RPC à haute concurrence dans le langage Go : Avec le développement rapide d'Internet, les applications à haute concurrence ont attiré de plus en plus d'attention. L'utilisation du framework RPC (RemoteProcedureCall) est une solution courante. Cet article présentera comment implémenter un framework RPC à haute concurrence dans le langage Go et sera accompagné d'exemples de code. Introduction au framework RPC : RPC est un protocole de communication qui permet à un programme informatique d'appeler un sous-programme dans un autre espace d'adressage (généralement situé sur l'ordinateur distant) sans

Quels sont les frameworks RPC dans PHP7.0 ? Quels sont les frameworks RPC dans PHP7.0 ? May 29, 2023 am 11:10 AM

Avec le développement continu de la technologie informatique, les systèmes distribués sont devenus courants et l'appel de procédure à distance (RPC) est un moyen important de mettre en œuvre des systèmes distribués. En tant que langage de programmation Web populaire, PHP possède également son propre framework RPC, parmi lequel de nouveaux frameworks RPC ont été introduits dans la version PHP7.0. Cet article présentera les frameworks RPC courants et leurs caractéristiques dans PHP7.0. PHPRemoteProcedureCall(phpRPC)phpRPC est un RP léger

See all articles