Concepção e prática de poder e outros sistemas

idempotência

O que é idempotência

HTTP / 1.1 é definida para ser idempotent de: a solicitações primárias e múltiplas para um recurso ** ** próprio recurso deve ter o mesmo resultado (exceto para os problemas de tempo limite de rede). Em outras palavras, o impacto sobre os recursos próprios gerados por seus tempos de execução arbitrárias são ** e ** afeta a primeira execução do mesmo.

Em termos simples, significa que não importa quantas vezes a chamada não será o resultado de diferentes métodos HTTP.

Em que circunstâncias preciso idempotent

desenvolvimento de negócios, muitas vezes encontram o caso de submissão duplicado, ou por causa de problemas de rede não pode receber os resultados do pedido de re-iniciar o pedido, ou a operação do jitter extremidade dianteira causada pela submissão repetida. No sistema de negociação, sistema de pagamento que tem causado repetidos enviar perguntas particularmente evidente, por exemplo:

1. cliques um usuário em um número de APP consecutivo enviar um pedido, o fundo deve produzir apenas uma ordem;
2. iniciar uma solicitação de pagamento para o pagamento de tesouro, devido a problemas de rede ou retransmissão BUG sistema, Alipay só deve ser deduzida uma vez que o dinheiro. ** Obviamente, uma declaração de poder e outros serviços acreditam que a presença de um interlocutor externo será chamado várias vezes, a fim de prevenir a ocorrência de várias chamadas para o estado do sistema de dados externo mudou muitas vezes, o serviço é projetado para poder e assim por diante. **

soluções

1. Otimista bloqueio: versão baseada no número da versão de alcançar, para atualizar os dados no momento de dados de verificação (problema ABA ocorre)

2. Bloqueio distribuída: Redis implementadas ou tratador

3. versão de Token: para evitar página de apresentação duplicado

Tabela 4. Anti-weight: New prevent suja

A fila de mensagens: o pedido de tampão-se rapidamente, em seguida, o processamento de tarefas assíncrono, vantagens: para melhorar certas deficiências: retornos de resposta não oportunos um resultado correspondente, a subsequente necessidade de ouvir a interface assíncrono

alcançar idempotência

Forma a utilizar a versão símbolo idempotente, isto é, utilizando Redis + versão interceptor mecanismo implementa a interface de verificação idempotente;

Realização de idéias:

- Primeiro, o gateway é o ponto de entrada para todas as solicitações, a fim de garantir idempotency que requerem um mecanismo versão global unificada para obter a versão ea versão put para Redis, e, em seguida, interface de solicitação de serviço quando a etapa anterior para obter a versão, no cabeçalho de solicitação (ou parâmetros)
- serviço correspondente recebe a solicitação, os primeiros interceptadores de uso para interceptar o parâmetro correspondente do caminho, para descobrir se existe Redis esta versão não é
- se houver, antes da implementação da lógica de negócios na exclusão de versão em seguida, repita se submetido, porque a versão é eliminado, o cliente rápidas parâmetros retorno anormal
- se em si não existe, não aborda diretamente os parâmetros legais

Publicado 11 artigos originais · ganhou elogios 0 · Visualizações 166

Acho que você gosta

Origin blog.csdn.net/sdjxgd/article/details/105200696
Recomendado
Clasificación