Frage

Morgen werde ich meine Gründe vorstelle, für die Wahl eines prozessinternen Nachrichtenwarteschlange Implementierung, und ich bin nicht in der Lage meine Argumentation zu artikulieren. Meine Mitgestalter schlagen vor, dass wir eine einfache asynchrone Warteschlange nur eine einfache Liste der Aufträge mit implementieren und einen Mutex Zugang zu kontrollieren, wo ich ActiveMQ in Embedded-Modus hindeutet. Ich habe persönlich sehr beeindruckt von ActiveMQ, und ich möchte einige gute, solide Argumente haben, um meinen Darm Eindruck zu sichern.

Wenn es darauf ankommt, die Anwendung ist im Grunde ein Produzent / n Verbraucher mit Priorität und geben Sie spezifische Informationen für die einzelnen Aufträge verarbeitet werden.

Es ist erwähnenswert, dass so weit die Verwaltbarkeit und Erweiterbarkeit der Lösung haben starke Argumente nicht gewesen. Ich würde es lieben, wenn jemand meinen Argumenten mehr Druck geben kann. Kann das Forum mir dabei helfen?

War es hilfreich?

Lösung

Ihre Mitarbeiter Argumente sind nicht ohne Verdienst. ActiveMQ zu dem Projekt hinzuzufügen, ist noch eine weitere Abhängigkeit hinzufügen. Es wird wahrscheinlich noch komplizierter zu bedienen sein, und es wird eine größere Grundfläche als eine individuelle Lösung. Auch, weil Sie es sind die Annahme, es wird wahrscheinlich in Ihrer Verantwortung, sich gehen zu halten und weiter arbeiten reibungslos -. Bugs und alle

Wie gesagt, ActiveMQ (und andere Warteschlangen) werden die Dinge tun, die Sie selbst schreiben konnte, aber könnte sich als ein Schmerz sein. Die Unterstützung der gesamten JMS API ist einer von ihnen (obwohl ich bin vorausgesetzt, Sie Java verwenden ... wenn Sie es nicht sind, dann ist dieser Punkt nicht gültig). überzählige Nachrichten auf der Festplatte in hohen Speichern Situationen der Serialisierung ist eine andere. Durable Abonnenten und Nachrichten Selektoren sind ein paar andere Dinge, die den Sinn kommen. Meistens Glocken-und-Pfeifen Art der Sache für Ihre Bedürfnisse wie es scheint, aber sie werden sehr wichtig für eine sichere Nachrichtenübermittlung.

Was auch immer Sie sich entscheiden, kapseln die endgültige Auswahl der Nachrichten-Broker von der Client-Code entfernt, um es einfacher zu wechseln zu machen.

Andere Tipps

Wenn Verwaltbarkeit und Erweiterbarkeit sind nicht hoch Prioritäten dann muss ich fragen, was Ihre Gründe sind für den Wunsch, eine überschaubare Nachrichtenwarteschlange zu benutzen? Vielleicht sind Ihre Kollegen richtig, und Sie wirklich das zusätzliche Feature-Set nicht brauchen?

Nicht Gleichzeitigkeit Code in seltsamen Grenzfällen zu debuggen hat, ist ein großer Vorteil. Ich weiß nicht, wie wichtig diese Struktur als Teil Ihres gesamten Projektes ist, aber wenn die Nachrichten-Warteschlange ein großer Teil des Projekts ist, dann können Sie ernten enorme Vorteile durch eine Implementierung mit, dass jemand anderes geschrieben hat, bereits ausgetestet, und wird für Sie halten. Wenn es nur einige einmalige Teil eines unwichtigen Subsystem, es ist wahrscheinlich keine Rolle, was Sie am Ende tun. Aber wenn es wichtig ist, würde ich viel lieber einen Fehlerbericht als meine Zeit damit verbringen, Concurrency Code debuggen (Ich fange schon in Angst zurückschrecken!).

Die kurze Version: Lassen Sie sich nicht Stop NIH-Syndrom Sie verwendet jemand andere Arbeit Ihre Arbeit schneller zu erledigen, besser und billiger. Aber nicht baut einen Berg aus einem Maulwurfshügel, auch nicht.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top