En tant que programmeur, quelle est la plus grande tristesse que vous ressentez? L'entrevue d'emploi Java de 2021 dans une grande usine vous demandera:

Code, petit frère. 2021-09-15 05:17:04
en tant que programmeur quelle


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:

En tant que programmeur,Quelle est votre plus grande tristesse?,2021Grande usineJavaQuestions obligatoires pour l'entrevue d'emploi,_Programmeur

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:

En tant que programmeur,Quelle est votre plus grande tristesse?,2021Grande usineJavaQuestions obligatoires pour l'entrevue d'emploi,_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

En tant que programmeur,Quelle est votre plus grande tristesse?,2021Grande usineJavaQuestions obligatoires pour l'entrevue d'emploi,_Programmeur_03

Le fournisseur de services enregistre activement la machine dans le registre après le démarrage ip、port Et 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 et Failover;

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 - niveaux RPCCadre

Contenu vidéo

1、 Pourquoi le trafic Multi - niveaux est - il distribué? 、 Toutes les architectures de microservice RPC?
2、Qu'est - ce queRPC?
3、AnalyseRPCEtHTTP
4、RéalisationRPC Cadre 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??

DockerPratique étape par étape

Table des matières documents:

En tant que programmeur,Quelle est votre plus grande tristesse?,2021Grande usineJavaQuestions obligatoires pour l'entrevue d'emploi,_Java_04

En tant que programmeur,Quelle est votre plus grande tristesse?,2021Grande usineJavaQuestions obligatoires pour l'entrevue d'emploi,_Java_05

①DockerIntroduction

②Concepts de base

③InstallationDocker

En tant que programmeur,Quelle est votre plus grande tristesse?,2021Grande usineJavaQuestions obligatoires pour l'entrevue d'emploi,_Java_06

④Utiliser un miroir:

En tant que programmeur,Quelle est votre plus grande tristesse?,2021Grande usineJavaQuestions obligatoires pour l'entrevue d'emploi,_Programmeur_07

⑤Manipulation des conteneurs:

En tant que programmeur,Quelle est votre plus grande tristesse?,2021Grande usineJavaQuestions obligatoires pour l'entrevue d'emploi,_Java_08

⑥Accès à l'entrepôt:

En tant que programmeur,Quelle est votre plus grande tristesse?,2021Grande usineJavaQuestions obligatoires pour l'entrevue d'emploi,_Arrière - plan_09

⑦Gestion des données:

En tant que programmeur,Quelle est votre plus grande tristesse?,2021Grande usineJavaQuestions obligatoires pour l'entrevue d'emploi,_Arrière - plan_10

⑧Utilisation du réseau:

En tant que programmeur,Quelle est votre plus grande tristesse?,2021Grande usineJavaQuestions obligatoires pour l'entrevue d'emploi,_Java_11

⑨Configuration avancée du réseau:

En tant que programmeur,Quelle est votre plus grande tristesse?,2021Grande usineJavaQuestions obligatoires pour l'entrevue d'emploi,_Java_12

⑩Sécurité:

En tant que programmeur,Quelle est votre plus grande tristesse?,2021Grande usineJavaQuestions obligatoires pour l'entrevue d'emploi,_Arrière - plan_13

?Mise en œuvre sous - jacente:

En tant que programmeur,Quelle est votre plus grande tristesse?,2021Grande usineJavaQuestions obligatoires pour l'entrevue d'emploi,_Programmeur_14

?Autres projets:

En tant que programmeur,Quelle est votre plus grande tristesse?,2021Grande usineJavaQuestions obligatoires pour l'entrevue d'emploi,_Java_15

 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】

版权声明
本文为[Code, petit frère.]所创,转载请带上原文链接,感谢
https://javamana.com/2021/09/20210915051011937a.html

  1. Dubbo's past and present life
  2. Initial experience of Dubbo application level service discovery
  3. Measure the Dubbo function of Tengine open source
  4. Comment envoyer 100 000 requêtes http le plus rapidement possible
  5. Huawei cloud guassdb (for redis) released a new version: Lua script and SSL connection encryption
  6. Mybatis vs hibernate, which performance is better?
  7. Python - Programmation orientée objet - _Rapport()
  8. Python - Programmation orientée objet - _Appel()
  9. JQuery Basics
  10. 五年Java开发经验面试,揭秘今年Java春招面试必问问题有哪些?
  11. 互联网Java工程师面试题,遇到的面试官都是架构师级别,
  12. Python - Programmation orientée objet - _Nouveau() et mode Singleton
  13. Python - Programmation orientée objet - méthode magique (méthode de double soulignement)
  14. Python - Programmation orientée objet - pratique (6)
  15. Python - Programmation orientée objet - réflexion hasattr, GetAttr, GetAttr, delattr
  16. Python - Programmation orientée objet - _Dict
  17. Computer graduation project java + SSM sorting algorithm online reading system
  18. Les questions d'entrevue pour les ingénieurs Java d'Internet, les intervieweurs rencontrés sont tous de niveau architecte,
  19. Cinq ans d'entrevue d'expérience en développement Java, découvrez les questions que vous devez poser lors de l'entrevue d'embauche du printemps Java de cette année.
  20. Java or the king of enterprise software- sivalabs
  21. 互聯網Java工程師面試題,遇到的面試官都是架構師級別,
  22. 从入门到精通系列Java高级工程师路线介绍,拼多多三面惨败,
  23. 今年最新整理的《高频Java面试题集合》,2021Java通用流行框架大全,
  24. La dernière collection de questions d'entrevue Java haute fréquence organisée cette année, 2021 Java Universal Popular Framework
  25. De l'introduction à l'introduction de l'itinéraire de l'ingénieur principal Java de la série Mastering, il y a eu de nombreux échecs.
  26. JavaScript operator (1), Web Development Engineer
  27. Java simultané Programming Books recommended, half - Runner Java Program see me easy to Attack!
  28. Trier les questions d'entrevue Javascript, trier les points de connaissance des itinéraires d'apprentissage
  29. Xiaopeng P7, a high-value domestic electric car that can't be missed
  30. Song Mengjun's "sleepless night" triggered an upsurge of dance storm after 00
  31. Encapsulated PHP sends HTTP requests with curl. Get and post are very easy to use
  32. Recommend a lightweight and practical excellent Linux panel - wgcloud
  33. 从思维图到基础再到深入,记一次字节跳动Java研发岗的面试经历,
  34. 从底层开始带你了解并发编程,五步搞定Java开发环境部署,
  35. 从基础到源码统统帮你搞定,一招彻底帮你搞定HashMap源码,
  36. 從基礎到源碼統統幫你搞定,一招徹底幫你搞定HashMap源碼,
  37. De la base au code source pour vous aider à résoudre tout, un tour pour vous aider à résoudre complètement le code source hashtap,
  38. Commencez par le bas pour vous familiariser avec la programmation simultanée, et terminez le déploiement de l'environnement de développement Java en cinq étapes.
  39. De la carte de pensée à la base et à l'approfondissement, prenez note de l'expérience d'entrevue d'un octet sautant le poste de recherche et développement Java.
  40. Open source: Suzhou tourism strategy based on pyecharts visual analysis
  41. Good play | every character hates it. How does jade building spring do it?
  42. 從底層開始帶你了解並發編程,五步搞定Java開發環境部署,
  43. 以商品超卖为例讲解Redis分布式锁,一招彻底帮你搞定HashMap源码,
  44. 从青铜到王者的路线,2021Java者未来的出路在哪里?
  45. JavaScript Advanced Programming (3rd Edition) Reading note 6
  46. 從青銅到王者的路線,2021Java者未來的出路在哪裏?
  47. Quelle est la voie à suivre pour les 2021 Java du bronze au roi?
  48. Prenez l'exemple de la surproduction de marchandises pour expliquer redis Distributed Lock, un tour complet pour vous aider à résoudre le code source de hashtap,
  49. 以商品超賣為例講解Redis分布式鎖,一招徹底幫你搞定HashMap源碼,
  50. Win10系统 java环境配置
  51. Non-ASCII character ‘\xe5‘ in file kf1.py on line 4, but no encoding declared; see http://python.or
  52. 手把手教你搭建微信小程序服务器(HTTPS)
  53. JavaScript Review sketch - 1
  54. sqli-labs-less-18 http头user agent+报错注入
  55. Git下载、安装、配置、配合Intellij Idea实现代码版本控制
  56. NHibernate inheritance
  57. Summary of basic knowledge points of JavaScript language (mind map)
  58. GIT télécharge, installe, configure et implémente le contrôle de version de code avec intellij idea
  59. Sqli Labs - less - 18 http header user agent + Error Reporting Injection
  60. Non - ASCII character 'xe5' in file kf1.py on Line 4, but no Encoding declared;Voirhttp://python.or