首页 > 其他分享 >HSF转dubbo

HSF转dubbo

时间:2022-08-18 11:01:45浏览次数:64  
标签:dubbo HSF 注册 rpc pandora provider consumer

背景说明

  • HSF是闭源的,考虑用开源产品(dubbo)进行替代。
  • 如果是考虑要从一个rpc框架转成另一个,或许也可以参考本文。
  • 主要思想:进行rpc的发布、订阅操作,其实是集中在2个类里面(provider/consumer),而不是散落在每个实现类里面。而替换成其它rpc时候,就是针对父类(providerFather/consumerFather)进行适配即可。

架构对比


可行性分析

  • HSF、dubbo都出自阿里(只不过后来dubbo开源了,捐给了apache)。它们的开发设计团队好像是不同的,但它们设计思想很类似;
  • 这2种rpc都是基于spring的吧?(意思它们没有依赖springboot,或者其它什么东西);
  • 这2种方式都是通过发布订阅来实现rpc的,都可以使用xml配置,api调用方式。(dubbo还有注解方式,hsf好像没有)

源项目(hsf)说明

  • 1,本地使用,是用alitomcat+pandora的方式。
  • 2,具体版本是:taobao-tomcat-7.0.59、edas-lightweight-server-1.0.0、pandora不记得是哪个版本了,反正不是最新的。(感觉pandora跟alitomcat有对应关系,不然会注册不到注册中心)
  • 3,代码中自定义了注解,集中处理provider、consumer,会把provider注册到注册中心,把consumer缓存到map,调用的时候通过getObject的方式,创建代理对象获取远程结果。整体来讲,用到了继承+切面,这些思想,通过少量侵入,实现了rpc调用

具体实操

  • 1,引入包。需要引入dubbo的包,还有dubbo连edas的包。具体就不列举了,如果注册中心是其它,需要对应引入其它包;
  • 2,通过适配的方式,写关于dubbo的provider/consumer初始化类
  • 3,处理一些异常问题

中间遇到的一些问题

  • 1,dubbo,provider、consumer都需要设置应用名称。如果一个同时启provider、consumer会有点问题,可以用代码解决;
  • 2,注册到注册中心(edas)时候,如果长度过长,超过2048,会注册不进去。这个应该可以通过调整pandora版本解决(具体看pandora 容器版本说明),也可以换注册中心解决;
  • 3,dubbo远程调用返回对象时,对象需要可序列号,这个可以通过改代码解决。

参考资料

标签:dubbo,HSF,注册,rpc,pandora,provider,consumer
From: https://www.cnblogs.com/ben2ben/p/16597938.html

相关文章

  • Linux下搭建ZooKeeper集群并整合Dubbo配置
    1.环境说明Zookeeper不仅可以单机提供服务,同时也支持多机组成集群来提供服务,实际上Zookeeper还支持另外一种伪集群的方式,也就是可以在一台物理机上运行多个Zookeeper......
  • Dubbo源码(八) - 负载均衡
    前言本文基于Dubbo2.6.x版本,中文注释版源码已上传github:xiaoguyu/dubbo负载均衡,英文名称为LoadBalance,其含义就是指将负载(工作任务)进行平衡、分摊到多个操作单元上进行......
  • 一文搞懂 Dubbo 入门理论
    RPC简介 ● RPC,RemoteProcedureCall,远程过程调用,是一种跨系统间服务调用的协议或框架 ● 在很多企业,在内部存在大量的业务子系统,这些子系统都承担独立的业务功......