2017-04-12 3 views
1

Dies ist eine Interviewfrage - was tun, wenn die Warteschlange von ActiveMQ in einer produktiven Umgebung voll ist?Was ist zu tun, wenn die ActiveMQ-Warteschlange in der produktiven Umgebung voll ist?

Sollten die nächsten Nachrichten verworfen werden; oder sollte ich selbst einen Puffer implementieren oder in der DB speichern?

Ich möchte die allgemeine Lösung in realen produktiven Umgebung kennen.

+0

Skalieren Sie den Prozess, der die Nachrichten aus der Warteschlange nimmt. –

Antwort

3

Die einfache Antwort ist: es kommt darauf an.

Auf Ihre Anforderungen. Was wir nicht wissen können. Sie müssen verstehen, welcher der verschiedenen Ansätze die Unternehmensziele Ihrer Anwendung erfüllt.

Mit anderen Worten: Es kann keine allgemeine Antwort geben. Wenn Sie Klicks auf einer Webseite messen, ist es möglicherweise keine große Sache, eine zu verlieren. Aber wenn wir über eine Bestellung von einem Kunden sprechen, vergessen Sie nie, einen einzigen zu vergessen.

+0

Ok, danke. Um ehrlich zu sein, es ist eine Interviewfrage und ich bin mir nicht sicher über meine Antworten. Wenn MQ zum Entkoppeln mehrerer Systeme verwendet wird, sind Nachrichten wichtig, richtig? In diesem Fall, was ist die detaillierte Lösung, wie zum Beispiel einen Puffer selbst zu implementieren oder in der DB zu speichern? Aber ich denke, das Speichern in DB ist nicht effizient oder? – Jeremy

+0

Wieder kommt es darauf an. Wenn Sie einen In-Memory-Puffer implementieren, können Sie immer noch Ereignisse verlieren, wenn Ihr System abstürzt! Das Schreiben in den persistenten Speicher könnte daher eine bessere Strategie sein, um Datenverluste zu vermeiden. Auf der anderen Seite könnte das bedeuten, dass Sie in Situationen, in denen bereits etwas schief läuft, Last in Ihre Datenbank laden, was Ihre Probleme verschlimmert! – GhostCat

+0

@ Jeremy - du bist gerade in einem Interview? Gut gemacht, mein Herr! –

Verwandte Themen