Como a internet e tecnologias de rede têm avançado em sofisticação e confiabilidade, engenheiros criaram uma nova forma de executar serviços de computação : sistemas distribuídos. Em vez de centralizar os dados e poder computacional em um único local , em seguida, enviá-lo aos clientes, sistemas distribuídos espalhar dados e tarefas computacionais em vários nós que trabalham em uníssono. Embora este tipo de sistema tem muitas vantagens , não é sem seus inconvenientes. Desempenho
Sistemas distribuídos permitem maior desempenho geral do serviço do que os sistemas cuja função é centralizado em um único local . Ao espalhar a carga computacional através de diferentes nós, cada local está sob menos stress. Isto permite que cada nó para executar mais eficientemente , o que aumenta o desempenho de todo o serviço . Um exemplo de como isso funciona é em serviços de mensagens de alta demanda . Em vez de despejar a carga para cada transação do usuário atual em um único servidor , as transações estão espalhados por vários servidores diferentes. Desta forma , a demanda em cada nó individual é reduzida, e os dados de cada nó recebe infiltrar para os outros nós no fundo.
Confiabilidade
Quando computação é centrado em torno de uma única máquina , a saúde do que a máquina está a saúde de todo o serviço --- se ele vai para baixo , assim que faz todo o serviço . No entanto, os sistemas distribuídos pode continuar a funcionar se um nó deixa de funcionar . Enquanto as demandas de desempenho em outros nós vai subir , assim como o stress cada máquina está sob , os outros nós continuará a funcionar. No entanto , a falha em um limiar crítico de nós ainda pode trazer o serviço para baixo.
Escalabilidade
Porque sistemas distribuídos trabalhar através de uma variedade de máquinas diferentes , eles são inerentemente escalável. Ou seja, o sistema distribuído pode ajustar quantos recursos do sistema que está fazendo uso de , à luz de que tipo de demanda do sistema é baixo. Se um sistema está em alta demanda , então ele pode ter todas as máquinas rodando a capacidade. No entanto, se a carga no sistema é relativamente baixo , pode levar diferentes componentes do sistema distribuído desligada para economizar energia e desgaste no sistema. Quando a demanda sobre o sistema sobe novamente , estes componentes pode voltar online.
Sincronização
Quando os serviços são executados em um único servidor , não há nenhuma preocupação sobre a sincronização de dados : todos os dados são simplesmente presente na máquina. No entanto, isso se torna um problema em sistemas distribuídos . Como diferentes componentes do sistema distribuídas estão lidando com diferentes tarefas e dados em qualquer ponto no tempo , haverá pequenos períodos de tempo em que os dados existe em um componente, mas não em outros. Enquanto este nó do sistema permanece em linha o tempo suficiente para estes dados temporariamente únicas permear através de outros nós , isto não é um problema . No entanto, se um nó cair antes que prolifera seus dados exclusivos , haverá inconsistências dentro do sistema.