Características das aplicações da Internet e sua evolução arquitetônica

1. A diferença entre projetos tradicionais e projetos de Internet

Projetos tradicionais:
OA, RH, CRM e outros sistemas. Grupo-alvo: funcionários corporativos.
Características: menos usuários do projeto, relativamente menos simultaneidade e alta tolerância do usuário.

Projetos de Internet:
Taobao, Tmall, JD.com Grupo-alvo:
Recursos da Internet: Grande número de usuários, grande número de visitas, mais ênfase na experiência do usuário : estética, funcionalidade, velocidade, estabilidade

Para projetos de Internet, os engenheiros de back-end podem intervir na velocidade e na estabilidade

Velocidade: abrir uma nova página leva apenas um momento e não há atraso entre as páginas.

Estabilidade: 99,9% do site pode ser acessado normalmente durante todo o ano sem problemas

2. Objetivos arquitetônicos de projetos de Internet em larga escala:

Características dos projetos de Internet:

  • Muitos usuários

  • Grande tráfego e alta simultaneidade

  • Dados massivos

  • vulnerável

  • Funções complicadas

  • Mude rapidamente

Medindo métricas de desempenho do site

  • Tempo de resposta : o tempo total necessário para executar uma solicitação desde o horário de início até a última vez que os dados de resposta são recebidos
  • Simultaneidade : o número de solicitações que o sistema pode atender ao mesmo tempo
    • Número de conexões simultâneas : refere-se ao cliente iniciando uma solicitação ao servidor e estabelecendo uma conexão TCP. O número total de conexões TCP ao servidor por segundo
    • Número de solicitações : QPS (Query Per Second) refere-se ao número de solicitações por segundo
    • Número de usuários simultâneos : quantos usuários existem por unidade de tempo
  • Taxa de transferência : refere-se ao número de solicitações que o sistema pode processar por unidade de tempo
    • QPS: consulta por segundo refere-se a quantas solicitações por segundo
    • TPS: Transação por segundo Número de transações por segundo
    • Uma transação refere-se ao processo no qual um cliente envia uma solicitação ao servidor e o servidor responde. O cliente inicia a cronometragem quando envia uma solicitação e termina quando recebe a resposta do servidor. Isso é usado para calcular o tempo utilizado e o número de transações concluídas.

Objetivos arquitetônicos de projetos de Internet

  • Alto desempenho: fornece uma experiência de acesso rápido
  • Alta disponibilidade: os serviços do site sempre podem ser acessados ​​normalmente
  • Escalável: Ao aumentar ou diminuir o hardware, as capacidades de processamento podem ser aumentadas ou diminuídas (grande promoção de expansão de capacidade)
  • Alta escalabilidade: baixo acoplamento entre sistemas, fácil adição ou remoção de novos módulos funcionais adicionando ou removendo-os
  • Segurança: Fornece acesso seguro ao site e criptografia de dados, estratégia de armazenamento segura
  • Agilidade: adapte-se às necessidades e responda rapidamente

Clusterizado e distribuído

Conjunto:

  • Descrição popular: Muitas máquinas fazendo a mesma coisa
  • Descrição profissional: Um módulo de negócios implantado em um servidor polimórfico

distribuído:

  • Descrição popular: Existem muitas máquinas e cada cluster faz coisas diferentes. Juntos, é um evento complexo (as coisas profissionais são feitas profissionalmente, porque cada coisa tem requisitos de desempenho diferentes)

  • Descrição profissional: Um sistema de grande empresa é dividido em seções de pequenas empresas e implantado em máquinas diferentes.
    Insira a descrição da imagem aquiInsira a descrição da imagem aqui

Os projetos na arquitetura cluster atendem às seguintes características:

  • Alto desempenho: O cluster é escalável, caso o desempenho não seja suficiente, máquinas podem ser adicionadas para garantir o desempenho.

  • Alta disponibilidade: Desde que uma máquina não esteja inoperante, o serviço pode ser fornecido

Insira a descrição da imagem aqui
A arquitetura distribuída em cluster pode atender bem aos objetivos arquitetônicos do sistema da Internet.

  • Alto desempenho: O cluster é escalável, caso o desempenho não seja suficiente, máquinas podem ser adicionadas para garantir o desempenho.

  • Alta disponibilidade: Desde que uma máquina não esteja inoperante, o serviço pode ser fornecido

  • Escalável: expanda e reduza dinamicamente diferentes clusters de serviços de acordo com os requisitos de desempenho de diferentes serviços.

  • Alta escalabilidade: Quando precisar adicionar ou reduzir determinados serviços, basta aumentar ou diminuir os clusters que respondem ao serviço.

Evolução da arquitetura

Arquitetura monolítica

Todos os serviços são implantados em um servidor

Insira a descrição da imagem aqui

  • Vantagens: Desenvolvimento e implantação simples, preferido para pequenos projetos
  • deficiência:
    • Grande quantidade de código e inicialização lenta do projeto
    • Fraca confiabilidade
    • Má escalabilidade
    • Má escalabilidade e capacidade de manutenção
    • Baixa performance

arquitetura vertical

A arquitetura vertical consiste em dividir vários módulos em uma única arquitetura em vários projetos independentes para formar várias arquiteturas únicas independentes .

Insira a descrição da imagem aqui

Problemas com arquitetura monolítica:

  • Projeto começa devagar
  • Fraca confiabilidade
  • Má escalabilidade
  • Má escalabilidade e capacidade de manutenção
  • Baixa performance

Problemas com arquitetura vertical:

  • Muitas funções duplicadas

Arquitetura distribuída

A arquitetura distribuída refere-se à extração de módulos de negócios públicos com base na arquitetura vertical e ao fornecimento deles como serviços independentes a outros consumidores para alcançar o compartilhamento e a reutilização de serviços.

Insira a descrição da imagem aqui

  • RPC: Chamada de procedimento remoto chamada de procedimento remoto.

Problemas com arquitetura vertical:

  • Muitas funções duplicadas

Problemas com arquitetura distribuída:

  • Depois que o provedor de serviços muda, todos os provedores precisam mudar

Arquitetura SOA

Insira a descrição da imagem aqui

SOA: (Service-Oriented Architecture, arquitetura orientada a serviços) é um modelo de componentes que divide diferentes unidades funcionais de uma aplicação (chamadas de serviços) e as conecta por meio de interfaces e contratos definidos para esses serviços.

ESB: (Enterparise Service Bus) barramento de serviço corporativo, intermediário de serviço. Fornece principalmente 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, etc.

Problemas com arquitetura distribuída:

  • Depois que o provedor de serviços muda, todos os provedores precisam mudar

Arquitetura de microsserviços

Insira a descrição da imagem aqui

  • A arquitetura de microsserviços é uma sublimação da SOA. A arquitetura de microsserviços enfatiza um ponto-chave: “Os negócios precisam ser completamente modularizados e orientados a serviços”. Pequenos aplicativos, a interação e a integração entre esses pequenos aplicativos são completadas por meio de diversos serviços
  • Arquitetura de microsserviços = 80% de pensamento de arquitetura de serviço SOA + 100% de pensamento de arquitetura de componentes + 80% de pensamento de modelagem de domínio

Características:

  • Os serviços são componenteizados: os desenvolvedores podem escolher livremente as tecnologias de desenvolvimento e as equipes não precisam ser as mesmas
  • A interação entre serviços geralmente usa API REST
  • Descentralização: Cada microsserviço possui seu próprio banco de dados privado para persistir os dados de negócios
  • Implantação automatizada: divida o aplicativo em serviços individuais independentes para facilitar a implantação, testes, operação e manutenção automatizados

Acho que você gosta

Origin blog.csdn.net/weixin_43828467/article/details/130033089
Recomendado
Clasificación