zbus调用rpc之后,main方法执行完毕后,并没有自动退出时怎么回事?
zbus调用rpc之后,main方法执行完毕后,并没有自动退出时怎么回事?
package org.zbus.rpc;
import java.util.Arrays;
import java.util.Random;
import org.zbus.client.Broker;
import org.zbus.client.broker.SingleBroker;
import org.zbus.client.broker.SingleBrokerConfig;
import org.zbus.client.rpc.RpcConfig;
import org.zbus.client.rpc.RpcProxy;
import org.zbus.rpc.biz.Interface;
import org.zbus.rpc.biz.User;
/**
* 这边是调用的方法!测试通过!
* @author Administrator
*
*/
public class RpcExample {
public static User getUser(String name) {
User user = new User();
user.setName(name);
user.setPassword("password" + System.currentTimeMillis());
user.setAge(new Random().nextInt(100));
user.setItem("item_1");
user.setRoles(Arrays.asList("admin", "common"));
return user;
}
public static void main(String[] args) throws Exception {
// 1)创建Broker代表
SingleBrokerConfig config = new SingleBrokerConfig();
config.setBrokerAddress("127.0.0.1:15555");
Broker broker = new SingleBroker(config);
RpcConfig rpcConfig = new RpcConfig();
rpcConfig.setBroker(broker);
rpcConfig.setMq("MyRpc");
Interface hello = RpcProxy.getService(Interface.class, rpcConfig);
Object[] res = hello.objectArray();
for (Object obj : res) {
System.out.println(obj);
}
Object[] array = new Object[] { getUser("rushmore"), "hong", true, 1,
String.class };
int saved = hello.saveObjectArray(array);
System.out.println(saved);
Class<?> ret = hello.classTest(String.class);
System.out.println(ret);
broker.destroy();
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
顶少帮主......
@kobe_gino @wangmj
请查看最新5.2.0-SNAPSHOT, 已经支持清除内部线程退出main
@wangmj ,同时支持Producer主动创建MQ
http://git.oschina.net/rushmore/zbus/blob/master/src/test/java/org/zbus/PubExample.java
设计成这样的,NIO下面很多线程连接池,默认没干掉,没有netty所谓的shutdownGracefully:)
咨询了
@少帮主 ,就是这样设计的。提高生产力,相当于连接池的功能。
回复
@kobe_gino 5.2.0 版本我会把关闭底层线程和连接池的API暴露出来,有点类似netty的shutdownGracefully, 到时候就不会有类似的疑惑,现在的版本不会有链接泄露问题(当然你每个调用方法不应该去初始化Broker这样的重对象)
是不是长连接了?????