zbus

MQ、RPC、服务总线
授权协议 MIT
开发语言 Java C/C++ PHP Python C# .NET Google Go JavaScript
所属分类 企业应用、 ESB企业服务总线
软件类型 开源软件
地区 国产
投 递 者 薛泰
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

小巧而极速的MQ, RPC实现, 支持HTTP/TCP代理,开放易扩展,多语言支撑微服务,系统总线架构

zbus核心是一个独立实现的小巧极速的消息队列(MQ),支持持久化与内存队列, 支持单播、广播、组播等多种消息通信模式;在MQ之上 zbus完备地支持了RPC服务,RPC支持独立伺服,基于总线两种模式;同时zbus支持代理服务,基于MQ的HttpProxy实现了类Nginx的HTTP代理服务(支持DMZ网络结构),TcpProxy则支持透明的TCP协议代理,可以代理任何基于TCP的协议,比如代理MySQL数据库。

zbus内建分布式高可用(HA),解决单点问题;Java/.NET/JS/C++/PHP等主流语言接入能力为zbus充当SOA服务总线提供跨平台支持;

在设计上,zbus拥抱KISS准则,所有特性浓缩在一个小小的400K左右的jar包中(非常少的依赖);轻量,MQ核心,方便二次开发,zbus为微服务架构、系统整合、弹性计算、消息推送等场景提供开箱即用的功能支持。

ZBUS主要特性:

  • 高速磁盘/内存MQ,支持单播,广播,组播,订阅多种消息模式
  • RPC开箱即用,支持同步异步,动态类代理
  • 多语言客户端,Java/.NET/JavaScript/PHP/Python/C++/Go(服务器)
  • 轻量级,发行大小 ~3M, 核心 ~400K, 极少依赖
  • 高可用无应用故障单点,分布式高可用的内置支持
  • 简洁的协议设计,类HTTP头部扩展协议,长短连接,WebSocket支持
  • 内置监控,不断丰富的监控指标

ZBUS以轻量弹性著称,目前已知的应用主要分布在证券金融行业,在各大券商内部使用,因为开源同时也有不少二次开发定制的项目存在。

ZBUS可以有多种工作角色

  1. MQ服务器
  2. RPC服务器
  3. Proxy HTTP/TCP代理
  4. 服务标准化总线服务器

当你遇到这些相关问题的时候,不妨尝试下zbus,也许你会喜欢呢。

  • 【ZBus系列】分析ZBus源码,思考消息服务框架应该如何设计 消息队列 规则设计 队列消息数据单份,分组通道任意多个 分组通道之内的消费者共享分组读指针,读指针改变影响本分组通道上的所有消费者 分组通道之间的消费者互不影响 分组通道的支持消息过滤,基于消息头部Tag 消息模式 单播 仅一个分组通道,所有的消费者共享一个分组通道,每条消息只送达其中一个消费者 广播 每个消费一个分组通道,每条消息抵

  • 1、ZBusconfig.java, zbus的启动、生产、回调处理消息的方法。 package com.accenture.icc.zbus.config; import java.io.IOException; import java.util.HashMap; import java.util.List; import java.util.Map; import org.slf4j.Lo

  • 简单的记录下,项目中集成zbus的核心部分,做下简单的笔记,有误之处~还请指出 1.安装zbus,默认15555端口 2.客户端(生产者) zbus配置文件: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://

 相关资料
  • Flex提供RPC服务以向客户端提供服务器端数据。 Flex为服务器端数据提供了相当大的控制。 使用Flex RPC服务,我们可以定义要在服务器端执行的用户操作。 Flex RPC Sservices可以与任何服务器端技术集成。 其中一个Flex RPC服务提供内置支持,可以通过线路传输压缩二进制数据,速度非常快。 Flex提供以下三种类型的RPC服务 S.No RPC服务和描述 1 HttpSe

  • JSON RPC 是一种基于 JSON 格式的轻量级的 RPC 协议标准,易于使用和阅读。在 Hyperf 里由 hyperf/json-rpc 组件来实现,可自定义基于 HTTP 协议来传输,或直接基于 TCP 协议来传输。 安装 composer require hyperf/json-rpc 该组件只是 JSON RPC 的协议处理的组件,通常来说,您仍需配合 hyperf/rpc-ser

  • 主要内容:1.RPC 架构,2.同步调用与异步调用,3.流行的 RPC 框架,4.HTTP 服务,5.总结1.RPC 架构 2.同步异步调用 3.流行的 RPC 框架 1.RPC 架构 先说说 RPC 服务的基本架构吧。我们可以很清楚地看到,一个完整的 RPC 架构里面包含了四个核心的组件。 Client Server Client Stub Server Stub(这个Stub大家可以理解为存根) 客户端(Client),服务的调用方。 服务端(Server),真正的服务提供者。 客户端存根,

  • 主要内容:1.RPC 架构,2.同步调用与异步调用,3.流行的 RPC 框架,4.HTTP 服务,5.总结1.RPC 架构 先说说 RPC 服务的基本架构吧。我们可以很清楚地看到,一个完整的 RPC 架构里面包含了四个核心的组件。 Client Server Client Stub Server Stub(这个Stub大家可以理解为存根) 客户端(Client),服务的调用方。 服务端(Server),真正的服务提供者。 客户端存根,存放服务端的地址消息,再将客户端的请求参数打包成网络消息,然后

  • CodeIgniter 的 XML-RPC  类允许你发送请求到另一个服务器, 或者建立一个你自己的XML-RPC服务器来接受请求. 什么是XML-RPC? 这是一个非常简单的两台计算机使用XML通过互联网进行通信的方法. 一台计算机 , 我们称之为 客户端, 发送一个XML-RPC 请求 给另外一台计算机 , 我们称之为 服务器. 当服务器收到请求并加以处理,然后将 结果 返回给客户端. 例如,

  • CodeIgniter 的 XML-RPC 类允许你向另一个服务器发送请求, 或者建立一个你自己的 XML-RPC 服务器来接受请求。 什么是 XML-RPC ? 使用 XML-RPC 类 初始化类 发送 XML-RPC 请求 解释 请求解析 创建一个 XML-RPC 服务器 处理服务器请求 注意 格式化响应 发送错误信息 创建你自己的客户端与服务端 客户端 服务端 尝试一下 在请求参数中使用关联

  • 有人能解释一下新发布的WindowsServiceBus(内部部署,而不是Azure)和NServiceBus之间的区别吗? 寻找详细的答案什么窗口SB可能会丢失,因为我很熟悉NSErviceBus可以做什么: 它是真正的服务总线,而不仅仅是使用队列的消息代理吗? 是否可以支持消息多态?(消息子类化其他消息和支持此层次结构的处理程序 长时间运行的进程和相关性 向外扩展

  • 随着分布式技术和微服务思想流行,技术公司逐步将服务拆分为独立运行的小模块,提高系统整体的健壮性,加快特性的演进速度。微服务通过定义完善的接口进行交互,解耦系统、敏捷迭代、方便服务治理。RPC是目前微服务最广泛的通信方式。然而,众多团队各自研发具备服务治理功能的RPC通信框架,一方面增加开发成本,消耗人力重复造轮子;另一方面不同序列化协议的RPC服务,无法互相通信,影响可用性。因此,通用的RPC通信