同步操作将从 开放金融技术/zbus 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
/\\\
\/\\\
\/\\\
/\\\\\\\\\\\ \/\\\ /\\\ /\\\ /\\\\\\\\\\
\///////\\\/ \/\\\\\\\\\ \/\\\ \/\\\ \/\\\//////
/\\\/ \/\\\////\\\ \/\\\ \/\\\ \/\\\\\\\\\\
/\\\/ \/\\\ \/\\\ \/\\\ \/\\\ \////////\\\
/\\\\\\\\\\\ \/\\\\\\\\\ \//\\\\\\\\\ /\\\\\\\\\\
\/////////// \///////// \///////// \////////// QQ Group: 467741880
zbus strives to make Message Queue and Remote Procedure Call fast, light-weighted and easy to build your own service-oriented architecture for many different platforms. Simply put, zbus = mq + rpc.
zbus carefully designed on its protocol and components to embrace KISS(Keep It Simple and Stupid) principle, but in all it delivers power and elasticity.
In zbus-dist directory, just run zbus.bat/sh, JDK6+ required.
Incase you may interest in the client projects, go to zbus source root directory
git submodule update --init --recursive
Maven
<dependency>
<groupId>io.zbus</groupId>
<artifactId>zbus</artifactId>
<version>0.9.0-SNAPSHOT</version>
</dependency>
Fast performance test (Apache Benchmark)
Declare MQ: http://localhost:15555/declare/MyTopic
Produce
ab -k -c 32 -n 1000000 http://localhost:15555/produce/MyTopic
Consume
ab -k -c 32 -n 1000000 http://localhost:15555/consume/MyTopic
Single Mac i7 box with SSD
Produce: ~80,000/s
Consume: ~90,000/s
RPC InProc: ~60,000/s
In the monitor page http://localhost:15555 , as you can see, there are two sections
Tracked Servers
List all the MqServer joined.
zbus instance by default plays the role of both Tracker and MqServer, and if tracker mode enabled, the zbus instance is able to accept other zbus instances to join as tracked server. And the tracked items such topics are aggregated for viewing.
To join zbus tracker(s), just start zbus with --tracker={address_list}
TopicTable
List all Topic avaiable for the tracked MqServers
Including important fields as Topic name, message depth in disk, consume-groups, consumer online, message consume filter.
For more detailed explanation of these glossaries please refer to components section.
In zbus, RPC is implemented via MQ, a MQ can be a message container for the RPC service, and internally it contains a mask to indicate the MQ's purpose of RPC.
The monitor page keeps evolving, more and more items will be added in.
The above figure shows the 3 major distributed components--broker, producer and consumer
Broker
Single mode, Broker is the zbus instance(MqServer), stores messages produced, delivers messages to consumers.
HA mode, Broker is an abstracted server(Trackers + MqServers), capable of failover and smart algorithms on selection of MqServer, but still just work like a single MqServer.
Producer
Producer publish message to Broker, capable of customerize the selection algorithm based on the application's will.
Consumer
Consumer takes message from Broker, capable of relocating consuming position based on message offset.
Topic
Topic is a message queue identity, message with same topic fall into the same message store queue.
ConsumeGroup
ConsumeGroup controls the consumer behavior, it stores latest consumed position of the topic, and filter out message if ConsumeGroup's filter is set. ConsumeGroup is super light-weighted in zbus, it is just like a pointer to the message queue, with carefully craft on ConsumeGroup, applications can form unicast, multicast, and broadcast messaging models.
Broker Design
DiskQueue Design
RPC Design
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。