Explorez la mise en œuvre de services de messagerie fiables
Présentation | Les transactions distribuées sont souvent le problème des transactions orientées service. De nombreux scénarios évitent les transactions distribuées via les entreprises, mais il existe encore certains scénarios qui doivent s'appuyer sur des transactions distribuées. Parlons de la façon de gérer les transactions distribuées | .
Il existe de nombreuses façons de résoudre les problèmes de transactions distribuées, et il existe de nombreux blogs sur Internet qui proposent diverses solutions. En résumé, elle peut généralement être divisée selon les deux méthodes suivantes : 1. Engagement en deux phases (2PC en abrégé) : il s'agit d'une solution de transaction distribuée courante. Dans cette méthode, le nœud coordinateur est chargé de coordonner les opérations des nœuds participants et de garantir que tous les nœuds parviennent à un accord lors de la validation ou de l'annulation.
Les transactions distribuées rigides et la validation en deux phases sont un mécanisme permettant d'obtenir une forte cohérence. Les transactions distribuées rigides font référence à une série d'opérations effectuées par plusieurs nœuds participants dans un système distribué qui doivent garantir l'atomicité, c'est-à-dire qu'elles réussissent toutes ou échouent toutes. Ce mécanisme nécessite que tous les nœuds participants suivent le même protocole pendant l'exécution de la transaction et mettent en œuvre la transaction sous la direction du nœud coordinateurUne transaction distribuée flexible est une méthode de traitement des transactions dans un système distribué. Il adopte la stratégie de validation au mieux, c'est-à-dire qu'il fait de son mieux pour terminer la soumission de la transaction, mais permet également à certaines opérations d'échouer. Dans les transactions distribuées flexibles, le mode TCC (Try-Confirm-Cancel) est généralement utilisé pour mettre en œuvre la gestion des transactions. Le modèle TCC décompose les transactions en trois étapes : Essayer, Confirmer et Annuler
Résolvez d'abord le prérequis de garantie pour les transactions distribuées : l'interface doit être idempotente pour éviter que l'envoi répété de messages n'affecte l'activité
2 Conception d'un système de messagerie fiable (cela semble bien et relativement simple, donc je vais le partager)
Comme indiqué ci-dessus
Démarrez l'exécution. Par exemple :
essayez{
if(prepare()) { //Phase de pré-envoi
doService(); //Exécuter la logique métier
updateMsgStatus();//Mettre à jour le message pour confirmer le statut
}
}
1 Pré-envoi du message, phase d'essai, si le message de pré-envoi échoue, l'affaire n'a pas encore été exécutée, donc les systèmes A et B sont toujours cohérents et n'ont pas besoin d'être traités
C'est facile à comprendre
2 Le message pré-envoyé réussit et la logique métier commence à être exécutée. Si l'exécution réussit, le statut du message pré-envoyé mis à jour sera modifié en envoi confirmé. Si l'exécution de la logique métier échoue à ce moment, le message pré-envoyé ne sera pas mis à jour avec le nouveau statut. À ce moment, le système de confirmation de message commencera à fonctionner et retournera au système métier 1 pour vérifier l'état du message. S'il s'avère que l'exécution commerciale a échoué, le statut de pré-envoi sera mis à jour en statut d'échec.
3 Si à ce moment-là, l'exécution de l'affaire est réussie et que le message est mis à jour pour confirmer l'envoi, alors tout va bien et parfait. Si la mise à jour du message échoue, le système de confirmation du message vérifiera toujours l'état et mettra à jour si le message est supprimé ou dont l'envoi est confirmé.
4 Messagers commencent à consommer
1> Par exemple, si la consommation échoue et qu'une incohérence se produit, le système de récupération des messages détecte l'état du message et renvoie le message
2>Si l'exécution de l'affaire échoue, le message ne sera pas confirmé. Le système de récupération des messages détectera toujours l'état du message et renverra le message
.3> Si la demande échoue, la logique ci-dessus doit être utilisée pour renvoyer l'appel. Bien sûr, il y a une limite au nombre de renvois. Il ne peut pas être envoyé tout le temps. S'il dépasse le nombre maximum de fois. entrera dans la file d'attente des lettres mortes et attendra une intervention manuelle
.4> Si la demande aboutit, le message sera consommé avec succès, ce qui est parfait et résout le problème d'un service de messagerie fiable
Troisièmement, travaillez dur pour soumettre
C'est relativement simple. Soumettez les messages ayant échoué à plusieurs reprises pour garantir une transmission réussie des messages dans certains scénarios avec de faibles performances en temps réel.Par exemple, envoyez un message tiers lorsqu'une transaction est terminée. Vous pouvez utiliser la soumission dure pour le moment
L'article est réimprimé de la communauté Open Source Chine [http://www.oschina.net]
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Les principales différences entre Centos et Ubuntu sont: l'origine (Centos provient de Red Hat, pour les entreprises; Ubuntu provient de Debian, pour les particuliers), la gestion des packages (Centos utilise Yum, se concentrant sur la stabilité; Ubuntu utilise APT, pour une fréquence de mise à jour élevée), le cycle de support (CentOS fournit 10 ans de soutien, Ubuntu fournit un large soutien de LT tutoriels et documents), utilisations (Centos est biaisé vers les serveurs, Ubuntu convient aux serveurs et aux ordinateurs de bureau), d'autres différences incluent la simplicité de l'installation (Centos est mince)

Centos sera fermé en 2024 parce que sa distribution en amont, Rhel 8, a été fermée. Cette fermeture affectera le système CentOS 8, l'empêchant de continuer à recevoir des mises à jour. Les utilisateurs doivent planifier la migration et les options recommandées incluent CentOS Stream, Almalinux et Rocky Linux pour garder le système en sécurité et stable.

Docker utilise les fonctionnalités du noyau Linux pour fournir un environnement de fonctionnement d'application efficace et isolé. Son principe de travail est le suivant: 1. Le miroir est utilisé comme modèle en lecture seule, qui contient tout ce dont vous avez besoin pour exécuter l'application; 2. Le Système de fichiers Union (UnionFS) empile plusieurs systèmes de fichiers, ne stockant que les différences, l'économie d'espace et l'accélération; 3. Le démon gère les miroirs et les conteneurs, et le client les utilise pour l'interaction; 4. Les espaces de noms et les CGROUP implémentent l'isolement des conteneurs et les limitations de ressources; 5. Modes de réseau multiples prennent en charge l'interconnexion du conteneur. Ce n'est qu'en comprenant ces concepts principaux que vous pouvez mieux utiliser Docker.

Étapes d'installation de CentOS: Téléchargez l'image ISO et Burn Bootable Media; démarrer et sélectionner la source d'installation; sélectionnez la langue et la disposition du clavier; configurer le réseau; partitionner le disque dur; définir l'horloge système; créer l'utilisateur racine; sélectionnez le progiciel; démarrer l'installation; Redémarrez et démarrez à partir du disque dur une fois l'installation terminée.

Comment utiliser Docker Desktop? Docker Desktop est un outil pour exécuter des conteneurs Docker sur les machines locales. Les étapes à utiliser incluent: 1. Installer Docker Desktop; 2. Démarrer Docker Desktop; 3. Créer une image Docker (à l'aide de DockerFile); 4. Build Docker Image (en utilisant Docker Build); 5. Exécuter Docker Container (à l'aide de Docker Run).

La politique de sauvegarde et de récupération de GitLab dans le système CentOS afin d'assurer la sécurité et la récupérabilité des données, Gitlab on CentOS fournit une variété de méthodes de sauvegarde. Cet article introduira plusieurs méthodes de sauvegarde courantes, paramètres de configuration et processus de récupération en détail pour vous aider à établir une stratégie complète de sauvegarde et de récupération de GitLab. 1. MANUEL BACKUP Utilisez le Gitlab-RakegitLab: Backup: Créer la commande pour exécuter la sauvegarde manuelle. Cette commande sauvegarde des informations clés telles que le référentiel Gitlab, la base de données, les utilisateurs, les groupes d'utilisateurs, les clés et les autorisations. Le fichier de sauvegarde par défaut est stocké dans le répertoire / var / opt / gitlab / backups. Vous pouvez modifier / etc / gitlab

Le support de disque dur CentOS est divisé en étapes suivantes: Déterminez le nom du périphérique du disque dur (/ dev / sdx); créer un point de montage (il est recommandé d'utiliser / mnt / newdisk); Exécutez la commande Mount (mont / dev / sdx1 / mnt / newdisk); modifier le fichier / etc / fstab pour ajouter une configuration de montage permanent; Utilisez la commande umount pour désinstaller l'appareil pour vous assurer qu'aucun processus n'utilise l'appareil.

Une fois CentOS arrêté, les utilisateurs peuvent prendre les mesures suivantes pour y faire face: sélectionnez une distribution compatible: comme Almalinux, Rocky Linux et CentOS Stream. Migrez vers les distributions commerciales: telles que Red Hat Enterprise Linux, Oracle Linux. Passez à Centos 9 Stream: Rolling Distribution, fournissant les dernières technologies. Sélectionnez d'autres distributions Linux: comme Ubuntu, Debian. Évaluez d'autres options telles que les conteneurs, les machines virtuelles ou les plates-formes cloud.
