# zbus-java **Repository Path**: qqeasonchen/zbus-java ## Basic Information - **Project Name**: zbus-java - **Description**: zbus java client - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: https://gitee.com/rushmore/zbus - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2017-07-22 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README /\\\ \/\\\ \/\\\ /\\\\\\\\\\\ \/\\\ /\\\ /\\\ /\\\\\\\\\\ \///////\\\/ \/\\\\\\\\\ \/\\\ \/\\\ \/\\\////// /\\\/ \/\\\////\\\ \/\\\ \/\\\ \/\\\\\\\\\\ /\\\/ \/\\\ \/\\\ \/\\\ \/\\\ \////////\\\ /\\\\\\\\\\\ \/\\\\\\\\\ \//\\\\\\\\\ /\\\\\\\\\\ \/////////// \///////// \///////// \////////// QQ Group: 467741880 # zbus java client zbus strives to make Message Queue and Remote Procedure Call fast, light-weighted and easy to build your own elastic and micro-service oriented architecture to interoperate many different platforms. Simply put, ZBUS = MQ + RPC. zbus has two server implementations, Go and Java versions, and these servers are protocol compatible, however, Go version is strongly recommended and in active development. ## Maven zbus-java has a very few dependencies, simply add the following maven configuration to your project. io.zbus zbus 0.8.2 ## API Demo Only demos the gist of API, more configurable usage calls for your further interest. ### Produce message Broker broker = new Broker("localhost:15555"); Producer p = new Producer(broker); p.declareTopic("hong"); Message msg = new Message(); msg.setTopic("hong"); msg.setBody("hello " + System.currentTimeMillis()); Message res = p.publish(msg); ### Consume message Broker broker = new Broker("localhost:15555"); ConsumerConfig config = new ConsumerConfig(broker); config.setTopic("MyTopic"); config.setMessageHandler(new MessageHandler() { @Override public void handle(Message msg, MqClient client) throws IOException { System.out.println(msg); } }); Consumer consumer = new Consumer(config); consumer.start(); ### RPC client Broker broker = new Broker("localhost:15555"); RpcInvoker rpc = new RpcInvoker(broker, "MyRpc"); //Way 1) Raw request Request req = new Request(); req.setMethod("plus"); req.setParams(new Object[]{1,2}); Response res = rpc.invokeSync(req); System.out.println(res); //asynchronous call rpc.invokeAsync(req, new ResultCallback() { @Override public void onReturn(Response result) { Integer res = (Integer)result.getResult(); System.out.println(res); } }); //Way 2) More abbreviated int result = rpc.invokeSync(Integer.class, "plus", 1, 2); System.out.println(result); //Way 3) Strong typed proxy InterfaceExample api = rpc.createProxy(InterfaceExample.class); RpcTestCases.testDynamicProxy(api); broker.close(); ### RPC service RpcProcessor processor = new RpcProcessor(); processor.addModule(new InterfaceExampleImpl()); Broker broker = new Broker("localhost:15555"); ConsumerConfig config = new ConsumerConfig(); config.setBroker(broker); config.setTopic("MyRpc"); config.setMessageHandler(processor); Consumer consumer = new Consumer(config); consumer.start();