Huawei Java interview title, Tencent Java Development interview record,

Programmeur Star 2021-09-15 06:31:46
huawei java interview title tencent


2. ZooKeeper Introduction

2.1. ZooKeeper Origine

Présentation officielle ZooKeeper Avant,Voyons d'abord ZooKeeper L'origine de,C'est intéressant..

Le passage suivant est tiré de《De Paxos À ZooKeeper 》Chapitre 4, section 1,Je vous recommande de lire:

ZooKeeper Une équipe de recherche de l'Institut Yahoo a été créée pour la première fois.À l'époque,Les chercheurs ont découvert,De nombreux grands systèmes au sein de Yahoo dépendent essentiellement d'un système similaire pour la coordination distribuée,Mais ces systèmes ont tendance à avoir des problèmes de points uniques distribués.Alors...,Les développeurs de Yahoo ont essayé de développer un cadre de coordination distribué universel sans problème unique,Pour permettre aux développeurs de se concentrer sur la logique d'entreprise.

À propos de“ZooKeeper”Le nom de ce projet,Il y a aussi une histoire intéressante.Au début du projet,Compte tenu du fait que de nombreux projets internes précédents ont été nommés d'après les noms d'animaux(Comme le célèbre Pig Projets),Les ingénieurs de Yahoo veulent aussi donner un nom animal à ce projet.Le scientifique en chef de l'Académie RaghuRamakrishnan Je plaisante.:“En continuant comme ça,On va se transformer en zoo!”C'est tout.,Les gens disent qu'ils appellent ça un gardien de zoo parce que les composants distribués nommés d'après les animaux sont réunis,Tout le système distribué de Yahoo ressemble à un grand zoo,Et ZooKeeper Juste pour coordonner les environnements distribués, donc ,ZooKeeper C'est ainsi que le nom de .

2.2. ZooKeeper Vue d'ensemble

ZooKeeper Est une source ouverteServices de coordination distribués,Il est conçu pour encapsuler des services de cohérence distribués complexes et sujets aux erreurs,Constituer un ensemble efficace et fiable de primitives,Et est fourni à l'utilisateur avec une série d'interfaces simples et faciles à utiliser.

Primitif: Provoque une synchronisation entre tous les serveurs.Est composé de plusieurs directives,Un processus utilisé pour remplir une fonction.Est indivisible·C'est - à - dire que l'exécution du primitif doit être continue,L'interruption n'est pas autorisée pendant l'exécution.

ZooKeeper Nous offre une grande disponibilité、Haute performance、Il sera finalement appliqué strictement séquentiellement à,Souvent utilisé pour réaliser des choses comme la publication de données/Abonnements、Équilibrage de la charge、Services de nommage、Coordination distribuée/Notification、Gestion des grappes、Master Elections、Fonctions telles que les serrures distribuées et les files d'attente distribuées.

En plus,ZooKeeper Enregistrer les données en mémoire,Les performances sont excellentes. In“Lire”Plus que“Écris.”En particulier dans les applications,Parce que“Écris.”Une solution stable de cohérence des données distribuées.(“Lire”Plus que“Écris.”Est un scénario typique pour la coordination des services).

2.3. ZooKeeper Caractéristiques

  • Cohérence séquentielle: Demande de transaction du même client,Le modèle de données côté serveur qu'il voit est cohérent ZooKeeper À mi - chemin.
  • Atomicité: Les résultats du traitement de toutes les demandes de transaction sont appliqués uniformément sur toutes les machines du cluster,C'est - à - dire,Soit toutes les machines du cluster entier ont appliqué avec succès une transaction,Ou aucune application.
  • Une image système unique : Peu importe à quel client est connecté ZooKeeper Sur le serveur,Le noeud supérieur change pour mettre à jour dynamiquement la configuration.
  • Fiabilité: Une fois qu'une demande de modification a été appliquée,Le résultat du changement est persistant,Jusqu'à ce qu'il soit écrasé par le prochain changement.

2.4. ZooKeeper Scénario d'application typique

ZooKeeper Aperçu général,Nous avons décrit l'utilisation qui est habituellement utilisée pour réaliser des choses comme la publication de données/Abonnements、Équilibrage de la charge、Services de nommage、Coordination distribuée/Notification、Gestion des grappes、Master Elections、Fonctions telles que les serrures distribuées et les files d'attente distribuées.

Choisissez ci - dessous 3 Un scénario d'application typique pour se concentrer sur:

  1. Serrure distribuée : Système d'exploitation ou réseau informatiqueObtenir des serrures distribuées en créant des noeuds uniques,Relâchez la serrure après que la partie qui l'a obtenue a exécuté le Code ou l'a accrochée.
  2. Services de nommage :Peut passer ZooKeeper Le noeud d'ordre de génère un unique au niveau mondial ID
  3. Diffusion des données/Abonnements :Adoption Watcher Mécanismes La diffusion des données peut être facilement réalisée/Abonnements.Lorsque vous publiez des données à ZooKeeper Sur le noeud surveillé,D'autres machines peuvent être surveillées ZooKeeper Le noeud supérieur change pour mettre à jour dynamiquement la configuration .

En fait,,La mise en œuvre de ces fonctions bénéficie essentiellement de ZooKeeper Fonctions permettant de sauvegarder les données,Mais ZooKeeper Ne convient pas à la conservation de grandes quantités de données,C'est quelque chose à noter.

2.5. Quels sont les célèbres projets open source utilisés ZooKeeper?

  1. Kafka : ZooKeeper Principalement Kafka Offre Broker Et Topic Et plusieurs Partition Fonctions telles que l'équilibrage de la charge.
  2. Hbase : ZooKeeper Pour Hbase Fournir l'assurance qu'il n'y a qu'un seul Master Et la conservation et la mise à disposition regionserver Informations sur l'état(En ligne ou non)Fonctions équivalentes.
  3. Hadoop : ZooKeeper Pour Namenode Fournir un soutien très disponible.

3. ZooKeeper Interprétation des concepts importants

Le son cassé:Sortez le petit carnet,Ce qui suit est très important!

3.1. Data model(Modèle de données)

ZooKeeper Le modèle de données adopte une structure hiérarchique Multi - arbre,Les données peuvent être stockées sur chaque noeud,Ces données peuvent être numériques、Une chaîne ou une séquence à deux niveaux.Et.Chaque noeud peut également avoir N Sous - noeud,La couche supérieure est le noeud racine pour“/”Pour représenter.Chaque noeud de données est ZooKeeper Est appelé znode,C'est... ZooKeeper La plus petite Unit é de données.Et,Chaque znode Un identifiant de chemin unique.

Soulignez:ZooKeeper Principalement utilisé pour coordonner les services,Plutôt que de stocker des données commerciales,Donc ne mettez pas de plus grandes données dans znode Allez.,ZooKeeper La limite supérieure donnée est la taille maximale des données pour chaque noeud 1M.

Le graphique ci - dessous montre plus directement:ZooKeeper Méthode d'identification du chemin du noeud et Unix Les chemins du système de fichiers sont très similaires,Est une série de barres obliques"/"Représentation du chemin divisé,Les développeurs peuvent écrire des données humaines à ce noeud,Vous pouvez également créer des noeuds enfants sous les noeuds.Ces opérations sont décrites plus loin..

HuaweiJavaQuestions d'entrevue,TencentJavaÉlaborer des dossiers d'entrevue,_Arrière - plan

3.2. znode(Noeuds de données)

Introduction ZooKeeper Après le modèle de données arborescentes,Nous savons que chaque noeud de données ZooKeeper Est appelé znode,C'est... ZooKeeper La plus petite Unit é de données.C'est là que vous mettez vos données.,C'est vous qui l'utilisez. ZooKeeper Un concept que vous devez souvent aborder dans le processus.

3.2.1. znode 4Type d'espèce

Nous avons tendance à znode Divisé en 4 Grandes catégories:

  • Durable(PERSISTENT)Noeud :Une fois créé, il existe toujours même ZooKeeper Temps d'arrêt du cluster,Jusqu'à ce qu'il soit supprimé.
  • Provisoire(EPHEMERAL)Noeud :Le cycle de vie du noeud temporaire est Session client(session) Lié,Le noeud disparaît lorsque la session disparaît .Et,Les noeuds temporaires ne peuvent être que des noeuds de feuilles ,Impossible de créer un noeud enfant.
  • Ordre persistant(PERSISTENT_SEQUENTIAL)Noeud :En plus d'avoir une durabilité(PERSISTENT)En dehors des propriétés du noeud, Les noms des noeuds enfants sont également séquentiels.Par exemple, /node1/app0000000001/node1/app0000000002 .
  • Ordre provisoire(EPHEMERAL_SEQUENTIAL)Noeud :En plus d'avoir un accès temporaire(EPHEMERAL)En dehors des propriétés du noeud,Les noms des noeuds enfants sont également séquentiels.

3.2.2. znode Structure des données

Chaque znode Par 2 Composants partiels:

  • stat :Informations sur l'état
  • data : Contenu spécifique des données stockées dans le noeud

Enfin

Celui - ci.《“javaGuide d'entrevue avec des notes élevées”-25Classification227(En milliers de dollars des États - Unis)1000+Questions50w+Analyse de mots》Partagez - le avec des amis dans le besoin,Les partenaires intéressés peuvent se défier,Sans regarder l'analyse des réponses,Testez votre propre niveau de résolution de problèmes,Cela peut aussi avoir un effet multiplicateur!(Les bonnes choses doivent être lues par tout le monde)

 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】

HuaweiJavaQuestions d'entrevue,TencentJavaÉlaborer des dossiers d'entrevue,_Java_02

HuaweiJavaQuestions d'entrevue,TencentJavaÉlaborer des dossiers d'entrevue,_Arrière - plan_03

版权声明
本文为[Programmeur Star]所创,转载请带上原文链接,感谢
https://javamana.com/2021/09/20210915062927535z.html

  1. Vous apprendrez à construire un serveur d'applet Wechat (https) à la main
  2. 作为一名程序员我不忘初心,Java最新实习面试经验总结,
  3. 作为一名Java面试者你应该知道的,2021最新Java常用开源库总结,
  4. 作为一个程序员,你觉得最大的悲哀是什么,2021年大厂Java岗面试必问,
  5. Configuration de l'environnement Java du système win10
  6. 作為一個程序員,你覺得最大的悲哀是什麼,2021年大廠Java崗面試必問,
  7. 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:
  8. Comme vous devriez le savoir en tant qu'intervieweur Java, 2021 dernier résumé des bibliothèques open source couramment utilisées pour Java,
  9. En tant que programmeur, je n'oublie pas le dernier résumé de mon expérience d'entrevue de stage en Java.
  10. 作為一名Java面試者你應該知道的,2021最新Java常用開源庫總結,
  11. New feature of Java 8. Stream (). Map (general programming method: collect. Groupingby)
  12. Computer graduation project java + SSM hospital registration system
  13. 作為一名程序員我不忘初心,Java最新實習面試經驗總結,
  14. 使用Docker部署Spring-Boot项目,论程序员成长的正确姿势,
  15. Conseils pour améliorer l'efficacité du Code Java mille fois
  16. 全网首发,我在华为做Java外包的真实经历!
  17. 全套Java视频百度云,终于找到一个看得懂的JVM内存模型了,
  18. 入职3个月的Java程序员面临转正,字节跳动 京东 360 网易面试题整理,
  19. Docker tutorial series (I) introduction to docker tutorial spring cloud mybatis distributed microservice Cloud Architecture
  20. 全網首發,我在華為做Java外包的真實經曆!
  21. Lancement de l'ensemble du réseau, je fais l'expérience réelle de l'externalisation Java à Huawei!
  22. Run around with money? Li Weijia fell into the storm of endorsement! In the face of collective hot discussion, personal attitude has become the focus of attention
  23. 全套Java視頻百度雲,終於找到一個看得懂的JVM內存模型了,
  24. Un ensemble complet de vidéos Java Baidu Cloud a finalement trouvé un modèle de mémoire JVM compréhensible.
  25. Déployez le projet Spring Boot avec docker, et parlez de la bonne posture pour que les programmeurs grandissent.
  26. 关于网络优化你必须要知道的重点,GC 堆排 Tomcat 算法题,
  27. 关于电商秒杀系统中防超卖处理方案简述,Java开发热门前沿知识,
  28. Les programmeurs Java qui sont entrés dans l'entreprise pendant trois mois ont dû faire face à une correction d'échelle, et les octets ont sauté dans le traitement des questions d'entrevue de JD 360 Netease.
  29. What is the new syntax of XX ≠ null in Java?
  30. Spring scheduled task cron expression (@ scheduled)
  31. Une brève description du plan de traitement anti - surproduction dans le système d'arrêt du commerce électronique et les connaissances de pointe du développement Java.
  32. Ce que vous devez savoir sur l'optimisation du réseau, c'est que le problème de l'algorithme Tomcat de gerbage GC,
  33. 凭借这份Java面试题集,成体系化的神级Java进阶笔记,
  34. 凭借这份Java面试题集,BAT大厂面试基础题集合,
  35. Docker Knowledge point collation
  36. Redis sur la réalisation élégante des tâches retardées
  37. 憑借這份Java面試題集,BAT大廠面試基礎題集合,
  38. Avec cet ensemble de questions d'entrevue Java, l'ensemble de questions de base d'entrevue de bat,
  39. Avec cet ensemble de questions d'entrevue Java, les notes avancées Java de niveau divin sont systématisées,
  40. Opérateurs arithmétiques et opérateurs de comparaison pour JavaScript, Introduction classique au développement web
  41. MySQL + +: slow query log analysis (I)
  42. Android Architect path 21 Responsive Programming RX Java thread transformation Principles
  43. Explorer le cadre open source Android - 1. Okhttp Source Analysis
  44. 分布式宝典:限流 缓存 通讯,Java开发中常见的一些问题面试专题,
  45. 分享面试经历的网站,腾讯大牛教你自己写Java框架!
  46. Expliquer les six principes de base du modèle de conception par des exemples réels
  47. Site Web pour partager vos expériences d'entrevue, Tencent Bull vous apprend à écrire votre propre cadre Java!
  48. Dictionnaire distribué: communication de cache limitée par le courant, sujets d'entrevue pour certaines questions courantes dans le développement Java,
  49. Another uncle circle man is angry! The high-quality acting skills make people admire and achieve the highlight of the ending of spring in Jade House
  50. 10. MySQL database import, export and authorization
  51. 9. MySQL data query
  52. 8. MySQL data operation DML
  53. 7. MySQL database table engine and character set
  54. 分享面試經曆的網站,騰訊大牛教你自己寫Java框架!
  55. Les points de connaissance de Java Real - time Video Download, Byte Jumping Java R & D post ont été divulgués à l'intérieur.
  56. Introduction au JavaScript chapitre 15 (objets, clairvoyance)
  57. 前方高能,Java程序员最大的悲哀是什么?
  58. Tencent private cloud MySQL solution tdsql
  59. 前方高能,Java程序員最大的悲哀是什麼?
  60. Quelle est la plus grande tristesse des programmeurs Java à l'avenir?