ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

HSF转dubbo

2022-08-18 11:01:47  阅读:194  来源: 互联网

标签: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
来源: https://www.cnblogs.com/ben2ben/p/16597938.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有