Question

J'ai besoin d'un service WCF avec 3 ordinateurs d'extrémité

  1. Élevé
  2. normal
  3. faible

La plupart des messages passeront par les points d'extrémité normal et bas. Si Message sur Haut apparaît, il doit être traité le plus rapidement possible.

Est-ce que quelqu'un sait comment faire ???

Était-ce utile?

La solution

Le moyen le plus simple auquel je puisse penser serait de déployer votre service deux fois: un avec les terminaux bas / moyen et ensuite une instance complètement différente avec le terminal haut. Comme Endian l’a dit dans sa réponse (pour laquelle j’ai voté pour BTW), vous pouvez les séparer physiquement, mais vous pouvez également les faire fonctionner. sur la même boîte est vous qui deux instances en utilisant des ports différents. C’est ce que je ferais (ou VRAIMENT pour) si je devais le faire.

Votre autre option (peu attrayante) consiste à créer un canal personnalisé capable de gérer les messages et de les placer dans un "VIP" distinct. ligne, et un comportement d’opération correspondant pouvant s’extraire du symbole "VIP". ligne lorsque l'opération de service est prête à recevoir un message. Cela ne vous rapporte pas vraiment la première option, car vous ne devez vous assurer que votre service ne fonctionne que dans un seul et même ensemble. d'instances de service. Je suppose que dans votre situation, cela ne vous rapporte pas beaucoup.

Dans la mesure où l’arrêt et le redémarrage du service sont une demande de priorité supérieure, il existe des dragons. Je l'éviterais si possible. Si ce n'est pas le cas, vous pouvez envisager de créer votre service en tant que flux de travail WF et d'utiliser certaines de ses fonctionnalités de démarrage / arrêt de processus, mais vous aurez toujours besoin d'un canal personnalisé et d'un comportement personnalisé pour que cela fonctionne. À ce stade, pensez à BizTalk.

Autres conseils

Vous devriez jeter un coup d’œil à cette superbe série en deux parties de Michele Leroux Bustamante dans MSDN Magazine:

Construction d'un routeur WCF, première partie et Construction d'un routeur WCF, partie 2

La première partie, en particulier, vous intéresserait:

  

Parfois, il est utile de présenter un   service intermédiaire ou de routeur entre   un client et un service cible pour   recevoir des messages qui circulent entre   eux et effectuer des activités supplémentaires   comme la journalisation, le routage prioritaire ,   routage en ligne / hors ligne, charge   équilibrage, ou pour introduire une sécurité   frontière. Quand un tel intermédiaire   le service est introduit, il devient   nécessaire de peaufiner certains adressage et   comportements de filtrage des messages à   accueillir.

[soulignement ajouté]

Elle a également le code source associé disponible sur elle blog .

Pourquoi ne pas exécuter deux processus d'extrémité distincts, un pour faible / normal et un autre pour élevé. Vous pouvez même le localiser sur du matériel séparé (meilleur?) Si vous en avez la capacité. Sinon, si vous devez le faire en un seul processus, une file d’attente prioritaire me semble tout ce dont vous aurez besoin.

Je suppose que vous devrez mettre en œuvre cette priorité vous-même.

Si une priorité élevée arrive, vous devrez tout arrêter (enregistrer son état ou quelque chose) et commencer à faire ce qui doit être fait.

juste une pensée

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top