V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
OceanRs
V2EX  ›  程序员

微服务调用的时候,需要把请求实体类和响应实体类复制一遍,好麻烦。

  •  
  •   OceanRs · 358 天前 · 1803 次点击
    这是一个创建于 358 天前的主题,其中的信息可能已经有所发展或是发生改变。
    15 条回复    2023-11-28 11:32:17 +08:00
    coderxy
        1
    coderxy  
       358 天前
    一般都是自动生成吧? 比如我们用 grpc ,就是 proto 自动生成。
    nekomiao
        2
    nekomiao  
       358 天前
    我司是专门把实体类和响应实体类分了一个包出来,需要调用的时候直接引用就行
    yeqizhang
        3
    yeqizhang  
       358 天前 via Android
    不能有 common 模块放这些吗?
    lsk569937453
        4
    lsk569937453  
       358 天前
    让服务提供方直接发 jar 包阿,你引用就好了。
    xiaoHuaJia
        5
    xiaoHuaJia  
       358 天前
    每个服务搞个 api jar 包。其他服务引用即可
    OceanRs
        6
    OceanRs  
    OP
       358 天前
    @xiaoHuaJia 这样是不是每次服务改了都要去替换这个 jar 包哦!
    OceanRs
        7
    OceanRs  
    OP
       358 天前
    @coderxy 用的 OpenFeign
    suijishu
        8
    suijishu  
       357 天前
    2 楼正解
    amon
        9
    amon  
       357 天前
    抽个 common 模块出来,每次有更新更新 pom 版本就完事了。
    wxw752
        10
    wxw752  
       357 天前
    每个微服务项目都是两个子项目 xxxxx-client 包放那些枚举、DTO 、VO 、feign 调用这些。xxxxx-server 里面是正常的微服务项目。 其他微服务需要调用就直接依赖一下 client 子项目
    crazyweeds
        11
    crazyweeds  
       357 天前
    如果你说的是 A 服务调用 B 服务,你需要把 B 服务的相应类复制到 A 模块,那么你就错了。你正确的做法是应该将 B 服务的 feign+相应体抽取为公用模块,A 服务调用 B 服务的需求产生后,你只需要 A 服务依赖 B 服务的 feign 模块即可。
    gamexg
        12
    gamexg  
       357 天前
    抽取个协议模块,里面定义上协议的结构。
    flmn
        13
    flmn  
       357 天前
    都这样了,那还是 grpc 吧
    OceanRs
        14
    OceanRs  
    OP
       356 天前
    @wxw752 懂了,感谢各位大佬!
    xiaoHuaJia
        15
    xiaoHuaJia  
       354 天前
    @OceanRs maven 引用即可
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2600 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 10:41 · PVG 18:41 · LAX 02:41 · JFK 05:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.