points de connaissances connexes distribués dossier

SOA et micro architecture de services
1.SOA (Service Oriented Architecture) « Service Oriented Architecture »: Il est une méthodologie de conception qui comprend plusieurs services, et en fin de compte fournir une gamme de fonctions entre le service par l' interdépendance. Un service normalement les processus du système d' exploitation présentes et dans une forme indépendante. Elle appelle à travers le réseau entre les différents services.

2. Micro services d'architecture: l'architecture SOA et en fait similaire au micro-service est sur SOA pour faire la sublimation, l'accent sur l'architecture micro-services est souligné que « les besoins de l'entreprise à l'assemblage complète et un service » du système d'entreprise exemplaire unique sera démoli peut être divisé en plusieurs développeurs indépendants, de petites applications conçues pour fonctionner. Ces petites applications par le service entre l'achèvement de l'interaction et de l'intégration.

Micro architecture SOA services = 80% + 100% pensé l'architecture de services de cadre à base de composants pour la pensée de la pensée modélisation de domaine + 80%

Passerelle API: API Gateway est un serveur, est le seul système d'entrée. Du point de vue de la conception orientée objet, il est similaire au modèle d'apparence. Passerelle API encapsule l'architecture du système interne qui fournit une API personnalisée pour chaque client. Il peut également avoir d'autres fonctions, telles que l'authentification, le contrôle, l'équilibrage de charge, la mise en cache, et demande de gestion fragment, le traitement de la réponse statique. Les éléments de base de l'approche de la passerelle API est que tout le client et le consommateur final par le biais d'un micro-service d'accès de passerelle unifiée, la manipulation de toutes les fonctions non commerciales à la couche de passerelle. En règle générale, la passerelle API fournit également d'accès REST / HTTP. Serveur par les services d'enregistrement et de gestion API-GW.

l'architecture SOA propose: l'intégration de systèmes, systèmes orientés services (les fonctions commerciales inhérentes d'origine dans un service d'affaires courantes, la logique métier rapidement réutilisation, résoudre le problème de base est la [réutilisation]), entreprise orientée services (à la conduite d'une entreprise à unités commerciales dans un ensemble de services, un problème principal est élevé [])

l'architecture service Micro propose: La mise en œuvre de la composante par le service, la capacité de diviser par les services aux entreprises et aux équipes de développement, la décentralisation, l'automatisation des infrastructures

Insérer ici l'image Description

En second lieu , la transaction distribuée
Distributed Transaction signifie les participants à la transaction, les serveurs transactionnels, serveurs et ressources gestionnaire de transactions sont situés sur différents nœuds de différents systèmes distribués.
Est une opération majeure par la composition différente petite opération, ces petites opérations réparties sur différents serveurs, et appartiennent à différentes applications, les transactions distribuées doivent veiller à ce que ces petites opérations réussissent soit tout, tout ou échouent. Distributed Transaction est d'assurer la cohérence des données de différentes bases de données.

la cohérence du théorème CAP, la disponibilité, la tolérance aux pannes de partition. CA architecture distribuée du système choix théoriquement impossible , mais pour sélectionner une architecture CP ou AP.
BASE est essentiellement disponible (disponible de base), les abréviations trois phrases en mode Soft (état mou) et finalement cohérente (consistance finale), la PAC est une extension de l'AP.
BASE CAP en théorie ne résout pas le temps de latence du réseau, état mou et , finalement , en accord avec BASE assurer la cohérence du retard.

Les transactions distribuées peuvent jeter un oeil à un système de commun suivant: 2PC, TCC, affaires MQ, les affaires de Saga

Insérer ici l'image Description
protocole XA divisé en deux phases:
Gestionnaire de transactions exige que chaque transaction de base de données liée à engager au préalable (engager au préalable) cela, et reflètent l' opportunité de présenter.
Coordinateur de transactions doit présenter des données pour chaque base de données ou des données rollback.
Avantages: Essayez d'assurer la cohérence des données solides pour faire baisser les coûts
Inconvénients: problèmes à un seul point: Gestionnaire de transactions joue un rôle dans le processus est essentiel, si elle descend, comme cela a été fait dans la première étape, deuxième étape nous nous préparons à présenter les temps d' arrêt lorsque le gestionnaire de transactions, un gestionnaire de ressources aurait été bloqué, ce qui dans la base de données ne peut pas être utilisé. blocage synchrone: Une fois prêt, l' explorateur de la ressource a été dans un bloqué jusqu'à ce que la soumission est terminée, la libération des ressources. incohérence des données: bien que le protocole de validation en deux phases pour une forte cohérence des données distribuées de la conception, mais des incohérences de données peut encore exister.

protocole XA est relativement simple, à faible coût, mais son problème en un seul point, et ne peut supporter à haute concurrence (en raison du blocage synchrone) reste sa plus grande faiblesse.

TCC par rapport au mécanisme de transaction XA décrit ci - dessus, résout plusieurs inconvénients: résoudre un seul coordinateur point, initié par le côté d'activité et à l'activité principale. Activité gestionnaire a également devenir multi-points, l' introduction du cluster.
blocage synchrone: l'introduction d'une temporisation, la temporisation est compensée, et ne verrouille pas la ressource entière, la ressource est convertie en forme de logique d'entreprise, la taille de particule plus petite.
la cohérence des données, l'arrivée du mécanisme de compensation, contrôlée par la cohérence du gestionnaire de l' activité commerciale.

Essayez étapes: essayer de le faire, pour compléter tous les contrôles d'affaires (cohérence), mis de côté les ressources opérationnelles nécessaires (quasi-isolement). étapes Confirmer: Confirmer la mise en œuvre de la véritable entreprise, et non pour une vérification des affaires, des ressources d'affaires Essayez d'utiliser uniquement la phase de réservation, opération Confirmer rencontre idempotence. Elle exige la conception idempotent, la nécessité de nouvelle tentative a échoué Confirmer. Annuler les étapes: annuler l'exécution, la phase de libération des ressources d'affaires Essayez réserve, Annuler l'opération est idempotent. Sensiblement uniforme et Confirmer Annuler étape d'anomalie de phase système de traitement d'exception.

Insérer ici l'image Description
TCC pour assurer la cohérence forte tout en maximisant la disponibilité et l' évolutivité du système.
TCC a les caractéristiques suivantes: Situé dans la couche de services d'affaires plutôt que d' une couche de ressource par couche atomique assure entreprise
  sans une préparation séparée (Préparer) phase de validation protocole réduit le coût de
  Essayez d' exploitation des ressources et la disponibilité opérationnelle
  flexibilité Essayez de choisir les ressources de l' entreprise d'exploitation granularité de verrouillage, et non l'ensemble de verrouillage des ressources, l'augmentation concomitante de
TCC exige des coûts de développement élevés, nécessaires pour chaque sous-services répondant aux besoins CONFIR, opération Annuler, à savoir, pour obtenir la logique de compensation correspondant.

transaction distribuée message de
cette opération de mécanisme de transaction distribuée dans une pluralité de transaction locale, appelée ici l'opération primaire à partir de la transaction. Tout d' abord, les principales affaires locales présentées à l' avance, puis, obtenir les transactions d'un message de transaction à partir des informations fournies par la notification de message local. Vous pouvez voir que c'est un mécanisme de transaction asynchrone, ne peut garantir la cohérence éventuelle, mais la disponibilité est très élevé, non pas à cause du blocage de la défaillance se produit. En outre, la principale opération a été soumise à l' avance, parce que si la transaction ne peut être engagée à partir, à annuler la transaction principale est assez gênant, donc ce mode est uniquement applicable à la grande théorie des probabilités et d' autres cas de réussite commerciale qui est soumis d'un échec de la transaction peut être due à la faute, mais il est peu probable d'être une erreur logique.
  mécanisme de transaction basée sur la messagerie asynchrone Il y a deux façons principales: la liste des messages locaux et un message de transaction. La différence est que: comment faire en sorte que la transaction atomique primaire opération de validation et d' envoyer ces deux messages.
  Si l'exemple est mis en œuvre par un message de transfert asynchrone, puis l' opération est divisée en quatre: déduisant l'utilisateur A, un message, l'utilisateur B de message reçu, l' utilisateur B déduction de l' argent. Les deux premières étapes doivent assurer atomicité, si un déduisant l' argent avec succès , mais n'a pas émis un message, l'utilisateur A perdu, si le message est un succès, mais il n'y a aucune déduction de salaire, alors l'utilisateur B avait le plus d' argent, la banque a quitté certainement.

Le processus de base est le suivant: premier message préparé étape, va obtenir l'adresse du message. La deuxième phase de la mise en œuvre des affaires locales. La troisième étape de la première étape pour obtenir l'accès à l'adresse du message et de modifier l'état. destinataires de messages peuvent utiliser ce message. Si le message de confirmation échoue, un message est pas mis à jour régulièrement l'état d'analyse dans le courtier RocketMQ. Si un message est un message non reconnu est envoyé à l'expéditeur du message, afin de déterminer si de se soumettre, sous forme RocketMQ est le Listener à l'expéditeur, pour le traitement.

Si le délai d'attente des consommateurs, vous aurez besoin d'avoir été rejugé, les besoins du récepteur de messages pour vous assurer que le pouvoir et ainsi de suite. Si le consommateur de messages échoue, vous devez être traitées manuellement, car plus la probabilité, si le temps pour une petite probabilité que la conception de ce processus complexe, mais en vaut la chandelle.
Insérer ici l'image Description

transaction de Saga
constitué par Saga: Saga chacun d'une série de sous-transaction Ti, chacun a une opération de compensation correspondant Ti Ci, Ti provoquée par le résultat de l' opération de compensation de révocation. Chaque T ici sont une transaction locale.
Saga définit deux stratégies de récupération: récupération vers l' arrière, le second ordre d'exécution qui est mentionné ci - dessus, où j est l'erreur de sous-transaction, l'effet de cette approche est que tous les sous-transation réussie Avant de révoquer une distance, prise les résultats de l'ensemble de la révocation de la Saga. la récupération de l' avant d'une scène soit couronnée de succès, l'ordre d'exécution est le suivant: T1, T2, ..., Tj ( échec), Tj (nouvel essai), ..., Tn de, où j est la sous-transaction d'erreur . Dans ce cas , il n'a pas besoin de Ci. Ici , il faut noter qu'il n'y a pas d' isolation de garantie en mode Saga, parce qu'il n'y a aucune ressource de verrouillage, d' autres opérations peuvent encore couvrir ou affecter la transaction en cours.

En troisième lieu , l'algorithme distribué (cohérence Hash Algorithm)
de la charge du serveur d' équilibrage à faire quand il y a beaucoup de choix d' algorithmes d' équilibrage de charge, y compris: algorithme round-robin (Round Robin), l' algorithme de hachage (hash), moins connexions algorithme (moins Connection), la vitesse de réponse de l'algorithme (temps de réponse), la pondération (pondéré) et analogues. Quel algorithme de hachage est le plus couramment utilisés algorithmes.

Un scénario typique est: il y a N serveurs fournissent des services de mise en cache, la nécessité d'un équilibrage de charge du serveur, distribué à une moyenne de demandes chaque serveur, chaque machine est responsable du service 1 N /.

algorithmes couramment utilisés prennent le reste du résultat de hachage (hash () mod N): Machine numérotés de 0 à valeurs N-1, conformément à la table de hachage personnalisé () de l'algorithme, hachage pour chaque demande () as modulo N, i reste obtenu, puis envoie la demande à un certain nombre de machines i. Mais il existe une méthode d'algorithme de problème fatal, si une machine tombe en panne, il devrait tomber sur la demande de la machine ne sera pas en mesure d'obtenir la bonne affaire, alors vous devez planter le serveur retiré de l'algorithme, cette fois-ci, il y aura ( N-1) / N des besoins du serveur de cache de données à recalculé, si une nouvelle machine, il y aura N / (N + 1) besoins du serveur de cache de données à recalculées. Pour un système, ce qui est généralement bosses inacceptables (car cela signifie qu'un grand nombre de cache ou infirmation besoin de données à transférer). Alors, comment concevoir une stratégie d'équilibrage de charge, de sorte que la demande peu que possible affectée il?

En Memcached, valeur-clé magasin, Bittorrent DHT, LVS utilisent l'algorithme de hachage cohérent, on peut dire algorithme de hashage cohérent est un système distribué de choix pour l'équilibrage de charge.

algorithme de hashage cohérent (cohérente algorithme SHA) est un algorithme distribué couramment utilisé pour l' équilibrage de charge. Le hachage ensemble des valeurs d' espace de hachage cohérent dans un anneau virtuel, tel que l'espace d'hypothèses H est une fonction de hachage 0 - (2 32) -1 ( à savoir, une valeur de hachage est un entier non signé de 32 bits) l'ensemble de l' organisation spatiale dans le sens des aiguilles d'une montre. Et 0 (2 32) dans la direction de zéro coïncide -1.
Ensuite, l'algorithme suivant est utilisé pour les données de localisation d'accès correspondant au serveur: les données en utilisant la même fonction de touche H pour calculer la valeur de hachage H, cette position est déterminée par les données selon la H sur l'anneau, l'anneau dans le sens horaire de la position de « marche », de un serveur rencontré est qu'il doit localiser le serveur.
Par exemple, nous avons A, B, C, D quatre objet de données, après le hachage, la position de l' espace sur le cycle est le suivant: les données A est défini comme au serveur 1, D est défini comme au serveur 3, et B, C sont définis comme au serveur 2.

Cohérence principe de l'algorithme de hachage: une première longueur configurée bague solidaire 232 (Cet anneau est appelé anneau de cohérence de Hash) La valeur de hachage du nom de noeud (qui est la distribution de [0, 232-1]) est placé dans le noeud de serveur hash cet anneau, qui est ensuite calculée en fonction de la valeur de clé valeur de hachage des données (qui est aussi la diffusion de [0, 232-1]), alors la valeur de hachage de la valeur de clé le plus proche noeuds de serveur de la distance dans le sens horaire dans l'anneau de hachage, la clé de compléter le serveur de recherche de cartographie.

algorithme de hachage utilise une approche cohérente, en dépit de la flexibilité accrue du système, mais peut aussi conduire à une répartition inégale de la charge, la solution est d'utiliser un nœud virtuel au lieu de nœud réel.

Publié 45 articles originaux · a gagné les éloges 9 · vues 30000 +

Je suppose que tu aimes

Origine blog.csdn.net/zhanglinlove/article/details/89741607
conseillé
Classement