Producer and consumer model based on zbus message queue

zubs is a message queue;; ZBUS = MQ + RPC + PROXY supports message queue, publish subscribe, RPC, broker (TCP/HTTP/DMZ)

consumer
ZConsumer.java
package com.gbcom.frame.zbus;

import java.io.IOException;

import org.zbus.broker.Broker;
import org.zbus.broker.ZbusBroker;
import org.zbus.mq.Consumer;
import org.zbus.mq.Consumer.ConsumerHandler;
import org.zbus.mq.server.MqServer;
import org.zbus.mq.server.MqServerConfig;
import org.zbus.net.http.Message;

/**
 * Consumer: embedded zbus server, subscription message processor
 * @author SYZ
 * @date 2016-6-14 02:58:50 PM
 * @version 1.0.0
 * @see com.gbcom.frame.zbus.ZConsumer
 */
public class ZConsumer {

	/**   : (ZConsumer.main)
	 * @param args
	 * @throws Exception
	 */
	public static void main(String[] args) throws Exception {
		try {
			start();
		} catch (IOException e) {
			e.printStackTrace ();
		}
	}
	
	private static void start() throws Exception{
		
		//Embed zbus message server.
		MqServerConfig config = new MqServerConfig();
		config.serverPort = 15555;
		config.storePath = "./store";
		final MqServer server = new MqServer(config);
		server.start();
		
		Broker broker = new ZbusBroker("127.0.0.1:15555"); //SingleBroker
		Consumer consumer = new Consumer(broker, "MyMQ");  
		consumer.start(new ConsumerHandler() {
		    @Override
		    public void handle(Message msg, Consumer consumer) throws IOException {
		        //Message callback processing
		        System.out.println(msg);
		    }
		});
	}

}




Producer

ZProduct.java
package com.gbcom.frame.zbus;

import java.io.IOException;

import org.zbus.broker.Broker;
import org.zbus.broker.ZbusBroker;
import org.zbus.mq.Producer;
import org.zbus.net.http.Message;
/**
 * The zbus server needs to be enabled. . This is the case with message middleware.
 *
 * If zbus is not enabled, it needs to be embedded in the server, such as zconsumer.java
 *
 * @author SYZ
 * @date 2016-8-12 05:38:35 PM
 * @version 1.0.0
 * @see com.gbcom.frame.zbus.ZProduct
 */
public class ZProduct {

	/**: (ZClient.main)
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		try {
			start();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace ();
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace ();
		}
	}
	private static void start() throws IOException, InterruptedException{
		Broker broker = new ZbusBroker("127.0.0.1:15555"); //SingleBroker
//		Broker broker = new ZbusBroker("127.0.0.1:16666;127.0.0.1:16667"); //HaBroker
//		Broker broker = new ZbusBroker("jvm"); //JvmBroker
		
		Producer producer = new Producer(broker, "MyMQ");
		producer.createMQ();//Determine that you need to display the call to create a message queue



		for (int i = 0; i < 10; i++) {
			Message msg = new Message();
			msg.setBody("hello world-"+i);
			Message res = producer.sendSync(msg, 1000);
			System.out.println(res);
			}
		
		broker.close();
		
	}

}

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=326486924&siteId=291194637