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
-
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
História do Desenvolvimento da Arquitetura
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
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.
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
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.
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.
O Dubbo é um produto da era SOA e o SpringCloud é um produto da era dos microsserviços