Quels sont les frameworks 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.
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>
<.>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()); } }
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) { } } }
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) { } } }
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 :
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!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

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.

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.

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

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

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.

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

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

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
