`

【dubbo】基于httpclient实现rpc的思路

阅读更多
今天在看 dubbo http 协议的时候,发现它是使用 jsonrpc 实现的. 当时就在想能否基于 httpclient 实现了?

答案是肯定的。

做法如下:

1.需要为接口实现一个代理类,在代理类中发起 http 请求
2.在发送 http 请求的时候,需要把方法名,参数序列化,放入到 request 的 header 中(我是这么干的)
3.在服务端从 header 中获取方法名和参数,通过反射执行方法,并把结果放入到 response 中
4.客户端接收结果,并将结果转换为对应的类型
1
0
分享到:
评论

相关推荐

    PyDubbo:用于dubbo rpc框架的python客户端

    PyDubbo这是一个python实现的dubbo服务调用的客户端协议支持由于dubbo支持多种协议扩展,目前只开发了dubbo服务的默认协议:dubbo+hessian2的支持其它协议的支持慢慢来吧安装运行环境由于dubbo协议的限制,所以进行...

    Springboot2.X基于可靠消息rabbitmq最终一致性分布式事务+分布式全局唯一ID生成器

     b、quatz调度未实现,这个相当简单,可以通过dubbo等rpc方式、或者httpclient方式进行远程调度,相关代码:  https://download.csdn.net/download/qq_22049773/12540998  c、其他均已实现  d、分布式全局ID...

    java8源码-my-api:各种技术api尝试操作

    是个人基于HttpURLConnection 实现http 请求;Json 主要仿照 开源JSON。当然common也会存放一些其他模块使用的JavaBean、annotation等; api-gateway 这功能貌似比较新颖,采用servlet+spring 方式进行 将 Spring-...

    Springboot2+quartz可视化+logback

    springboot2集成quartz,包括web ui,目前支持的调度接口为httpclient,后期会补充对dubbo等RPC类接口,通过反射机制进行动态调用。

    Jboot微服务框架-其他

     dubbo  grpc  zbus 6、MQ消息队列  rabbitmq  redismq  阿里云商业MQ  activemq  zbus 7、缓存  ehcache  redis  分布式二级缓存ehredis 8、分布式session 9、分布式锁 10、任务调度  cron4j  ...

    java开源包3

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包4

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    JAVA上百实例源码以及开源项目

    百度云盘分享 ... Java实现的FTP连接与数据浏览程序,实现实例化可操作的窗口。  部分源代码摘录:  ftpClient = new FtpClient(); //实例化FtpClient对象  String serverAddr=jtfServer.getText();...

    JAVA上百实例源码以及开源项目源代码

    5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...

    java开源包1

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包11

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包2

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包6

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包5

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包10

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包8

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包7

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包9

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包101

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

Global site tag (gtag.js) - Google Analytics