Introdução (análise do ponto problemático)

Como arquiteto ou desenvolvedor de uma plataforma de comércio eletrônico, você tem uma relação de amor/ódio com os próximos grandes eventos de vendas? Campanhas como vendas de segundos e por tempo limitado podem gerar muito tráfego e vendas, mas os desafios técnicos por trás delas podem ser uma dor de cabeça:

  • Inundação de fluxo instantâneo.No momento em que o evento começa, o tráfego do sistema aumenta dezenas ou até centenas de vezes em relação ao estado normal, e os clusters de recursos fixos tradicionais ficam instantaneamente sobrecarregados, resultando em indisponibilidade do serviço.
  • Custos de recursos e inatividade.Se você mantiver um cluster de alto provisionamento durante todo o ano para lidar com os picos, um grande número de recursos de computação ficará ocioso durante as horas inativas do 99%, resultando em um enorme desperdício de custos.
  • Risco de sobrevenda do estoque.Em cenários de alta simultaneidade, com várias solicitações para consultar e deduzir o mesmo estoque ao mesmo tempo, é muito fácil fazer “oversell” (vender mais do que o estoque real), o que leva a sérias perdas de capital e reclamações de clientes.

Se você estiver com dificuldades para lidar com picos de tráfego e eliminar completamente o excesso de estoque a um custo menor, este artigo fornecerá uma solução completa sem servidor.

Diagrama e visão geral da arquitetura da solução

O diagrama de arquitetura a seguir mostra claramente a composição central e o fluxo de dados do sistema de pico com base no SAE (Serverless Application Engine, mecanismo de aplicativos sem servidor) do AliCloud.

AliCloud Serverless Application Engine (SAE): arquitetura de segundos sem se preocupar com o excesso de estoque - LikaCloud

Visão geral da arquitetura.

A solicitação do usuário passa primeiro peloBalanceamento de carga CLBeGateway de microsserviços MSERealizar a distribuição de tráfego e a autenticação unificada. A lógica comercial principal (por exemplo, segundos, pedidos) é implantada noMecanismo de aplicativos sem servidor SAEAlém disso, o SAE pode expandir a capacidade de forma extremamente rápida em 1 segundo, de acordo com o número de solicitações simultâneas em tempo real, para lidar facilmente com picos de tráfego, e reduzir automaticamente para 0 após o evento para obter o custo ideal.

A solicitação de pico de chave chega e primeiro visita oEdição Redis do banco de dados em nuvemExecuta a dedução pré-inventário, usando as operações atômicas do Redis para garantir a precisão do inventário. Após uma dedução bem-sucedida, uma mensagem de pedido assíncrona é gerada e gravada no arquivoFila de mensagens RocketMQO serviço de último pedido no SAE consome a mensagem e conclui de forma assíncrona o descarte do banco de dados, o que reduz bastante o banco de dados principalRDSA pressão do

Proposta de valor.Essa solução resolve os problemas de custo de recursos e de estabilidade de pico por meio da extrema elasticidade do SAE e elimina fundamentalmente o excesso de estoque por meio do padrão de “dedução atômica Redis + fila de mensagens assíncronas”.

Produtos e componentes principais

nome do componentedesempenhar um papelPrincipais recomendações de configuração/seleçãoPor que escolher
Mecanismo de aplicativos sem servidor (SAE)mecanismo de computação centralO sistema de gerenciamento de aplicativos de microsserviços da Microsoft, que hospeda aplicativos de microsserviços, como lógica de pico, serviços de pedidos e muito mais.Recomendado para ligarelasticidade de tempo(expandido antes do início do evento) eElasticidade do indicador(Dimensionamento dinâmico baseado em métricas de CPU/concorrência).Não há necessidade de gerenciar servidores, fornece escalonamento de elasticidade de segundo nível, suporta redução a 0, pagamento por uso e corresponde perfeitamente aos cenários de pico.
Edição Redis do banco de dados em nuvemCamada de cache e centro de dedução de inventário. Armazenar em cache os dados do hotspot, como detalhes do produto; porDECRAguardando comandos atômicos para realizar deduções de estoque para evitar excesso de vendas.opçãobaseado em memóriaA especificação garante alto desempenho; recomenda-se ligarobjetificaçãoEm caso de perda de dados.Fornecer desempenho ultra-alto de leitura/gravação e operações de dados atômicos é a chave para resolver o problema do inventário altamente simultâneo.
Fila de mensagens RocketMQDesacoplamento assíncrono e redução de pico. Conversão de solicitações de pico bem-sucedidas em mensagens de pedido assíncronas para armazenar o tráfego transitório e proteger os bancos de dados downstream.Sugestão de usomensagem sequencialSequência garantida de processamento de pedidos para o mesmo item.Alta taxa de transferência e alta confiabilidade, capaz de acumular mensagens em massa para garantir que as solicitações de pico não sejam perdidas e que o sistema como um todo seja mais estável.
Banco de dados em nuvem RDS MySQLPersistência de dados finais. Armazena dados mestre de produtos, informações de pedidos finais, etc.opçãoEdição de alta disponibilidade(um principal e um em espera) e selecione as especificações com base no tamanho da operação.Elimine os problemas de operação e manutenção do banco de dados, ofereça garantia de confiabilidade dos dados, com filas de mensagens para obter a consistência máxima.
Mecanismo de microsserviços MSEGateway de microsserviços. Fornece roteamento, autenticação, limitação de fluxo, fusão e outros recursos, além de ser um ponto de entrada unificado e uma barreira de segurança para o sistema.Configuração da interface de picolimitação precisa do tráfegoimpedindo que solicitações mal-intencionadas sobrecarreguem os serviços de back-end.Melhorar a segurança, a estabilidade e a observabilidade do sistema, para que os desenvolvedores possam se concentrar mais na lógica comercial.

Resumo dos benefícios do programa

  • Segundos de resiliência, nunca para baixo.O SAE pode concluir a expansão de instâncias em 1 segundo e realizar facilmente milhões de simultaneidades para garantir que o serviço esteja sempre on-line durante o evento.
  • Otimização de custos, pagamento conforme o uso.O serviço é cobrado de acordo com o uso real dos recursos, e a capacidade é automaticamente reduzida após o término da atividade, o que reduz o custo dos recursos em mais de 70% em comparação com a arquitetura tradicional.
  • 🛡️ Elimine o excesso de vendas e proteja as perdas de capital.Operação atômica baseada em Redis de dedução de estoque, desde o nível lógico até a solução completa do problema de excesso de vendas, para proteger os interesses das empresas.
  • Livre de operações e focado nos negócios.As ofertas de nuvem totalmente gerenciadas liberam as equipes de operações do gerenciamento da infraestrutura para iterar nas funções de negócios mais rapidamente.

Cenários de aplicativos e clientes aplicáveis

  • Cena principal.As plataformas de comércio eletrônico têm atividades instantâneas de alta simultaneidade, como segundos, corrida por tempo limitado, lançamento de novos produtos, chuva de pacotes vermelhos e assim por diante.
  • Características aplicáveis do cliente.
    • A empresa tem altos e baixos significativos e busca a utilização extrema de recursos e a otimização de custos.
    • A empresa vinha enfrentando problemas de excesso de vendas de estoque e tinha uma alta demanda por consistência de dados.
    • A equipe de operações de desenvolvimento tem mão de obra limitada e deseja minimizar a complexidade das operações de infraestrutura.

Links relacionados

Mecanismo de aplicativos sem servidor (SAE) Governança, registro, monitoramento e outros recursos de suporte de microsserviços prontos para uso
Pacote de avaliação gratuita do SAE Solicite seu produto na nuvem agora mesmo e comece a praticar na nuvem!
Edição Redis do banco de dados em nuvem Várias mídias de armazenamento (memória, memória persistente, disco)
Banco de dados em nuvem RDS MySQL Banco de dados MySQL on-line escalável e elástico
Mecanismo de microsserviços MSE Centro de configuração registrado, governança de microsserviços, agendamento de tarefas, gateway nativo da nuvem
Fila de mensagens RocketMQ Plataforma de processamento unificado distribuído de “mensagem, evento, fluxo”
Criação de um sistema de picos de alto desempenho Como criar um sistema de picos de alto desempenho usando os produtos AliCloud