Cadre RPC de la peau de poisson
De 0 à 1, emmenez-vous pour développer votre propre framework RPC
Fish Skin Original Project Tutorial Series: https://yuyuanweb.feishu.cn/wiki/sepywtc9tipqicktw7uc7kujncd
Introduction du projet
Un cadre RPC haute performance basé sur Java + etcd + Vert.x, utilise une nouvelle pile de technologie pour amener tout le monde à développer des roues de 0 à 1. etc.), la conception de l'équilibreur de charge, les mécanismes de tolérance de réessayer et les défauts, le développement axé sur l'annotation du démarreur de démarrage de ressort, etc., améliorant considérablement les capacités de conception architecturale.
Le projet est divisé en versions de base et étendues:
- La version de base peut être écrite sur le CV en quelques heures seulement ~
- La version étendue sera un projet technique plein de faits saillants et sera associé à un projet commercial pour rendre le CV plus compétitif.
Commencez à apprendre ou en savoir plus: Framework RPC manuscrit (24 ans de plus tard)
Adresse open source: https://github.com/liyupi/yu-rpc
Le chapitre 1 du tutoriel peut être appris gratuitement
Vidéo d'instruction - Explication RPC
Affichage du projet
Structure du répertoire:

Tutoriel de texte au niveau de la nounou::

Sélection technique
extrémité arrière
La technologie backend est principalement Java, mais toutes les idées et conceptions peuvent être réutilisées dans d'autres langues, et le code est tout simplement différent.
- Framework Vert.x
- ️ etcd Cloud Native Storage Middleware (Client JetCD)
- Outil de coordination distribué Zookeeper (client conservateur)
- Mécanisme SPI
- ️ Plusieurs sérialiseurs
- Sérialisation JSON
- Sérialisation kryo
- Sérialisation de la Hesse
- ️ Plusieurs modes de conception
- Mode singleton de verrouillage à double vérification
- Modèle d'usine
- Mode agent
- Mode décorateur
- ️ Spring Boot Starter Developter
- Lecteur de réflexion et d'annotation
- Bibliothèque de réessayer de la goyave réessayant
- Test de l'unité JUnit
- Bibliothèque de journaux de journal
- Hutool, bibliothèque d'outils Lombok
Répertoire de code source
- YU-RPC-Core: Fish Skin RPC Framework Core Code
- YU-RPC-Easy: Fish Skin RPC Frame Simple Version (adapté aux débutants)
- Exemple-commun: Exemple de code Common Module
- Exemple de consommateur: exemple de services de service
- Exemple-fournisseur: Exemple de fournisseur de services
- Exemple-Springboot-Consumer: Exemple de consommateur de services (Spring Boot Framework)
- Exemple-Springboot-Provider: Exemple de fournisseur de services (Spring Boot Framework)
- YU-RPC-Spring-Boot-Starter: Framework RPC axé sur l'annotation qui peut être utilisé rapidement dans les projets de démarrage Spring
Inconvénient du tutoriel du projet
Ce projet a beaucoup de contenu, vous pouvez donc voir si vous avez des points de connaissance que vous souhaitez apprendre.
Chapitre 1: Version Simple Framework RPC
- RPC Concepts et fonctions de base
- Idées de mise en œuvre du cadre RPC | Conception de base
- Idées de mise en œuvre du cadre RPC | Conception prolongée
- Version simple du développement RPC | Initialisation du projet
- Version simple du développement RPC | serveur Web
- Version simple du développement RPC | Inscrit de service local
- Version simple du développement RPC | Sérialiseur
- Version simple du développement RPC | Demander le processeur
- Version simple du développement RPC | Agent de consommation
- Version simple du développement RPC | Vérification des tests
Chapitre 2: Version d'extension du cadre RPC
- Chargement de configuration globale | Initialisation du projet de version étendue
- Chargement de configuration globale | Implémentation de chargement de configuration
- Chargement de configuration globale | Maintenir les objets de configuration globale
- Conception et implémentation de simulation d'interface
- Sérialiseur | Comparaison des sérialiseurs grand public
- Sérialiseur | Plusieurs implémentations de sérialisateur
- Sérialiseur | Mécanisme SPI
- Sérialiseur | Implémentation de sérialiseur extensible (mode SPI + usine)
- Centre d'inscription | Compétences de base du centre d'enregistrement
- Centre d'inscription | Sélection technique du centre d'enregistrement
- Centre d'inscription | Début avec etcd cloud middleware natif
- Centre d'inscription | Mise en œuvre du centre d'inscription basé sur etcd
- Centre d'inscription | Implémentation du centre d'enregistrement extensible (mode SPI + usine)
- Optimisation du centre d'enregistrement | Mécanisme de détection et de renouvellement des battements cardiaques
- Optimisation du centre d'enregistrement | Mécanisme hors ligne du nœud de service
- Optimisation du centre d'enregistrement | Cache de service à la consommation
- Optimisation du centre d'enregistrement | Mise à jour du cache (Mécanisme d'écoute etcd)
- Optimisation du centre d'enregistrement | Implémentation du centre d'enregistrement Zookeeper
- Protocole personnalisé | Analyse des exigences et conception de la solution
- Protocole personnalisé | Conception de la structure des messages (voir Dubbo)
- Protocole personnalisé | Conception de transmission réseau (implémentation de serveur TCP basé sur Vert.x)
- Protocole personnalisé | Encodeur / décodeur
- Protocole personnalisé | Processeur de demande TCP
- Protocole personnalisé | Client de demande TCP
- Protocole personnalisé | Analyse du problème de demi-package collant
- Protocole personnalisé | Utilisez vert.x pour résoudre les problèmes de demi-package collants
- Protocole personnalisé | Optimisation du code client (mode décorateur)
- Équilibrage de charge | Concept d'équilibrage de charge et algorithmes communs
- Équilibrage de charge | Hachage cohérent
- Équilibrage de charge | Ioutils d'équilibrage de charge multiples
- Équilibrage de charge | Implémentation de l'équilibreur de charge évolutif (mode SPI + Factory)
- REVENIR MÉCANISME | Résintmer la politique d'attente
- REVENIR MÉCANISME | Réglez la conception de la solution
- REVENIR MÉCANISME | Mise en œuvre de plusieurs stratégies de réessayer
- REVENIR MÉCANISME | Implémentation de politique de réessayer extensible (mode SPI + Factory)
- Mécanisme tolérant aux pannes | Politiques et méthodes de mise en œuvre tolérantes aux pannes
- Mécanisme tolérant aux pannes | Conception de solution tolérante aux pannes
- Mécanisme tolérant aux pannes | Mise en œuvre de plusieurs stratégies tolérantes aux pannes
- Mécanisme tolérant aux pannes | Implémentation de politique tolérante à défaut évolutive (modèle SPI + Factory)
- Mécanisme de démarrage | Classe de démarrage rapide du framework
- Mécanisme de démarrage | Conception axée sur l'annotation
- Mécanisme de démarrage | Implémentation du pilote d'annotation de démarrage de démarrage de Spring
- Idées d'extension du projet
Étude complète du didacticiel du projet
Cliquez pour rejoindre la navigation de programmation et tous les projets originaux dans le passé peuvent être appris.