采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
我想找个支持Dubbo的网关的开源项目研究一下底层的实现方式, 有什么好的推荐吗?
目前没有什么特别好的可以借鉴,我们也是自主开发的一套内容。 简单点讲你可以理解为有一层Controller接收HTTP请求, 然后Controller后面集成了Dubbo的consumer,之后讲数据封装转发至provider。
GenericService目前我们已经几乎不用了,问题会比较多,如果要实现网关,建议直接使用泛型就可以了
GenericService有哪些问题? 能举例说说吗 我们目前的网关是强依赖后端的API包, 每次改接口就要重启网关. 不知道你说直接使用的 泛型 是什么意思? 对于网关的设计你们的实现思路能分享吗?
GenericService在Dubbo后期版本中已经属于过时的API了。 另外就是GenericService其实就是相当于Map, 网络传输使用Map传递有什么缺点,GenericService就有什么缺点。泛型就很简单,比如你定义一个Result的顶级对象, 然后里面用一个泛型的Data存储数据,这样你的所有传输都是Result,需要转成什么类型就用泛型解决就可以了
问题1: GenericService类在3.x版本有2个: com.alibaba.dubbo.rpc.service.GenericService 和 org.apache.dubbo.rpc.service.GenericService 其中alibaba包下的有@Deprecated这个过时注解, 但是apache包下的并没有标明过时. 不知道老师是在哪里了解的GenericService过时了呢? - 问题2: 我去了解了一下Soul网关的Dubbo插件实现代码, 实际上也是使用GenericService泛化调用, 是否这个插件的也有你说的同样的问题? - 问题3: 然后就是这个Result的顶级对象, 我们目前也是这样设计, 但没用泛型, 里边封装的是json格式的String, 然后在提供者接口入口处用工具类再把这个json字符串返序列化成对象. 主要还是因为接收的对象网关没有引入, 网关是直接把http的body作为字符串直接给到后端服务. 你们怎么解决这个问题? 如果泛型引入后端服务的接收对象, 那不还是会出现后端服务加一个接收对象, 网关就要重新打包发布吗? - 问题4: 你们网关是不是使用接口名"*"监控后端服务的上下线, 来完成前端http接口名和后端对应接口的映射关系? 还是通过什么设计完成http请求转到对应的dubbo接口呢?
登录后可查看更多问答,登录/注册
慕课网首门 Dubbo 3 源码深度剖析精品课
701 6
689 5
790 5
549 3
653 3
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号