Fiche technique | |
---|---|
Type de produit : | Cadre d'application |
Catégorie : | Processus concurrent |
Auteur : | .NET Foundation |
Licence : | Apache License, Version 2.0 |
Date de publication : | 2017 à maintenant |
Site Web : | https://getakka.net/ |
Introduction
Akka.NET est un cadre d'application open-source pour la programmation concurrente et distribuée en C#. Il est basé sur le modèle d'acteur, facilitant la création d'applications capables de gérer de nombreuses tâches simultanément, tout en simplifiant la gestion des problèmes liés à la concurrence (comme les conditions de course et les blocages de processus léger). Il est inspiré d'Akka, un cadre d'application similaire en Scala.
Voici les caractéristiques principales d'Akka.NET :
- Modèle d'acteur : Dans Akka.NET, les acteurs sont des unités isolées de calcul communiquant entre elles uniquement via des messages désynchronisées. Chaque acteur a son propre état et son propre processus léger, ce qui permet une haute scalabilité et une isolation des erreurs.
- Concurrence : Les acteurs fonctionnent de manière indépendante, ce qui permet de gérer de nombreux processus en parallèle sans se soucier des verrous et des accès concurrents aux ressources partagées.
- Tolérance aux pannes : Akka.NET a un mécanisme intégré de supervision des acteurs. Les acteurs superviseurs peuvent détecter et redémarrer les acteurs ayant échoué, ce qui garantit une résilience accrue des systèmes distribués.
- Distribution : Le cadre d'application permet de créer des systèmes distribués en connectant des acteurs sur plusieurs machines ou processus. Cela simplifie la création de systèmes fonctionnant sur l'infonuagique ou sur des unités d'allocations.
- Évolutivité horizontale : Akka.NET facilite l'évolutivité horizontale (ajout de serveurs supplémentaires pour répartir la charge) grâce à sa capacité à gérer la distribution des messages entre les acteurs sur différents noeuds.
- Support des systèmes en temps réel : Il est utilisé dans des systèmes nécessitant une forte capacité de traitement en temps réel, comme les jeux en ligne, les systèmes de trading financiers, et les applications de messagerie instantanée.
- Programmation désynchronisée et parallèle : Il est conçu pour exploiter au maximum les capacités des systèmes multi-processus léger, en gérant le désynchronisme sans que les développeurs aient à manipuler directement les processus léger ou les verrous.
Voici des cas d'utilisation d'Akka.NET :
- Applications distribuées et tolérantes aux pannes.
- Systèmes nécessitant une haute concurrence (comme les jeux multijoueurs, les systèmes de trading).
- Applications temps réel (comme les chats, les avertissements instantanées).
- Traitement de données en masse (Big Data).
- Applications infonuagique évolutives.
Dernière mise à jour : Samedi, le 7 septembre 2024