Domanda

Sto usando il rabbrittemplate di Sprin Amqp per inviare e ricevere un messaggio tramite Rabbitmq.Sono in grado di inviare e ricevere messaggi, comunque, voglio allegare la priorità con il messaggio.

Ad esempio, se sto spingendo 1000 messaggi e diciamo che i messaggi numerici dispari hanno priorità 1, e anche i messaggi numero hanno priorità 0, e poi sto iniziando il mio consumatore, il consumatore dovrebbe ricevere prima i messaggi di numero dispari, quindiMessaggi numerici.

Ecco il mio codice: Produttore:

public void sendMessage(int i) throws IOException {
    Record r = new Record();
    r.setFrom((i + 1));
    r.setTo("infoimage");
    r.setMessage("Hi Pritish.");
    MessageProperties prop = new MessageProperties();
    prop.setPriority(i%2);
    byte[] rByte = serialize(r);
    Message m = new Message(rByte, prop);
    rabbitTemplate.convertAndSend(queueName, m);
}
.

Consumatore:

public MessageListener exampleListener() {
    return new MessageListener() {
        public void onMessage(Message message) {
     //do some job
     }
.

}; }

Sto facendo qualcosa di sbagliato?Qualcuno può aiutarmi a risolvere questo?

È stato utile?

Soluzione

Prima della versione 3.5.0, Rabbitmq non supporta la priorità fuori dalla scatola .

C'è un plugin , però.

È inoltre possibile simulare la priorità utilizzando più code, ma funziona solo se il numero di messaggi ad alta priorità è piccolo, rispetto alla bassa priorità.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top