`
assertmyself
  • 浏览: 29568 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类
最新评论

基于zbus消息队列的 生产者和消费者模型

阅读更多
zubs是一个消息队列;; ZBUS = MQ + RPC + PROXY  支持消息队列, 发布订阅, RPC, 代理(TCP/HTTP/DMZ)

消费者
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;

/**
 * 消费者:嵌入zbus服务器,订阅消息处理器
 * @author SYZ
 * @date 2016-6-14 下午02:58:50
 * @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{
		
		//嵌入zbus消息服务器。
		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 { 
		        //消息回调处理
		        System.out.println(msg);
		    }
		}); 
	}

}




生产者

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;
/**
 * 需要开启 zbus服务器。。消息中间件都是这样。
 * 
 * 如果不开启zbus 需要嵌入到服务器中个,例如  zconsumer.java中 
 * 
 * @author SYZ
 * @date 2016-8-12 下午05:38:35
 * @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();//确定为创建消息队列需要显示调用



		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();
		
	}

}

分享到:
评论

相关推荐

    ZBus消息中间件

    4. **连接与测试**:在客户端应用中接入ZBus SDK,编写生产者和消费者代码,进行消息发送和接收测试。 ### 四、ZBus应用场景 ZBus广泛应用于各种分布式系统中,如: 1. **微服务间通信**:作为微服务架构中的消息...

    zbus消息服务框架 v1.0.0.zip

    对于毕业设计或实际项目,可以参考已有的示例来快速上手,理解如何创建消息生产者和消费者,以及如何定义和处理各种消息类型。同时,由于提供了源代码,开发者还可以根据项目需求对其进行二次开发,以满足特定的功能...

    zbus消息服务框架 v1.0.0

    为您提供zbus消息服务框架下载,zbus核心是一个独立实现的小巧极速的消息队列(MQ),支持持久化与内存队列, 支持单播、广播、组播等多种消息通信模式;在MQ之上zbus完备地支持了RPC服务,RPC支持独立伺服,基于...

    zbus-master.zip

    zbus的消息队列支持发布/订阅模式和点对点模式,允许消息生产者与消费者之间进行非阻塞的通信,从而降低系统的耦合度,提升系统的可扩展性。同时,zbus还提供了消息确认机制,确保消息的可靠传递,避免数据丢失。 ...

    zbus消息服务框架-其他

    zbus核心是一个独立实现的小巧极速的消息队列(MQ),支持持久化与内存队列, 支持单播、广播、组播等多种消息通信模式;在MQ之上zbus完备地支持了RPC服务,RPC支持独立伺服,基于总线两种模式;同时zbus支持代理...

    浏览器和节点的 zbus java脚本客户端.js

    它基于发布/订阅模式,支持主题订阅和点对点通信,确保了消息的可靠传输,同时具备高吞吐量和低延迟的特性。Zbus不仅适用于微服务架构,也适合传统的服务间通信场景。 **二、JavaScript客户端的使用** 1. **在...

    基于Java的高性能、低时延、高可用zbus服务总线设计源码

    该项目是一款基于Java的高性能、低时延、高可用zbus服务总线设计源码,包含198个文件,涵盖152个Java源文件、...该系统专注于RPC和消息队列服务,适用于构建轻量级服务总线架构,满足高效数据处理和系统间通信的需求。

    基于matlab隐式Zbus高斯法配电网潮流计算

    【基于matlab隐式Zbus高斯法配电网潮流计算】是电力系统分析中的一个重要课题,主要用于求解电力网络在给定负荷和电源条件下的电压、电流分布情况。这一算法适用于本科和硕士级别的教研学习,它利用MATLAB的计算能力...

    gaussppg.zip_amp_zbus_zip

    Dynamic ZBUS”表明这个压缩包可能包含与电力系统分析相关的MATLAB代码,特别是涉及到ZBUS(Z-Bus)模型的修改和动态模拟。AMP在这里可能是Amplifier(放大器)的缩写,但在电力系统上下文中,它可能指的是增益或...

    zbus.zip_zbus_zip

    总结来说,"zbus.zip"包含了一个MATLAB实现的ZBUS算法,可能涉及特定领域的数学模型或问题解决方案。`zbus.m`文件是算法的源代码,通过阅读和理解这个文件,我们可以学习到ZBUS算法的工作原理。同时,`license.txt`...

    基于Python实现的zbus Python客户端设计源码

    该项目为基于Python实现的zbus客户端设计源码,包含22个文件,包括16个Python源代码文件、1个Git忽略文件、1个许可协议文件、1个Markdown文件、1个HTML文件、1个配置文件、1个批处理文件。项目旨在为用户提供zbus的...

    分布式 Javaweb 快速开发框架 Lambkit

    实现了多种应用功能:微服务架构、基于zbus或motan的RPC框架、用户与权限管理、基于Redis的分布式session技术、基于zbus的消息框架、E-Mail后台发送技术、后台接口展示技术、分布式节点动态管理、自定义反向代理。...

    PSA-Unit-1_zbus_psa_

    首先,Z Bus(阻抗矩阵总线)是电力系统的一种数学模型,它基于网络的阻抗表示。在Z Bus模型中,电力系统的每一个节点被看作是一个电压源,其内部阻抗由节点连接的线路和设备的阻抗组成。这种方法允许我们计算出节点...

    【电路】基于matlab隐式Zbus高斯法配电网潮流计算 上传.zip

    1.版本:matlab2014/2019a,内含运行结果,不会运行可私信 2.领域:智能优化算法、神经网络预测、信号处理、元胞自动机、图像...5.博客介绍:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可si信

    ZYbus:使用直接法的电力系统的 Zbus 和 Ybus-matlab开发

    使用直接法的电力系统的 Zbus 和 Ybus

    Zbus Building Algorithm:直接计算电力系统的Zbus-matlab开发

    文件“data”中的每一行都有以下记录: 总线 1 总线 2 电阻抗其中 Bus1 和 Bus2 是所考虑的总线的总线编号,接下来的两个条目是它们之间的电阻和电抗。 警告: 任何分配了总线编号 = 1 的总线,必须连接到参考 (0)

    ZBus - message bus for PHP apps-开源

    ZBus-PHP应用程序的消息总线,管理应用程序流和插件之间的API消息传递。

    直接法电力系统的Zbus和Ybus Matlab代码.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码...4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

Global site tag (gtag.js) - Google Analytics