Qu'est ce qu'un cache distribué?
Je suis confus au sujet de la notion de Cache Distribué. J'ai un peu savoir ce que c'est à partir d'une recherche sur google. Un cache distribué peut s'étendre sur plusieurs serveurs, de sorte qu'il peut croître en taille et en capacité transactionnelle. Cependant, je ne comprends pas vraiment comment il fonctionne, ou de la façon de distribuer les données.
Par exemple, disons que nous avons de Données 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 et 2 serveurs de cache A et B. Si nous utilisons cache distribué, alors une solution possible est que les Données à 1, 3, 5, 7, 9 sont stockées dans le Cache du Serveur de A, et 2, 4, 6, 8, 10 sont stockées dans le cache du Serveur B.
Alors, est-ce correct ou ai-je mal?
Deuxième question est que j'ai l'habitude entendu le mot nœud de serveur. Quel est-il? Dans l'exemple ci-dessus, le Serveur A est un nœud de serveur, non?
Troisième question, si un serveur (disons que le Serveur A) descend, que pouvons-nous faire à ce sujet? Je veux dire, si mon exemple ci-dessus est correcte, nous ne pouvons pas obtenir les données de 1, 3, 5, 7, 9 à partir du cache lorsqu'Un Serveur est en panne, alors que le Cache du Serveur de faire dans ce cas?
- Pertinentes de la lecture de 8bitmen.com/...
Vous devez vous connecter pour publier un commentaire.
Oui, la moitié des données sur un serveur, et pour moitié sur le serveur b serait un cache distribué. Il existe de nombreuses méthodes de distribution des données, bien que certains sorte de hachage des clés semble être la plus populaire.
Les termes du serveur et le nœud sont généralement interchangeables. Un nœud est généralement une seule unité de collecte, souvent appelé un cluster. Un serveur est généralement d'une seule pièce de matériel. En erlang, vous pouvez exécuter plusieurs instances de l'erlang d'exécution sur un seul serveur, et donc, vous avez de multiples erlang des nœuds... mais en général, vous voulez avoir qu'un seul nœud par serveur pour plus d'optimum de la planification. (Pour les non-distribué des langues et des plates-formes, vous avez à gérer vos processus en fonction de vos besoins.)
Si un serveur tombe en panne, et c'est un serveur de cache, les données doivent provenir de sa source d'origine. Par exemple: UN cache est généralement une mémoire de base de données conçu pour la récupération rapide. Les données dans le cache autour de bâtons qu'aussi longtemps que son utilisée régulièrement, et finira par être détruit. Mais les systèmes distribués où vous avez besoin de la persistance, une technique courante est de disposer de plusieurs copies. Par exemple: vous avez des serveurs A, B, C, D, E et F. Pour les données 1, vous pouvez le mettre sur Une, puis une copie sur B et C. Couchbase et Riak ce faire. Pour les données de 2, il pourrait être sur B, puis copie sur C et D. de Cette façon, si un serveur tombe en panne, vous avez encore deux exemplaires.
J'ai été Distribué à l'aide de solutions de mise en cache pour un certain temps maintenant (NCache , AppFabric etc) et je vais répondre aux trois questions basées sur mon expérience avec la mise en cache Distribuée.
1: la mise en cache Distribuée solution permet de conserver les données sur tous les serveurs par la création d'un cluster de cache. Disons que vous avez de 2 serveurs de cache(serveur de nœuds) et vous avez ajouté des 10 éléments dans votre cache. Idéalement de 5 éléments doivent être présents dans les deux nœuds de serveur depuis le chargement des données est distribuée entre le nombre de serveurs dans votre cluster de cache. Ceci est habituellement réalisé à l'aide de fonctions de hachage et intelligent de distribution de données algorithmes. En conséquence, votre demande de données de charge est aussi divisé entre tous les serveurs de cache et votre réaliser la croissance linéaire transnationale de capacité que vous que plus de serveurs dans le cluster de cache.
2: Un cluster de cache peut contenir de nombreuses machines serveurs, qui sont aussi appelés nœuds de serveur. Oui, le Serveur A est un nœud du serveur ou du serveur de la machine dans votre exemple.
3: Généralement Distribués système de mise en cache sont très fiables à l'aide de la réplication de soutien. Si un ou plusieurs serveurs sont en panne et vous avez eu la réplication allumé alors il n'y aura pas de perdre des données ou de temps d'arrêt. NCache a différentes typologies pour lutter contre cela, comme l'illustre la topologie et la Partition de la réplique de la topologie où les données de chaque serveur est répliqué sur les autres serveur. Dans le cas d'un serveur tombe en panne, les données répliquées de ce serveur est automatiquement mis à la disposition de l'survivant nœud de serveur.
Dans votre exemple, les données d'Un serveur(1, 3, 5, 7, 9) est répliquée sur le serveur B(2, 4, 6, 8, 10) et vice-versa. Si Un serveur tombe en panne, les données d'Un serveur qui est présent sur le Serveur B seront mis à disposition et utilisé à partir de là, de sorte que pas de perdre des données se produit. Donc, si Un serveur tombe en panne et l'application des demandes de données (1), c'données récupérées à partir du Serveur B en tant que Serveur B contient la sauvegarde de toutes les données du Serveur A. C'est transparente à vos applications et est géré automatiquement par le système de mise en cache.