Le non-orienté conception du système de studio

Auteur | Ali ingénieur senior de développement civique Yan nuage lumière

Zebian | Tu Min

Sur la conception orientée-échec

1, ce qui est la conception orientée échec?

Pour l'échec de la conception, est de « défaite » de l'objet, il y a un ordre naturel à l'échec de la conception, la phase de conception du système au début de l'absence de prise en compte de différents scénarios de l'échec dans le cadre de la conception du système, de prêt stratégie de récupération a échoué.

2, pourquoi la conception orientée tombe en panne?

En raison de l'ubiquité des scénarios de défaillance, tels que des problèmes matériels, bug logiciel, mauvais changements de configuration, la détérioration du système de trafic que prévu, les attaques extérieures, problème bibliothèques dépendantes, les services dépendants de problèmes.

Et, une fois que ces échecs, allant des affaires semblent indisponibles, affectant l'expérience utilisateur et la réputation des entreprises, tandis que dans le plomb à la perte de données permanentes, la reprise des activités n'est plus possible. Par exemple, avant l'accident 911, environ 350 entreprises travaillant dans le World Trade Center. Après l'accident, il y a 200 entreprises comme un important système est endommagé, la perte de données critiques et l'effondrement.

3, comment la conception axée sur l'échec?

Dans l'ensemble du cycle de vie du logiciel, les différentes étapes de la face des scénarios de défaillance ont des règles d'adaptation. Au cours de la phase de conception pour simplifier l'architecture, la structure au niveau du système distinct, dans la mesure du possible le principe du changement minimal à l'étape de l'édition, à petite échelle, plusieurs itérations, faire pression périodique mesurée dans la phase d'exploitation et de maintenance, la dépendance minimale.

Comment diffuser le contrôle de l'échec de parvenir à la conception

1, l'architecture de contrôle de diffusion

Yoqoo système de commande de lecture est divisée en une hiérarchie à trois couches à partir du système sera, couche de services externes, un service de couche de base, la couche de stockage de données.

Première couche: couche de services externes comprend SDK de contrôle de diffusion, suivi de contrôle de la diffusion, le service de changement de contrôle de la diffusion, le service de dépistage contrôle de la diffusion

Deuxième couche: couche de services d'infrastructure comprend la planification des tâches de contrôle de la diffusion, les services de base de données de contrôle de diffusion;

Troisième couche: couche de stockage de données contient une mise en cache distribuée, base de données, une recherche ouverte.

Fonctionnellement, système de contrôle de la diffusion tout à fait trois principaux lecture de la ligne de base, le noyau d'écriture des services de contrôle.

Ligne 1: Lire l'ensemble du système est au cur du service de base, responsable de Youku, pommes de terre, affichage vidéo Lynx, la capacité révélatrice;

Ligne 2: écrire le cur du système est responsable de la modification de la politique des services de base;

Ligne trois: Service de dépistage pour fournir un service de dépistage expérience de gestion de multiples sources de données.

Ces caractéristiques de conception sont les suivantes:

1) lire la ligne, la séparation d'écriture, de base et d'isolement (séparation primaire et secondaire), ne modifie pas la fonction de la liaison de base après lien seul changement a échoué;

2) le service de requête de base de haute simultanée lit le mode de base de données pour isoler à partir du service de base de données, lorsque peuvent être étendus à l'infini, la pression augmente, aucun point de goulot d'étranglement;

3) tout d'une défaillance de la liaison, le fonctionnement normal des autres liens, de fournir des services stables;

4) les services de base de données sont conformes aux principes de la capacité de conception pour le service d'enquête, les mêmes changements d'interface de service ont différentes politiques limitant.

2, la conception de base de données révèle tous les détails disponibles

but de la conception de base de données est de révéler tout à base de données extrême du scénario ne sont pas disponibles, le lien est pas lié à assurer la production, sans affecter l'aspect commercial. La mise en uvre par le commutateur mondial unifié, le noyau de lecture de commutation et un lien de lien d'écriture en utilisant le cache en tant que couche de persistance de données temporaires, et de modifier les données accumulées dans la file d'attente de messages jusqu'à ce que la base de données est disponible, puis revenez à la base de données, et la file d'attente de messages des consommateurs.

procédure de secours de base de données Lire lien

Lire lien pour vérifier si la ressource si la diffusion, par exemple, révèlent tous les détails commutateur est activé, seule l'existence du cache de requête de ressources. S'il y a un cache de ressources, les résultats de la requête sont renvoyés. S'il y a, il est déterminé si l'interdiction des ressources liste noire, si le retour peut être diffusé en fonction de la détermination. Visible révéler tous les détails après que l'interrupteur est activé, même si le retour est le résultat après la révision à la baisse, mais au moins se débarrasser de la dépendance à l'égard de la base de données, le processus se poursuit normalement.

procédure de secours de la base de données de liaison écriture

liens Ecrire à la stratégie de ressources supplémentaires, par exemple, révèlent tous les détails mettre le contact, puis d'abord vérifier s'il y a le cache de la politique des ressources. Si la politique de ressource existe dans le cache, le processus se termine. Sinon, mettre à jour le cache, et envoie un message pour la consommation de retard, mettre à jour la base de données. On peut encore voir l'idée comme un cache temporaire est une source de données, ce qui réduit la dépendance à la base de données, ainsi que par l'intermédiaire d'une file d'attente de messages de la nature asynchrone, pour résoudre la récupération de base de données, les problèmes de cohérence des données de base de données avec les données mises en cache.

3, la mise en cache des mises à jour redondantes et cache détection conception cohérence

scénario d'affaires hautement concurrent, la base de données est une ressource très précieuse, mais aussi un lien très faible. La nécessité inévitable d'utiliser le cache comme la conception du système tampon. La section précédente pour la base de données extrême scène est indisponible programme conçu, cette section proposera deux solutions cache et les incohérences de données dans le programme.

1) Cache redondant mises à jour

la redondance du cache est mis à jour lorsque les données sont modifiées, par redondance synchrone et asynchrone façon mise à jour pour que cela ne semble pas les données sales, et veiller à ce que la cohérence des données finales.

L'architecture de base de mise à jour du cache

1-2-6-7 est la commune dérivation d'une structure de mise à jour du cache. En raison de la complexité des opérations, après l'exécution de la modification des données du service de changement de contrôle de la diffusion, le besoin de notifier un système externe, le système externe par le message Étape 3 après avoir reçu le message de l'étape 4-5 recherche inversée, mais à cause des étapes 3 et 6 -7 sont asynchrones processus, peut-être avant la fin de la mise en uvre de 6-7, 3-4-5 a été exécuté, la requête aux données sales avant la mise à jour.

L'idée est de mettre à jour la redondance du cache, les modifications de service en plus de la mise à jour du cache par des messages asynchrones, la planification de contrôle de la diffusion d'appel synchrone, de mettre à jour le cache. Mise à jour d'assurer simultanément l'exactitude des données mises en cache et n'apparaissent des données sales, des mises à jour asynchrones pour assurer la haute disponibilité du lien de mise à jour, l'interface ne invoquera pas l'échec qui a conduit la mise à jour du cache pas réussi à atteindre la cohérence des données finales.

2) Détection de cohérence d'antémémoire

La redondance est utilisée pour mettre à jour le cache lorsque le cache d'écriture pour assurer l'exactitude des données. De plus, nous fournissons également des mécanismes de détection de la cohérence du cache après une cache d'écriture, en particulier pour vérifier si les données récentes écrites dans la ligne de cache avec les attentes, après la détection d'incohérences dans les rapports et le nettoyage.

Procédé de détection est la suivante, en utilisant le mécanisme d'expiration de la mémoire cache de goyave disposés 5s, après le changement dans la base de données et 5s mises en cache, l'écoute par les données auditeur goyave cache expire pour déclencher la comparaison des données de détection, et rendre le traitement correspondant en fonction du résultat de détection.

processus de détection de données sales

4, distale / proximale Design appel de commutation dynamique

Broadcast Control En plus de fournir des services de base pour l'activité en amont par des appels RPC, mais fournit également le SDK de contrôle de diffusion peut être utilisé pour les parties d'affaires des appels proximales. Proximales appeler pour le côté commercial est plus faible latence et d'améliorer le taux de réussite a un bon effet pour le serveur de contrôle de diffusion, il peut aussi réduire le stress, économiser les ressources. Afin d'éviter des problèmes de stabilité, il doit être conçu pour l'absence de déclassement, l'un qui est le déclassement de flux système de commutation dynamique. Lorsque la machine de service limité flux SDK destinataire peut supporter dépasse le seuil, le trafic supplémentaire est dynamiquement distribué à un système central de contrôle de diffusion, il est très efficace dans la pratique, certains QPS simples jusqu'à 1000 ou d'un scénario encore plus, assurez-vous que le SDK ne l'emporte pas sur le côté commercial de la machine. Dans les cas extrêmes, tout le trafic peut être commuté au système central de contrôle de la diffusion.

résumé

Un bon architecte sont souvent pessimistes, en plus d'une bonne conception élégante architecture capable de soutenir le développement durable de l'entreprise, une autre capacité importante peut facilement être ignorée qui tiennent pleinement compte du scénario d'échec. conception orientée-échec est une des idées de conception très importantes doivent être en mesure de prendre des mesures préventives, considérées au stade de la conception aux différents scénarios de défaillance, les plans préparés à l'avance, et faire exercice complet et de vérification. La seule façon de la défaite vient calmement.

11 Etats coups boursiers, programmeur « blessé »? !

profondeur d'interprétation! Cours Ali et la pratique des mises à niveau de l'infrastructure de gestion des applications unifiées

2.2 libération! Tensorflow compétences de développement lancé certificat

Soul cadres App arrêté, conduit à des rapports malveillants que les produits concurrents sur l'étagère

2020, la dernière version de questions face Redis 68, 20000 mots à sec, et rapidement couvert la roue de secours!

récemment appelé une bifurcation Bitcoin BTCU, bifurcation prêt à utiliser le nouveau réseau pour résoudre de vieux problèmes Bitcoin

réduction de salaire! Transfert Kong! Pourquoi Python redeviendra l'arriviste 2020
Précédent
Quand l'école? Examen d'entrée au collège ne sera pas rebutés? Le ministère de l'Education a répondu à la dernière
Prochain
La dernière réponse! Président du Brésil: Je ne suis pas positif
Xinhua Nouvelles Agence entrevue avec Wang Chen Académicien, la tâche en cours est la clé
Le premier « l'adoption du cloud » ouvert sous Nanyue comment améliorer l'épidémie, «J'ai un arbre Jugaku » marque
candidats scientifique de données Apple, ce que vous devez savoir?
5G, la prochaine ère de l'IdO, caméra de téléphone cellulaire de se concentrer si la mauvaise direction?
Bill Gates quitte Microsoft Conseil d'administration, WWDC d'Apple, Microsoft Assemblée Build sont tenues en ligne à la place, la rouille 1.42.0 libération | Geeks titres
Comic: Qu'est-ce que "Pigs Game"?
11 pays coups boursiers, « blessé » programmeur
Carré 2,0 Ether, la fragmentation, le DAG, un aperçu de l'état de la chaîne de blocs de canal de liaison descendante ...... solution évolutive
fonctions récursives de pointe Python est pas difficile
Computer Vision AI jeu d'outils OpenVINO , est un cadre d'apprentissage profond Top1 votre cur?
Piraterie moins de ressources? Le rapport des personnes encore « forte aux yeux » contribuent de manière significative au modèle de la PNL