如何在 JeroMQ 中实现主备队列作业处理系统?
How to implement an active & standby queue job-processing system in JeroMQ?
使用 ZeroMQ .Context
和 .Socket
实例,我能够 push/pull 消息
例如下面我的队列代码如下设置:
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();
我的问题是:
Q1:如何实现队列主备模式?
我的意思是将为一个主机和端口创建 2 个队列,如果一个队列(活动)发生故障,另一个(即备用)队列将立即启动以发送 listen/pull 消息。
任何实施它的示例或指南都会更有帮助。
Q2:是否有任何内置的Class来完成这类任务?
您可以实施某种 binary start pattern。您的队列需要一个发现服务(在另一对套接字上)来了解彼此的状态。如果我没记错的话,没有标准功能可以创建这样的队列。
使用 ZeroMQ .Context
和 .Socket
实例,我能够 push/pull 消息
例如下面我的队列代码如下设置:
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();
我的问题是:
Q1:如何实现队列主备模式?
我的意思是将为一个主机和端口创建 2 个队列,如果一个队列(活动)发生故障,另一个(即备用)队列将立即启动以发送 listen/pull 消息。
任何实施它的示例或指南都会更有帮助。
Q2:是否有任何内置的Class来完成这类任务?
您可以实施某种 binary start pattern。您的队列需要一个发现服务(在另一对套接字上)来了解彼此的状态。如果我没记错的话,没有标准功能可以创建这样的队列。