项目可以拆分到不同的主机上运行么?

项目可以拆分到不同的主机上运行么?

目前看视频中的项目,生产者和消费者还是从属于一个项目内,虽然通信走的的是网络间的调用,但是消费者依赖于生产者的jar包文件。如果想生产者和消费者部署到不同的主机上,两个moudle由不同的公司团队开发和维护,这种情况怎么处理?

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,consumer可以不拿到producer项目的源代码,可以直接拿到producer项目打包后的jar包,就可以加载了。

    ​    ​比如 我们在前面阶段的项目中需要将对象转为json数据,并响应给浏览器,需要使用JSON.toJSONString来转换对象,此时可以在项目中导入fastjson的jar包,然后就可以调用JSON.toJSONString来将对象转为json类型的数据了。

http://img1.sycdn.imooc.com//climg/600281f60942cf4501710029.jpg

http://img1.sycdn.imooc.com//climg/60028200096e4b8404320038.jpg

    ​    ​所以consumer项目可以直接加载producer项目对应的jar包就可以了。

    ​    ​而不同项目组或公司如果需要合作,会有一个接口对接的过程,明确双方需要提供内容,以及具体接口使用(比如调用接口中的方法名、参数类型、参数数量等)规则。对接好后,直接导入对方jar包,直接调用就可以。

​祝学习愉快!

  • qq_再见青春 提问者 #1

    嗯,您说的我能理解。

    我只是想确认一件事:以dubbo框架为基础的rpc方案,消费方必须要引入生产方的jar才可以使用?还是可以有别的实现方案,不用引入生产者的jar包。之前我没有接触过dubbo的rpc方案,不了解具体的实现原理。

    比如grpc的实现中,可以编辑接口文件.proto,双方约定好规范即可互相调用,不用引入生产者的包文件,这样可以实现跨项目,跨语言的互相调用。

    2021-01-16 14:33:55
  • 好帮手慕小班 回复 提问者 qq_再见青春 #2

    同学你好,在以dubbo框架为基础的rpc中,作为消费方确实是需要这样的,需要把服务端提供的jar引入进来。

    祝学习愉快!

    2021-01-16 15:30:42
好帮手慕小班 2021-01-16 11:03:18

同学你好,1、项目可以拆分到不同的主机上运行。

    ​2、消费者依赖于生产者的jar包文件,在实际应用中,也是可以引入依赖的jar包的,当部署在不同的服务器上,也是可以在项目中引入需要依赖的自定义jar包。

    ​3、在当前项目中,服务间的调用是通过网络间的调用,所以同学可以尝试直接将生产者和消费者书写为两个项目,部署到不同的主机上,修改对应的地址配置。

祝学习愉快!

  • 提问者 qq_再见青春 #1

    可能我没表达清楚

    当前场景

    1:producer项目由A项目组开发,consumer项目由B项目组开发,代码仓库是分开的,彼此不知道对方的代码。

    2:视频中consumer项目如果想通过rpc调用producer项目的方法时,在@Reference注解中需要引用producer项目的对象,如果consumer项目拿不到producer项目的代码,也就是说无法加载producer项目的依赖,此时该怎么调用?

    2021-01-16 11:33:59
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师