博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
NettyClient端调用remote service的方式
阅读量:6552 次
发布时间:2019-06-24

本文共 1114 字,大约阅读时间需要 3 分钟。

使用netty开发rpc的话,对于client端来说,面临的一个问题就是client如何方便地对远程服务进行调用。java的rmi通过代理模式给了很好的实例,通过代理,使得调用远程服务像调用本地服务一样,对使用者来说,非常简便。对于发布的服务,使用java的接口暴露给使用者,使用者引入该服务接口,然后配置接口。这里简述了几种具体的调用方式。

不使用ioc的方式

public void proxyDemo(){        HelloService helloService = client.rpcProxy(HelloService.class, Pair.of(500L, TimeUnit.MILLISECONDS));        System.out.println(helloService.say("proxy demo"));    }

这个是最直接的使用方式,通过jdk的proxy返回代理类,然后直接调用。不过,一般工程里头涉及多次调用的话,每次new一个代理类比较浪费,可以考虑集成ioc容器。以下几种就是使用spring的调用方式。

java config方式

@Bean    public HelloService buildHelloService(RpcProxyFactory rpcProxyFactory){        return rpcProxyFactory.proxyBean(HelloService.class,100/*timeout*/);    }

好处是,可以直接共用service-api的接口,不好的是java config稍微不如xml直观,不过适应就好

xml方式

com.codecraft.rpc.service.demo.HelloService
200

这种方式就是配置感觉略微复杂点,不过还可以接受,具体可参照

自定义schema的xml

参照dubbo的方式,自定义schema,,这种方式是使用简单,但是扩展spring的xsd略微复杂。

client再次定义接口

使用spring的scanner的方式,client端再次写接口添加注解,然后client端扫描装配,重复定义,不建议用,具体可参照

参考

  • (DubboBeanDefinitionParser#parse)

转载地址:http://exnco.baihongyu.com/

你可能感兴趣的文章
Trafficserver Cluster模式
查看>>
亚马逊推出 Blox,用于 EC2 容器服务的开源工具集合
查看>>
SSDB 数据库的图形界面管理工具发布了!
查看>>
Linux:在中国没有真正的新闻
查看>>
Spring代码分析一:加载与初始化
查看>>
在Linux上配置unixODBC和FreeTDS访问MS SQL Server
查看>>
Windows 7 32 上 selenium 2+sikuli解决swfupload类型上传插件
查看>>
Spring boot学习二
查看>>
android4.1.1 Settings WIFI模块浅析
查看>>
bi business inteligence
查看>>
php 和redis
查看>>
计算机代数系统(free!GPL)Yacas
查看>>
Spring系列之-Spring IOC容器设计:依赖注入设计
查看>>
360安全浏览器中iframe顶部会产生多余空白
查看>>
mysql sql php 参数化查询
查看>>
Thrift0.9.2 安装
查看>>
Maven使用大全
查看>>
linux 下添加一个不能登录的用户
查看>>
四周第三次课(2月28日)
查看>>
除了游戏和医疗,腾讯区块链还准备做什么?
查看>>