Por que usar uma fila de mensagens?

As perguntas da entrevista

  • Por que usar uma fila de mensagens?
  • Message Queuing Quais as vantagens e desvantagens?
  • Kafka, ActiveMQ, RabbitMQ, RocketMQ qual é a diferença, e que cenários se encaixam?

Entrevistador análise psicológica

Na verdade, o entrevistador, principalmente, querem ver:

  • Primeira : Por que você usa esta técnica?
    Muitos entrevistadores Por que usar esta tecnologia por falta de pensamento, mas somente para uso com, e não têm o seu próprio pensamento independente, o conceito de design de arquitetura, nem global.
  • Segundo : É claro para você os prós e contras desta tecnologia?
    Quer se trate de habilidades de pensamento profundo, entender os prós e contras da introdução de novas tecnologias traz. Se não, apenas o código de ferramentas de manipulação, a falta de pensamento independente.
  • Terceiro : Seleção das considerações técnicas?
    produtos MQ no mercado amadurecer muito, ninguém é absolutamente perfeito, não consideramos a questão da seleção de tecnologia.

Análise de perguntas da entrevista

Por que usar uma fila de mensagens?

Na verdade, apenas quero saber qual é a razão porque a tecnologia MQ introduzida, a fim de resolver o que problemas. Entrevistador está olhando para resposta é, se sua empresa tem que tipo de cenário de negócios, este cenário que tipo de desafios técnicos, pode haver problemas sem MQ, MQ introduzido agora traz os benefícios.
Por MQ benefícios são: dissociação, assíncrona, recorte .

desacoplamento

Este cenário normalmente publicar subscrever modelo, por exemplo: Sistema Um sistema para dar B, C, D para enviar mensagens. Se desta vez a adição de um novo sistema de E, você precisa mudar o sistema de código A pode enviar uma mensagem para o sistema E, se você estiver usando MQ, produtores e consumidores pode ser dissociado.
Resumo : através de um MQ, para alcançar Pub / Sub publicar subscrever modelo de tal modelo, de alcançar uma dissociação.
Dicas de Entrevista : Você precisa considerar se há um sistema própria cena semelhante é um módulo chamado um número de outros módulos, para manter um monte de problemas com o outro. Mas a chamada, na verdade, não requer chamadas síncronas. Se você estiver usando MQ dissociação assíncrona, também é possível. Ela se reflete em seu currículo, utilizando MQ dissociação.

assíncrono

Se um recebe um pedido para escrever a sua própria biblioteca local requer 100ms, enquanto o B para ligar para o sistema leva 200ms, o C 100ms custo do sistema, Sistema D 300ms custo. O demorado total em comparação com 700ms, que no projeto Internet podem ser tolerados. MQ usará chamada assíncrona, então Um sistema como este é quase apenas 100ms pode ser devolvido.

tosquia

sistema de QPS normalmente cerca de 50 ou assim, mas quando confrontados com uma situação de emergência, QPS subiu para 5000, se o sistema de solicitação de dados está diretamente baseado em MySQL, então o MySQL pode falhar. TPS-geral do MySQL em cerca de 2K. Instantânea pico avalanche pode causar o sistema para aparecer.
Se o MQ, o horário de pico para gravar dados para MQ, de acordo com o seu consumidor final pode dar ao luxo de gastar, não porque o pedido pressão excessiva causar um acidente. Em seguida, o sistema é o tempo ocioso, para espremer dados consumidos.
O short squeeze é permitido, porque quando o pico do passado, o sistema irá rapidamente consumido dados do aperto.

Message Queue Quais são as desvantagens?

Vantagens já disse, existem correspondentes benefícios em Cenas Especiais: dissociação, assíncrona, clipping.
A principal desvantagem dos três critérios seguintes:

  • Reduzir a disponibilidade do sistema:
    a introdução de dependências externas, a mais baixa disponibilidade. Chamadas diretas, desde que não há nenhuma falha do sistema não vai dar errado. Mas uma vez introduzida MQ, é preciso considerar problemas de usabilidade MQ.
  • Aumentar a complexidade do sistema:
    o sistema adiciona um MQ entrou, questões a serem consideradas se tornará mais, é preciso considerar a forma de garantir a situação não consumo de repetição (idempotency), como lidar com o caso de perda de mensagem (confiabilidade), como assegurar uma mensagens ordenada (sequencial).
  • Consistência:
    Se um sistema processadas diretamente para o sucesso, o sistema BCD no caso de existirem erros, em seguida, apareceu situação de dados inconsistentes, como lidar com?

Portanto, a fila de mensagens é uma arquitetura muito complexa, introduziu ele vai trazer alguns benefícios, mas se por nenhuma consideração em todos os lugares, mas haverá uma série de problemas. No entanto, em alguns cenários, o uso ou quiser usar, como evitar a necessidade de limpar o risco.

Kafka, ActiveMQ, RabbitMQ, RocketMQ Quais as vantagens e desvantagens?

propriedade ActiveMQ RabbitMQ RocketMQ Kafka
Stand-alone throughput Dez mil, inferior RocketMQ, Kafka uma ordem de magnitude com ActiveMQ 100000 nível, proporcionando um elevado rendimento 100.000, alto rendimento, classes de dados grandes com o sistema geral de dados de cálculo em tempo real, a coleta de log e outras cenas
O número de tópico sobre o impacto no rendimento tópico pode chegar a centenas / milhares de níveis, o rendimento vai diminuir em menor medida, este é RocketMQ uma grande vantagem, na mesma máquina, pode suportar um grande número de tópico tópico de dezenas a centenas de vezes, o rendimento pode cair significativamente, o uso do tema Kafka para garantir que não muito
oportunidade nível ms Microssegundo, que é uma das principais características RabbitMQ, latência menor nível ms Dentro de atraso no ms
disponibilidade Alta, baseado em uma arquitetura mestre-escravo com ActiveMQ Muito alto, arquitetura distribuída Muito alto, arquitetura distribuída, um nó vai para baixo não afetará outros nós
confiabilidade mensagem Há pouca probabilidade de perda Basic não está perdida 0 perda pode ser configurado para fazer com RocketMQ
funções de apoio função MQ e campo completo Com base no desenvolvimento de erlang, concorrência é muito forte, excelente desempenho, baixa latência função MQ mais perfeita, ou uma arquitetura distribuída, escalabilidade Função é relativamente simples, a função principal apoio simples MQ, computação em tempo real, e registrar dados coletados no campo é o uso em larga escala

Após o resumo, vários comparação, tem as seguintes recomendações:
PME recomenda o uso RabbitMQ, interface de gerenciamento rico fora da caixa, boa estabilidade.
Há capacidade de auto-desenvolvimento das empresas, pode usar RocketMQ, apoiando alto rendimento.
Há um grande negócio de dados-relacionados, ele pode ser usado diretamente Kafka, Kafka, afinal, no campo de big data já é um padrão de fato.

Lançado seis artigos originais · ganhou elogios 0 · Visualizações 28

Acho que você gosta

Origin blog.csdn.net/qq_26375325/article/details/105081172
Recomendado
Clasificación