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

Como arquiteto ou desenvolvedor de uma plataforma de comércio eletrônico, você fica ansioso com o grande pico de promoções todos os anos? Quando o relógio bate zero, um grande número de usuários aflui instantaneamente, se o seu sistema está enfrentando os seguintes desafios sérios:

  • -Pulsos de fluxo, falhas no sistema.O tráfego instantâneo é cem ou até mil vezes maior que o dos dias de semana, os pools de conexão de banco de dados se esgotam e a CPU/IO do servidor sobe para 1001 TP3T, levando diretamente ao congestionamento de páginas e ao tempo de inatividade do serviço.
  • -A venda excessiva é inconsistente com os dados.Sob alta simultaneidade, a lógica tradicional de dedução de inventário é muito propensa a problemas de simultaneidade, resultando em um inventário negativo (excesso de vendas), o que prejudica seriamente a reputação da empresa e a experiência do usuário.
  • -Bloqueio de sincronização e resposta lenta.A solicitação de pedido do usuário precisa ser sincronizada para concluir a verificação do inventário, a criação do pedido, a inicialização do pagamento e outras operações demoradas. Qualquer um dos bloqueios fará com que os usuários aguardem o tempo limite e a taxa de rotatividade aumente.

Se estiver tendo dificuldades comComo lidar com segundos massivos de solicitações simultâneas de forma suave, confiável e eficienteE com problemas, então a solução assíncrona de redução de picos da Tencent Cloud baseada na fila de mensagens CKafka fornecerá a você uma prática recomendada completa e dimensionável.

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

O núcleo desse programa é“Redução de picos em camadas e desacoplamento assíncrono”.. Separe a solicitação de pedido instantânea do usuário do complexo processamento de negócios no back-end e suavize os pulsos de tráfego usando a fila de mensagens CKafka como um poderoso pool de buffer para garantir a estabilidade do sistema principal.

Diagrama de arquitetura.

Solução de sistema de pico CKafka da Tencent Cloud: redução assíncrona de picos e preenchimento de vales, transportando facilmente um fluxo de bilhões de pedidos - LikaCloud

Visão geral do fluxo de trabalho.

  1. Solicitar acesso.As solicitações de pico do usuário passam primeiro pelo link de aceleração global e são distribuídas pelo balanceamento de carga do CLB para vários servidores de negócios front-end.
  2. Pré-calibração.O servidor front-end (CVM/EKS) executa uma lógica leve, como elegibilidade do usuário, validação de parâmetros e consulta rápida de saldos de estoque via Redis. Depois que a validação é aprovada, as informações do pedido são usadas como um corpo de mensagemGravação imediata no CKafkaE responda rapidamente aos usuários “na fila”.
  3. Cortando os picos e preenchendo os vales.Os clusters do CKafka assumem o controle de todo o tráfego transitório com seus recursos de alta taxa de transferência e persistência, permitindo o corte perfeito do tráfego.
  4. Consumo assíncrono.A função de nuvem downstream SCF ou o microsserviço elástico TEM atua como um consumidor, extraindo mensagens do CKafka em uma taxa controlada e executando sem problemas as operações de consistência final, como dedução de estoque e retirada de pedidos.
  5. Persistência de dados.Após o processamento, os resultados são gravados no banco de dados na nuvem (MySQL/CynosDB) e o estado do cache no Redis é atualizado.

Produtos e componentes principais

montagensdesempenhar um papelPrincipais recomendações de configuração/seleçãoPor que escolher
Filas de mensagens CKafkabuffer do núcleo do sistemaassumindo o papel fundamental de redução de picos e desacoplamento.Opções sugeridasespecificação de alto nívelO número de partições deve ser definido como maior do que o número de consumidores para aumentar o consumo simultâneo.Com taxa de transferência e escalabilidade extremamente altas, compatível com o ecossistema Kafka, integração perfeita de vários tipos de ferramentas de big data, serviços gerenciados sem manutenção.
Servidor de nuvem CVM / Elastic Container Service EKSProcessamento de lógica comercial de front-endque é responsável pela validação de solicitações, geração de tokens e produção de mensagens.adoçãofaturamento volumétricoe emparelhado comGrupo Elastic Stretch (AS)Ele aumenta e diminui automaticamente de acordo com a pressão da CPU.Fornece potência de computação estável e confiável, e o dimensionamento elástico garante que os recursos sejam ajustados automaticamente antes e depois do pico, resultando em economias de custo significativas.
Banco de dados em nuvem RedisCache de dados quentesarmazenamento de inventário de segundos, listas negras de usuários, limites de frequência, etc.opçãobaseado em memóriaespecificações.Habilitando a persistênciaUse scripts Lua para garantir a dedução atômica do inventário.A operação de memória de thread único com desempenho muito alto (10W+ QPS) é uma ótima ferramenta para lidar com leituras e gravações altamente simultâneas.
Função de nuvem SCFconsumidor de tarefas assíncronasextrai mensagens do CKafka e lida com a lógica de ordenação principal.razoávelexecuções simultâneaseNúmero de mensagens processadas em lotepara evitar sobrecarregar o banco de dados downstream.orientado a eventosCom a arquitetura sem servidor, ele é dimensionado automaticamente para cima e para baixo de acordo com o volume de mensagens acumuladas, realizando um verdadeiro pagamento conforme o uso e sem manutenção.
Banco de dados em nuvem TencentDB para MySQL/TDSQL-CArmazenamento de dados finaisarmazenamento persistente de pedidos, produtos e outras informações.adoçãoEdição de alta disponibilidadeTanto queEdição Enterprise com três nósque garante a consistência dos dados; recomenda-se usarseparação entre leitura e gravaçãoArquitetura.Fornecendo serviços de banco de dados altamente disponíveis e de alto desempenho, o TDSQL-C (CynosDB) é especialmente adequado para cenários de gravação simultânea em massa com excelente relação preço/desempenho.
Balanceamento de carga CLBponto único de entrada para o tráfegopermitindo a distribuição do tráfego e a alta disponibilidade.opçãoVersão de alto desempenhoO sistema de gerenciamento de tráfego, que suporta conexões simultâneas massivas.Elimine pontos únicos de falha e garanta alta disponibilidade na camada de acesso.
Firewall de aplicativo da Web WAFguarda de segurançaA tecnologia de segurança da informação é uma ferramenta de defesa contra ataques de CC, furto malicioso e outros comportamentos.configurarProteção precisa de CCregras everificação homem-computadorpolíticas, carregadas previamente para filtrar o tráfego mal-intencionado.Intercepta a grande maioria dos ataques antes que o tráfego entre no sistema comercial, protegendo a imparcialidade da campanha e a segurança dos negócios.

Resumo dos benefícios do programa

  • A melhor experiência do usuário.Resposta rápida às solicitações do usuário (milissegundos), sem necessidade de esperar por muito tempo, sem atrasos no sistema e com um processo de pedido tranquilo.
  • ? ️ Alta disponibilidade e estabilidade do sistema.O sistema de back-end é desacoplado dos picos de tráfego, a pressão do banco de dados e do serviço é sempre suave, evitando completamente o tempo de inatividade da avalanche devido à sobrecarga.
  • ? Dimensionamento flexível para otimização de custos.Todos os componentes são elasticamente dimensionáveis, eliminando a necessidade de adquirir grandes quantidades de recursos ociosos para o tráfego de pico e reduzindo significativamente os custos de O&M de TI.
  • ? Consistência final dos dados.Com enfileiramento de mensagens e lógica de consumo confiável, ele garante que os dados para dedução de estoque e geração de pedidos sejam consistentes em última instância sob alta simultaneidade, eliminando o excesso de vendas.
  • ? ️ Arquitetura desacoplada, flexível e dimensionável.As responsabilidades de cada módulo são claras, e a expansão futura de novas funções (como dedução de pontos, notificação por SMS) só precisa adicionar novos consumidores, sem alterar o processo principal.

Cenários de aplicativos e clientes aplicáveis

  • Cena típica.As plataformas de comércio eletrônico 618, 11 duplo, 12 duplo e outras grandes atividades de pico de promoção; corrida de lançamento de novos produtos; locais populares do sistema de bilheteria para adquirir ingressos.
  • Clientes aplicáveis.
    • Todas as empresas da Internet que enfrentam inundações de tráfego cíclicas ou previsíveis.
    • Com um PV médio diário de mais de um milhão, a empresa está crescendo rapidamente e precisa de uma plataforma de comércio eletrônico com uma arquitetura altamente resiliente.
    • Equipe técnica que deseja migrar de um sistema de pico autoconstruído e de difícil manutenção para uma arquitetura nativa da nuvem totalmente hospedada e altamente confiável.

Links relacionados

Fila de mensagens na nuvem da Tencent CKafka 100% Compatível com as versões 0.9.0 a 3.2.0 do Apache Kafka
Exemplo de CVM Beechcraft Redução máxima no custo aritmético de mais de 45%
Banco de dados em nuvem Redis Compatível com os protocolos Redis e Memcached
Função de nuvem da Tencent Cloud SCF Ambiente operacional sem servidor
Tencent Cloud Load Balancing CLB Fornecer serviços seguros e rápidos de distribuição de tráfego nas Camadas 4 e 7
MySQL nativo da nuvem (TDSQL-C) 100% Compatível com MySQL
Firewall de aplicativos da Web T-Sec Identificação de ataques na Web com base em regras de IA+
Experiência gratuita dos produtos da Tencent Cloud Avaliação gratuita de mais de 60 produtos de nuvem