基于QyMsg 传输协议构建的轻量Rpc框架
- 在mvn官网 搜索 qyrpc
- 引入最新版本的 mvn坐标 到你的项目中
<!-- https://mvnrepository.com/artifact/top.yqingyu/QyRpc -->
<dependency>
<groupId>top.yqingyu</groupId>
<artifactId>QyRpc</artifactId>
<version>1.9.7</version>
</dependency>
1、创建 服务端
import top.yqingyu.rpc.annontation.QyRpcProducer;
import top.yqingyu.rpc.producer.Producer;
@QyRpcProducer
public class A {
public static void main(String[] args) throws Exception {
Producer producer = Producer.Builder.newBuilder()
.port(4737)
.build();
producer.start();
producer.register(new A());
Thread.sleep(9000000);
}
public String aaaa(String aa) {
System.out.println("你好呀" + aa);
return aa + "说:小苏**蛋";
}
public void bbbb(String cc) {
System.out.println(cc + "远程来访");
throw new RuntimeException("红温模式。。。。。。。。。。。。。。。。。。。。。。。。。");
}
}
2、创建 消费端
import lombok.extern.slf4j.Slf4j;
import top.yqingyu.qymsg.netty.ConnectionConfig;
import top.yqingyu.qyws.modules.web.service.ViewNumService;
import top.yqingyu.rpc.consumer.Consumer;
import top.yqingyu.rpc.consumer.ConsumerHolderContext;
@Slf4j
public class b {
public static void main(String[] args) throws Throwable {
ConsumerHolderContext consumerHolderContext = new ConsumerHolderContext();
ConnectionConfig build = new ConnectionConfig.Builder()
.port(4737)
.build();
Consumer consumer = Consumer.create(build, consumerHolderContext);
A proxy = consumerHolderContext.getProxy(consumer.getName(), A.class);
proxy.bbbb("轻语");
// remoteHandle(consumerHolderContext, consumer);
}
public static void remoteHandle(ConsumerHolderContext consumerHolderContext, Consumer consumer) {
ViewNumService proxy = consumerHolderContext.getProxy(consumer.getName(), ViewNumService.class);
log.info(proxy.toString());
consumerHolderContext.setLinkId("session5");
log.info(proxy.getViewNum());
consumerHolderContext.setLinkId("session2");
log.info(proxy.getViewNum());
for (int i = 0; i < 10; i++) {
new Thread(() -> {
try {
log.info("{}", proxy.getIpInfo("96.201.45.89"));
} catch (Exception e) {
log.error("", e);
}
}).start();
}
}
}
- Fork 本仓库
- 新建 feature_xxx 分支
- 提交代码
- 新建 Pull Request