Introdução (análise do ponto problemático)
Como arquiteto ou desenvolvedor de uma plataforma de comércio eletrônico, você já teve noites sem dormir na véspera de um evento de “segunda venda” ou “grande promoção”? Quando milhões de usuários clicam em “Buy Now” ao mesmo tempo, seu sistema enfrenta os seguintes desafios sérios:
- A pressão do banco de dados disparou.Informações sobre produtos quentes, solicitações de consulta de inventário atingem instantaneamente a conexão do banco de dados, resultando em uma avalanche de serviços.
- O enigma da venda excessiva de estoque.Em um ambiente simultâneo, o baixo desempenho dos bloqueios de transações de bancos de dados tradicionais pode facilmente levar à dedução incorreta do estoque e à “venda excessiva”, resultando em perda de capital e reclamações de clientes.
- A resposta é extremamente lenta.As páginas dos usuários ficavam lentas e girando, as solicitações de pedidos não respondiam por longos períodos de tempo, o que acabou levando ao colapso da experiência do usuário e a campanha foi perdida.
- Ataque de solicitação maliciosa.Os scripts de escalonamento e as ferramentas de escovação se apoderam dos recursos normais do usuário e prejudicam a imparcialidade do evento.
Se você estiver enfrentando problemas de estabilidade do sistema, consistência de dados e experiência do usuário causados por picos de alta simultaneidade, este artigo fornecerá uma solução comprovada e completa de práticas recomendadas para o AliCloud.
Diagrama e visão geral da arquitetura da solução
O diagrama abaixo mostra claramente como criar uma arquitetura de sistema secular robusta usando os produtos AliCloud:

As principais ideias de design do programa são“Interceptação em camadas, assincronização e consistência eventual”。
Fluxo de trabalho.
- Camada de acesso e proteção de tráfego.As solicitações do usuário são primeiro encaminhadas por meio doAceleração da segurança de borda (ESA)talvezCDNRetorne rapidamente aos recursos da página estática, seguido peloFirewall de aplicativos da Web (WAF)Limpeza de tráfego malicioso.
- Camada de lógica de negócios.fluxo líquidoBalanceamento de carga (SLB)Distribuir para servidores de aplicativos sem estado (ECStalvezCálculo de função FC), realiza verificações básicas, como a identidade do usuário e a elegibilidade para chamadas automáticas.
- Cache de núcleo e camada de dedução.Após a aprovação da qualificação, o lado do servidor chama oBanco de dados em nuvem Tair/Redis EditionEle também pode ser usado para verificar e pré-deduzir o estoque atomicamente, registrar o status de compra do usuário e retornar os resultados instantaneamente.
- Camada assíncrona de processamento de pedidos.As solicitações bem-sucedidas de pré-dedução são enviadas como mensagens para oFilas de mensagens Edição RocketMQpara conseguir reduzir o pico de tráfego. Os serviços downstream consomem mensagens de forma assíncrona para concluir operações demoradas, como a criação de pedidos e a persistência do banco de dados.
- Camada de persistência de dados. Banco de dados em nuvem RDS MySQL Editioncomo o melhor armazenamento de dados, utilizando seuDica de inventárioO recurso trata com eficiência as atualizações de linhas de hotspot para garantir a consistência eventual com o Redis.
- Monitoramento completo do link. Serviço de monitoramento em tempo real de aplicativos (ARMS)Além disso, ele fornece insights completos sobre o desempenho do link para ajudar a localizar gargalos rapidamente.
Proposta de valor.Ao digerir as solicitações de leitura 99% e as operações de dedução de inventário na camada de cache e permitir que apenas um pequeno número de solicitações bem-sucedidas entre no banco de dados, essa solução resolve completamente o ponto problemático da introdução e consegue lidar com dezenas ou até centenas de milhares de solicitações por segundo.
Produtos e componentes principais
| montagens | desempenhar um papel | Principais recomendações de configuração/seleção | Por que escolher |
|---|---|---|---|
| Banco de dados em nuvem Tair/Redis Edition | O núcleo central do sistema. Realizar: 1.Cache de dados quentes: Detalhes do produto no cache. 2.Retenção de estoque: através de DECRouLuaScript Atomic Deduction Inventory (Inventário de Dedução Atômica).3.limitação de fluxo de solicitações (computação): através de INCRHabilita a limitação de tráfego dimensional de usuário/IP.4.marcador de statusUso de SETNXSinalize os usuários que já fizeram um pedido para evitar compras duplicadas. | -seleção: Seleçãobaseado em memóriaoutipo de memória persistenteinstâncias, primeiro o desempenho. -configurar: Abertoobjetificação(AOF) para evitar a perda de dados na reinicialização. -construir: AdoçãoEdição em clusterpara dimensionar facilmente o desempenho. | Fornece rendimento ultra-alto e operações atômicas, com desempenho muito além do banco de dados. A versão AliCloud ofereceflashback de dados、expansão e contração contínuase outros recursos avançados com O&M simples. |
| Filas de mensagens Edição RocketMQ | “Vias de inundação” e “zonas de amortecimento” do sistema. Realizar: redução de picoSolicitações de colocação de pedidos síncronas e instantâneas são convertidas em mensagens assíncronas que são enviadas sem problemas aos serviços de processamento de pedidos downstream para evitar que os serviços fiquem sobrecarregados. | -seleção: SeleçãoEdição em clusterpara garantir alta disponibilidade. -configurar: Criaçãomensagem sequencialTopic, que garante a natureza sequencial dos pedidos feitos para o mesmo item. | Produtividade extremamente alta e empilhamento confiável de mensagens com suporte paramensagem de transaçãogarantindo que a lógica comercial seja consistente e ideal para o desacoplamento assíncrono. |
| Banco de dados em nuvem RDS MySQL Edition | O “cofre de dados definitivo” do sistema. Realizar: Persistência de dados finaisReceber informações do pedido do Worker assíncrono para concluir a dedução final do estoque, a criação do pedido e outras operações de entrega. | -caracterizaçãoAltamente recomendadoDica de inventárioque melhora o desempenho várias vezes ao atualizar uma única linha de inventário em alta simultaneidade. -construir: AdoçãoEdição de alta disponibilidade(Implementação de várias disponibilidades) Confiabilidade garantida. | Como um banco de dados relacional maduro e estável, as características ACID dos dados são garantidas.cena de pico (computação)Otimização para resolver o último gargalo de desempenho. |
| Aceleração da segurança de borda (ESA) / CDN | A “primeira barreira” do sistema. Realizar: Aceleração e proteçãoCache de recursos estáticos (HTML, CSS, JS, imagens) de páginas ativas para interceptar a maioria das solicitações de usuários nos nós de borda, reduzindo consideravelmente a pressão sobre o site de origem. | -configurarDefinição de um tempo de expiração de cache razoável para a página de picopré-aquecereatualizar (janela do computador)。 | A rede global de nós oferece resposta em milissegundos e integra recursos de proteção contra DDoS para aprimorar a experiência do usuário e, ao mesmo tempo, proteger a segurança. |
| Firewall de aplicativos da Web (WAF) | “Guardas de segurança” para o sistema.. Realizar: Impermeabilização e filtragem de escovasIdentificação e bloqueio precisos de scripts de escalonamento, ataques de CC, injeções de SQL e outras solicitações mal-intencionadas para garantir a imparcialidade das atividades e a segurança dos negócios. | -configurar: Habilitarverificação homem-computador、Segurança CC、Controle de acesso de precisão personalizadoA regra limita o tráfego contra URLs de pico. | Ofereça proteção abrangente para aplicativos da Web em sua empresa, sem modificar o código comercial, e enfrente facilmente os desafios da chantagem. |
| Serviço de monitoramento em tempo real de aplicativos (ARMS) | O “Panorama Monitor” do sistema.. Realizar: Link completo observávelMonitoramento de todas as solicitações da API de front-end para o Redis, MQ e banco de dados de back-end para localizar rapidamente gargalos e anomalias de desempenho. | -configurarpara interfaces de núcleo do spike, comandos do Redis, configurações de caso de heap do MQVisão geral dos negócioseRegras de alarme。 | Fornece recursos de monitoramento de desempenho de ponta a ponta, permitindo visibilidade rápida em sistemas distribuídos complexos e rápida solução de problemas. |
Resumo dos benefícios do programa
- Desempenho extremo com resposta em milissegundos.A operação na memória e a arquitetura assíncrona do Redis facilitam o processamento de milhões de QPS e a experiência de pedidos do usuário é tranquila.
- ? ️ Os dados são confiáveis e eliminam o excesso de vendas.As operações atômicas do Redis + scripts Lua garantem uma pré-dedução precisa, combinada com as transações RDS e o Inventory Hint para garantir que o inventário seja consistente e nunca seja vendido em excesso.
- ? ️ Corte de fluxo e estabilidade do sistema.O desacoplamento assíncrono do RocketMQ, que resiste de forma eficaz a picos de tráfego transitórios, protege o banco de dados e os serviços downstream para que funcionem sem problemas.
- ? Seguro e em conformidade, justo e confiável.Por meio do WAF, da alta defesa contra DDoS e de outros meios, ele cria um sistema de proteção tridimensional desde a borda até dentro da nuvem, identifica e intercepta com eficácia as solicitações mal-intencionadas e garante a imparcialidade das atividades.
- ? Dimensionamento flexível para otimização de custos.Todos os produtos principais oferecem suporte à expansão da capacidade elástica sob demanda e podem ser reduzidos após o evento, controlando efetivamente os custos.
Cenários de aplicativos e clientes aplicáveis
- Cenários de aplicativos.
- Promoção de comércio eletrônico.Os produtos populares em festivais de compras, como o “Double 11” e o “618”, estão disponíveis para compra.
- Edição limitada.Por exemplo, a estreia de novos telefones celulares, tênis de edição limitada e ingressos para shows.
- Pegar o voucher temporizado.Campanhas regulares para coletar cupons de plataforma e pacotes vermelhos.
- Clientes aplicáveis.
- Todas as plataformas de comércio eletrônico, educação on-line, sistemas de emissão de bilhetes e outras empresas que enfrentam operações de alta simultaneidade.
- Clientes cujo pico de tráfego comercial varia muito em relação ao tráfego diário e exige recursos elásticos para lidar com ele.
- Clientes que exigem o mais alto nível de consistência de dados e não toleram vendas excessivas.
Links relacionados
- Link para o site oficial do produto.
- Banco de dados em nuvem Tair/Redis Edition, saiba mais
- Message Queue RocketMQ Edition, saiba mais!
- Banco de dados em nuvem RDS MySQL Edition, saiba mais
- Edge Security Acceleration (ESA), saiba mais
- Web Application Firewall (WAF), saiba mais
- Serviço de monitoramento em tempo real de aplicativos (ARMS), saiba mais
- Cálculo funcional FC para obter detalhes
- Alta defesa contra DDoS (internacional)丨 Alta defesa contra DDoS (novo BGP)
- Link para teste gratuito. Experimente os produtos AliCloud gratuitamente!
- Links para tutoriais de tecnologia. Criando segundos com Redis e RocketMQ
- Link da solução. Saiba mais sobre as soluções do setor de comércio eletrônico