引用圖片:http://iyuan.iteye.com/blog/974040
模型描述:
1.上遊(任務發布)
2.工人(中間,具體工作)
3.下遊(訊號採集或者工作結果收集)
上代碼:
push:
package com.zeromq.test.push_pull;import org.zeromq.ZMQ;/** * @author larry * @email larry.lv.word@gmail.com * @version 2012-6-5 上午11:30:46 */public class push_demo {public static void main(String[] args) {ZMQ.Context context = ZMQ.context(1);ZMQ.Socket sync = context.socket(ZMQ.PUSH);sync.connect("tcp://localhost:5564");sync.send("".getBytes(), 0);int update_nbr;for (update_nbr = 0; update_nbr < 10; update_nbr++) {sync.send("Rhubarb".getBytes(), ZMQ.NOBLOCK);}sync.send("END".getBytes(), 0);}}
pull:
/** * */package com.zeromq.test.push_pull;import org.zeromq.ZMQ;/** * @author larry * @email larry.lv.word@gmail.com * @version 2012-6-5 上午11:37:46 */public class pull_demo {public static void main(String[] args) {ZMQ.Context context = ZMQ.context(1);ZMQ.Socket sync = context.socket(ZMQ.PULL);sync.bind("tcp://*:5564");sync.recv(0);int update_nbr = 0;while (true) {byte[] stringValue = sync.recv(0);String string = new String(stringValue);if (string.equals("END")) {break;}update_nbr++;System.out.println("Received " + update_nbr + " updates. :" + string);}sync.close();context.term();}}