Ist es angemessen, message queues, die für synchrone rpc-Aufrufe via ajax
Ich habe eine web-Anwendung, die verwendet das jquery autocomplete-plugin, das im wesentlichen sendet per ajax eine Anfrage mit text, der eingegeben wurde, in ein Textfeld auf unseren web-server, sobald der web-server empfängt diese Anfrage, es reichte dann aus, um rabbitmq.
Ich weiß, dass wir tun, um die Vorteile von messaging verwenden, aber es scheint, wie es zu benutzen für die Sperrung rpc-Aufrufe ist ein Missbrauch und dass es so etwas wie WCF ist weit mehr zweckmäßig, in diesem Fall, ist dies der Fall oder ist es als akzeptabel angesehen Architektur?
- Offensichtlich hängt es von Ihrer Anwendung verwenden, können Sie die Warteschlange für die RPC-Aufrufe,aber ich denke, es ist nicht seine Natürliche verwendet. Um Ihnen zu helfen, ich habe zwei Fragen: 1.Warum verwenden Sie synchrone Aufrufe? 2.Sie haben ein problem mit Ihrer aktuellen Anwendung? Wie auch immer,ich weiß nicht, in welcher Sprache Sie die Anwendung entwickeln, aber ich denke, Sie könnte verwenden Sie die asynchrone Aufrufe mit RabbitMQ und verwenden einige Technologien wie Spring DeferredResult, um die Ergebnisse aus der Warteschlange. Ich mag es nicht so sehr die synchrone Aufrufe, weil Sie den thread blockiert (zum Beispiel während der DB-Suche) nutzlos.
- 1. wir haben synchrone Aufrufe für die autocomplete-plugin, Sie haben müssen eine Antwort für die Anfrage 2. kein Problem, ich denke, es ist ein Missbrauch von messaging-in diesem Fall-und ich will es ändern und ich bin auf der Suche nach beweisen zu unterstützen, dies zu ändern.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist möglich, ausführen von RPC synchrone Anfragen mit RabbitMQ. Hier es ist sehr gut erklärt, mit seinen Nachteil im Lieferumfang enthalten! So ist es als eine akzeptable Architektur. Entmutigt, aber akzeptabel, wenn die synchrone Antwort erforderlich.
Als möglicher Zähler-Effekt ist, dass das hinzufügen von RabbitMQ in der Mitte, fügen Sie einige Wartezeit an der Lösung.
Jedoch haben Sie die Möglichkeit, sich in Bezug auf Zuverlässigkeit, Flexibilität, Skalierbarkeit,...
Welchen Vorteil würde Sie von ihm bekommen? Und in fairness, wenn Sie die Nachricht in der Warteschlange wie ist synchron? es sei denn, der gleiche Prozess, platziert die Nachricht in der Warteschlange ist das eine, es zu entfernen, aber das ist ziemlich nutzlos Nein?
Nun, wenn alles, was Sie tun möchten ist, legen Sie die Nachricht in der Warteschlange und verarbeiten Sie später, ist großartig.
Auch die Tatsache, dass Sie hatte, WCF, um die Mischung ist IMHO ein symptom, dass etwas vielleicht nicht deutlich genug. Könnten Sie WCF als API gateway und verwenden Sie zum schreiben der Nachricht an die Warteschlange, so ist dies nicht wirklich zu WCF oder Warteschlangen, aber mehr wie sync vs. async.
Den Weg, Sie setzen Ihre Ideen, sieht nicht gut für mich.