Aprendendo Dubbo1 do zero - a história dos objetivos de projetos de Internet e desenvolvimento de arquitetura

Objetivos de arquitetura de projetos de Internet em larga escala

Projetos tradicionais e projetos de Internet

Projetos tradicionais : sistema de uma empresa, sistema de RH, sistema de check-in

Projetos de Internet : Tmall, Baidu, jd

itens tradicionais projeto internet
Usar grupos empregados corporativos Todos os usuários da Internet
Simultaneidade 1-milhares milhão bilhão
Tolerância do produto alta tolerância tolerância quase zero
segurança alta seguranca Vulnerável
Função função simples função complexa
renovar atualização lenta atualizar rápido

A partir do gráfico de comparação, pode-se ver que os projetos de Internet devem:

Alta simultaneidade, resposta rápida, boa estabilidade, boa experiência do usuário

Meça as métricas de desempenho do site

Tempo de resposta : refere-se ao tempo total necessário para executar uma solicitação desde o início até o recebimento dos dados de resposta no final.

Simultaneidade : refere-se ao número de solicitações que o sistema pode atender ao mesmo tempo.

  • O número de conexões simultâneas : refere-se ao cliente inicia uma solicitação ao servidor e estabelece uma conexão TCP. O número total de conexões TCP com o servidor por segundo

  • Número de solicitações : também conhecido como QPS (Query Per Second) refere-se a quantas solicitações por segundo

    imagem-20220830115653815
  • Usuários simultâneos : quantos usuários por unidade de tempo

Taxa de transferência : refere-se ao número de solicitações que o sistema pode atender por unidade de tempo.

Alto desempenho : Forneça uma experiência de acesso rápido.

Alta disponibilidade : os serviços do site sempre podem ser acessados ​​normalmente.

Escalável : aumentar/diminuir, aumentar/diminuir o poder de processamento através do hardware.

Alta escalabilidade : baixo acoplamento entre sistemas, fácil de adicionar/remover novas funções/módulos adicionando/removendo.

Segurança : Forneça estratégias como acesso de segurança ao site, criptografia de dados e armazenamento seguro.

agrupar e distribuir

Tecnologias necessárias para projetos de Internet em larga escala: cluster e distribuído

conjunto

Muitas "pessoas" trabalham juntas para fazer a mesma coisa. Por exemplo, um restaurante precisa cortar legumes, preparar legumes, lavar pratos e servir pratos; originalmente um chef era responsável por todo o trabalho e depois recrutou novos chefs, novos chefs Também está fazendo todo o trabalho e compartilhando a pressão do chef original. O novo chef e o chef original são clusters

distribuído

Muitas "pessoas" fazem coisas diferentes juntas. Essas coisas diferentes se somam a uma grande coisa. O chef original não é mais responsável por cortar legumes, lavar pratos e servir pratos, mas recruta três pessoas para serem responsáveis, respectivamente, para que cada pessoa possa se concentrar em fazer apenas uma coisa, e a eficiência será muito alta.

Cluster + distribuído (escalável)

Se o restaurante tiver muitos pedidos, podemos recrutar duas equipes de chefs e dividir os pedidos em duas partes. As duas equipes de chefs são equivalentes a clusters e cada equipe cozinha de maneira distribuída. Esse tipo de adição de equipes A escalabilidade é alcançada de forma caminho

imagem-20220830121317930

História do Desenvolvimento da Arquitetura

imagem-20220830144818274

arquitetura monolítica

Coloque todos os módulos de um programa em um servidor e uma arquitetura única de várias máquinas pode ser realizada formando um cluster de servidores polimórficos

imagem-20220830144941704

Vantagens: desenvolvimento e implantação convenientes, adequados para pequenos projetos

deficiência:

  • Início lento do projeto
  • Baixa confiabilidade: um módulo quebra e todo o projeto quebra
  • má escalabilidade
  • má escalabilidade
  • baixa performance
arquitetura vertical

A arquitetura vertical refere-se à divisão de vários módulos em uma arquitetura monolítica em vários projetos independentes. Forme múltiplas arquiteturas monolíticas independentes.

imagem-20220830145315419

Em comparação com a arquitetura monolítica, ela é basicamente otimizada, mas a arquitetura vertical também tem suas próprias deficiências:

Cada aplicativo não interage entre si, como página de login, página de informações pessoais, etc. As funções exigidas por cada módulo precisam ser adicionadas a cada aplicativo, resultando em funções mais repetitivas

arquitetura distribuída

Com base na arquitetura vertical, os módulos repetidos são extraídos para formar um módulo independente e se tornar um provedor de serviços

RPC: a forma como os consumidores ligam para os provedores de serviço

imagem-20220830145815950

Desvantagens da arquitetura distribuída:

Uma vez que o provedor de serviços muda, todos os consumidores precisam mudar

arquitetura SOA

Consumidores e provedores não se comunicam diretamente, mas interagem uns com os outros por meio do barramento de serviço

ESB: Enterprise Service Bus, Service Broker. Ele fornece principalmente um serviço para interação entre serviços. O ESB inclui funções como: balanceamento de carga, controle de fluxo, processamento de criptografia, monitoramento de serviços, tratamento de exceções, monitoramento de emergência e assim por diante.

imagem-20220830150849465

arquitetura de microsserviço

A arquitetura de microsserviços é a sublimação de SOA.Um dos pontos-chave enfatizados pela arquitetura de microsserviços é que "negócios precisam ser totalmente componentes e atendidos".O sistema de negócios único original será dividido em vários pequenos aplicativos. Esses pequenos aplicativos completam a interação e a integração por meio de serviços.

imagem-20220830151320598

O Dubbo é um produto da era SOA e o SpringCloud é um produto da era dos microsserviços

Próximo: (27 mensagens) Aprendendo Dubbo2 do zero - o que é a instalação de Dubbo e zookeeper_Cui Bubbles-Cat's Blog-CSDN Blog

Acho que você gosta

Origin blog.csdn.net/perturb/article/details/126711950
Recomendado
Clasificación