基于java AIO实现的RPC调用框架
public static void main(String[] args) throws Exception {
new FastRpcServer()
.threadSize(20)
.register("test", new TestService())
.bind(4567)
.start();
}
public class TestService implements ITestService {
private final Logger log = LoggerFactory.getLogger(getClass());
@Override
public String say(String what) {
String result = "say " + what;
log.debug(result);
return result;
}
@Override
public String name() {
log.debug("call name");
return "call name";
}
@Override
public void ok(String ok) {
log.debug("call ok");
log.debug("param:{}", ok);
}
@Override
public void none() {
log.debug("call none");
}
@Override
public User doUser(User user) {
log.debug("收到user:" + user);
user.setAge(user.getAge() - 1);
user.setName("hello " + user.getName());
user.setSex(!user.isSex());
return user;
}
}
public static void main(String[] args) {
try(IClient client = new FastRpcClient()) {
client.connect(new InetSocketAddress("127.0.0.1", 4567));
ITestService service = client.getService("test", ITestService.class);
String say = service.say("Hello!");
System.out.println(say);
} catch (Exception e) {
e.printStackTrace();
}
}
public interface ITestService {
String say(String what);
String name();
void ok(String ok);
void none();
User doUser(User user);
}
<dependency>
<groupId>com.github.sd4324530</groupId>
<artifactId>fastrpc-server</artifactId>
<version>0.1</version>
</dependency>
<dependency>
<groupId>com.github.sd4324530</groupId>
<artifactId>fastrpc-client</artifactId>
<version>0.1</version>
</dependency>