How to implement an active & standby queue job-processing system in JeroMQ?
Asked Answered
S

1

9

Using ZeroMQ .Context and .Socket instances, I am able to push/pull messages
for example below my code for a Queue like setup:

 ZMQ.Context context = ZMQ.context(1);

 //  Socket to send messages on
 ZMQ.Socket sender = context.socket(ZMQ.PUSH);
 sender.bind("tcp://*:5557");

 // Send messages
 sender.send("0", 0);

 ZMQ.Socket receiver = context.socket(ZMQ.PULL);
 receiver.connect("tcp://localhost:5557");

 // receive messages
 String string = new String(receiver.recv(0)).trim();

My questions are:

Q1: How to implement an active / standby mode in queues?

I mean there will be 2 queues, created for one host and port, if one queue ( the active ) fails, another ( i.e. the standby ) queue, will be started immediately to listen/pull messages.

Any example or guidance to implement it, will be more helpful.

Q2: Is there any built-in Class to do this type of task?

Sedgewinn answered 1/12, 2016 at 11:46 Comment(0)
G
5

you may implement some kind of binary start pattern. your queues need a discovery service (on another pair of sockets) to know about each other's state. if i'm not mistaken, there is no standard feature to make such queues.

Gaughan answered 17/12, 2016 at 18:3 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.