Byte Jump Java Senior Engineer, Unified Naming service, Cluster Management, Distributed application?

Tenez - vous prêts. 2021-09-15 08:00:33
byte jump java senior engineer


RPCGénéralités

RPC(Remote Procedure Call)C'est - à - dire l'appel de procédure à distance,Permettre à un ordinateur d'appeler un programme sur un autre ordinateur pour obtenir des résultats,Et aucune programmation supplémentaire n'est nécessaire dans le Code,C'est comme appeler localement.

Aujourd'hui, les applications Internet sont de plus en plus nombreuses,La capacité d'un seul ordinateur est limitée,Besoin d'un Cluster informatique extensible pour compléter,Les applications distribuées peuvent utiliserRPCPour compléter les appels entre les machines.

RPCPrincipe du cadre

InRPCIl y a trois rôles principaux dans le cadre:Provider、ConsumerEtRegistry.Comme le montre la figure ci - dessous:

Byte RunoutJavaSenior Engineer,Service de nommage unifié、Gestion des grappes、Applications distribuées?_Java

Description du rôle du noeud:

  • Server: Fournisseurs de services qui exposent les services.

  • Client: Consommateur de services appelant un service à distance.

  • Registry: Registre des services et des découvertes.

RPCProcessus d'appel

RPCOrganigramme de base:

Byte RunoutJavaSenior Engineer,Service de nommage unifié、Gestion des grappes、Applications distribuées?_Arrière - plan_02

Une seule foisRPCProcessus d'appel(Appel synchrone,Asynchrone.)Comme suit:

1)Consommateurs de services(client)L'appel appelle le service comme un appel local;

2)client stubPrendre en charge la méthode après avoir reçu l'appel、Les paramètres, etc., sont assemblés en un corps de message capable d'être transmis par le réseau;

3)client stubTrouver l'adresse du service,Et envoyer le message au serveur;

4)server stubDécodage après réception du message;

5)server stubAppeler le service local en fonction des résultats du décodage;

6)Le service local exécute et renvoie les résultats àserver stub;

7)server stubEmballez les résultats retournés dans un message et envoyez - les au consommateur;

8)client stubMessage reçu,Et décoder;

9)Le consommateur de services obtient le résultat final.

RPCL'objectif du cadre est de:2~8Ces étapes sont encapsulées,Rendre les utilisateurs transparents sur ces détails.

Inscription au service&Découverte

Byte RunoutJavaSenior Engineer,Service de nommage unifié、Gestion des grappes、Applications distribuées?_Programmeur_03

Le fournisseur de services enregistre activement la machine dans le registre après le démarrageip、portEt la liste des services offerts;

Les consommateurs de services obtiennent une liste d'adresses des fournisseurs de services auprès du registre au démarrage,Équilibrer les charges douces etFailover;

La technologie utilisée

1、Agent dynamique

Générer client stubEtserver stubBesoin d'utiliser Java Technologie des agents dynamiques ,On peut utiliserJDKAgent dynamique natif,Certains cadres d'outils open source Bytecode sont disponibles Par exemple::CgLib、JavassistAttendez..

2、Sérialisation

Pour pouvoir transmettre et recevoir sur le réseau JavaObjet,Nous devons le faire Opérations de sérialisation et de désrialisation.

  • Sérialisation:Oui.JavaObjet converti enbyte[]Processus,C'est le processus de codage;

  • Désérialisation:Oui.byte[]Convertir enJavaProcessus de l'objet;

Peut être utiliséJavaMécanisme de sérialisation natif,Mais très inefficace,Certaines sources ouvertes sont recommandées、Technologie de sérialisation éprouvée,Par exemple:protobuf、Thrift、hessian、Kryo、Msgpack

Pour une comparaison des performances des outils de sérialisation, voir:jvm-serializers

3、NIO

Il y a beaucoup deRPCLes cadres sont tous directement basés surnettyCelui - là.IOCadre de communication,Comme celui d'AlibabaHSF、dubbo,Hadoop Avro,RecommandéNetty En tant que cadre de communication sous - jacent.

4、Registre des services

Technologie optionnelle:

  • Redis

  • Zookeeper

  • Consul

  • Etcd

Pratiques de programmation:L'écriture est nécessaire pour réaliser une architecture de trafic Multi - niveauxRPCCadre

Contenu vidéo

1、Pourquoi le trafic Multi - niveaux est - il distribué?、Toutes les architectures de microserviceRPC?
2、Qu'est - ce queRPC?
3、AnalyseRPCEtHTTP
4、RéalisationRPCCadre quels problèmes devons - nous résoudre??
5、Analyse spécifique des problèmes spécifiques,Résolution et mise en œuvre individuelles!
6、Débit à payer de 10 millions de niveaux,Ça suffit??Repenser notre réalisation.
7、DubboEtSpringCloudLequel est le meilleur??

Enfin

Les mots de code ne sont pas faciles,J'ai trouvé ça utile.,Pour que plus de gens dans le besoin voient

Une autre saison de recherche d'emploi,Ici,J'en ai un pour vous.JavaQuestions vraies pour l'examen écrit d'entrevue à haute fréquence sélectionné par le programmeur,Pour aider tout le monde.BATDeoffer,La gamme des sujets va du primaireJavaUne série de questions d'entrevue et de réponses basées sur une architecture distribuée de haut niveau,À titre de référence

 CodeChinaProjet Open Source:【Grandes usines de première ligneJavaAnalyse des questions d'entrevue+Résumé de base notes d'étude+Dernière vidéo d'explication】

Voici quelques captures d'écran du contenu
Byte RunoutJavaSenior Engineer,Service de nommage unifié、Gestion des grappes、Applications distribuées?_Arrière - plan_04

版权声明
本文为[Tenez - vous prêts.]所创,转载请带上原文链接,感谢
https://javamana.com/2021/09/20210915074923026x.html

  1. 小白也能看懂的dubbo3应用级服务发现详解
  2. SpringBoot异步使用@Async原理及线程池配置
  3. Questions d'entrevue de test avancé de Dachang, liste des compétences de base de l'entrevue Java,
  4. SpringBoot异步使用@Async原理及線程池配置
  5. Springboot utilise asynchrone le principe @ async et la configuration du pool de threads
  6. Détails de la découverte du Service d'application Dubbo 3 que Xiaobai peut également comprendre
  7. Springboot utilise asynchrone le principe @ async et la configuration du pool de threads
  8. 如何强大且优雅的搞定Linux文件系统,算法题 JVM,
  9. 太牛了,阿里P7架构师带你看透maven的来龙去脉,
  10. Oracle central et Oracle décentralisé
  11. java JavaBean
  12. Java wrapper type
  13. Java super keyword
  14. Java static keyword
  15. Java this keyword
  16. Java interface
  17. 太牛了,阿裏P7架構師帶你看透maven的來龍去脈,
  18. C'est génial, l'architecte Ali p7 vous montre à travers Maven.
  19. Comment traiter le système de fichiers Linux avec puissance et élégance, algorithme JVM,
  20. Java + SSM Social Insurance Pension System for Computer Graduation Design
  21. Usage of Java scanner
  22. Java inheritance
  23. Java method review
  24. java JVM
  25. Java Basics
  26. Java file operation object IO stream
  27. Java console reads multi character input and output
  28. Java simple array sorting
  29. In addition to MySQL master-slave, you have another choice, Galera
  30. Configuration standard dockerfile et docker-composer.yml
  31. 字节大神强推千页PDF学习笔记,2021Java开发学习路线,
  32. 字节大牛耗时八个月又一力作,靠这份Java知识点PDF成功跳槽,
  33. 字节大牛教你手撕Java学习,最新大厂程序员进阶宝典,
  34. Comment l'automne est - il beau?Ces 24 ensembles de modèles d'automne et d'hiver sont grands, minces et vieillissants
  35. 字節大牛教你手撕Java學習,最新大廠程序員進階寶典,
  36. 字節大牛耗時八個月又一力作,靠這份Java知識點PDF成功跳槽,
  37. Byte Bull vous apprend à déchiqueter Java à la main, le dernier dictionnaire avancé des programmeurs de grandes usines,
  38. Byte Bull a pris huit mois à travailler dur et a réussi à changer d'emploi avec ce PDF Java Knowledge point.
  39. Byte God Push 1000 pages PDF Learning notes, 2021 Java Development Learning route,
  40. Five minutes to understand MySQL index push down
  41. Spring中@within与@target的一些区别
  42. 力荐:提高千倍效率的一些 Java 代码小技巧
  43. Redis技术专题系列之帮你从底层彻底吃透RDB技术原理(基础篇)
  44. Juan Benet et vitalik buterin discutent des réflexions sur les médias sociaux décentralisés
  45. Ipfs Weekly Report 152 | pinata launched "submarining"
  46. Performance optimization issue 03 - HTTP request optimization
  47. JavaScript genrator generator
  48. 字节跳动Java面试全套真题解析在互联网火了,面试大厂应该注意哪些问题?
  49. 字节跳动Java社招,2021年阿里 腾讯 快手offer都已拿到!
  50. 用Java实现红黑树
  51. 使用Redis Stream来做消息队列和在Asp.Net Core中的实现
  52. 海量列式非关系数据库HBase 架构,shell与API
  53. Redis Technology Topic Series vous aide à comprendre les principes de la technologie rdb du Bas (Basic)
  54. Conseils: quelques conseils pour améliorer l'efficacité du Code Java
  55. Quelques différences entre @ within et @ Target au printemps
  56. 海量列式非關系數據庫HBase 架構,shell與API
  57. Architecture, Shell et API de base de données non relationnelle à grande échelle
  58. Mise en œuvre de l'arbre Rouge et noir en Java
  59. Byte Hopping Java Service Call, 2021 Alibaba Tencent Express offer a été obtenu!
  60. Byte Jump Java interview Full Set of true Problems Analysis in Internet fire, interview Factory should pay attention to what Problems?