Java 模块化通信

8 天前
 jwh199588

有没有 java 项目,可以控制服务中模块通信的方式,通过配置去切换使用 springbean 注入的方式调用,还是使用 http 调用,或者是 dubbo 调用;

简单来说就是两个模块,放在一个 war 包的时候,可以通过注入的方式相互调用;把两个模块拆成两个 war 包的时候,就使用 http 调用或者 dubbo 调用

1026 次点击
所在节点    程序员
5 条回复
bugmakerxs
8 天前
我前公司有类似需求。当时想的一个方案是 interface 和 impl 不在同一个 module 里,比如有 user-api, user-dubbo-sdk, user-impl, user-http-sdk ,user-api 里放 interface ,各个 sdk 里配置不同的 impl 。maven 打包的时候引入 user-api 和其中某个 sdk 或者 impl 即可实现走本地调用还是远程调用。
lambdaq
8 天前
RPC 自动变 LPC ? 不错的想法。
goinghugh
8 天前
可以实现,我们就是这么做过。
RPC 框架一般有本地调用以及远程调用,比如 dubbo 或者 sofa ,和 1 楼说的类似;但是要注意进程拆开时,远程调用根据业务可能要额外的处理,比如广播调用、负载均衡策略等。不过实现前最好想清楚你是否真的需要这种模式,因为两种支持分布式的部署,会带来额外的测试、运维、开发等成本,这些投入产出比你需要一下。
wolfie
8 天前
feign client 和 controller 用相同抽象。

pom 里根据 dependency 依赖,加载 feignclient 或 controller bean 。

其他 dubbo client 同理。
ZZ74
7 天前
同一楼的做法。主项目写接口,依赖注入+默认实现 。额外的 jar 实现接口,提供本地或者远程调用

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1079371

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX