go 中有没有类似 feign 的库,最近想把几个服务由 Java 改成 go,接入 spring cloud 体系,但是好像很多基础组件都要自己写,或者各位有没有接入经验,指点一下,感谢! - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
agzou
V2EX    Java

go 中有没有类似 feign 的库,最近想把几个服务由 Java 改成 go,接入 spring cloud 体系,但是好像很多基础组件都要自己写,或者各位有没有接入经验,指点一下,感谢!

  •  
  •   agzou 2023-02-01 11:47:26 +08:00 4983 次点击
    这是一个创建于 1051 天前的主题,其中的信息可能已经有所发展或是发生改变。
    22 条回复    2023-02-02 14:19:33 +08:00
    aw2350
        1
    aw2350  
       2023-02-01 11:48:34 +08:00
    go 接入 spring cloud ?
    aw2350
        2
    aw2350  
       2023-02-01 11:50:59 +08:00
    如务必要建议还是 spring cloud ,如果确实想用 go 建议使用边车模式,java 开发一个做边车,go 做服务,然后 grpc 进行通信
    Oktfolio
        3
    Oktfolio  
       2023-02-01 11:51:59 +08:00
    你难道不觉得 feign 并不好用吗?
    kaf
        4
    kaf  
       2023-02-01 11:52:50 +08:00
    有 grpc 为啥还要 feign
    hhjswf
        5
    hhjswf  
       2023-02-01 11:53:22 +08:00 via Android
    grpc ?
    dilu
        6
    dilu  
       2023-02-01 11:55:37 +08:00
    @aw2350 有点蒙,大佬说的边车模式是不是叫 sidecar ?
    Chinsung
        7
    Chinsung  
       2023-02-01 11:57:27 +08:00
    不是一个体系的,不建议做这种事
    aw2350
        8
    aw2350  
       2023-02-01 11:57:59 +08:00
    @dilu 就这意思,等于用 java 的外挂程序与 go 进行通信,主要任务还是 go 去处理,但是外界访问这个服务的时候访问的是 java 的外挂程序,没有什么是包一层解决不了的
    Chinsung
        9
    Chinsung  
       2023-02-01 11:58:54 +08:00
    @Chinsung #7 或者说,你非要做的话,你要找的是 go 的 eureka ,不是 go 的 feign
    agzou
        10
    agzou  
    OP
       2023-02-01 12:01:27 +08:00
    @aw2350 @Oktfolio @kaf @hhjswf 现有的服务都是基于 spring cloud 的,但是整个系统占用内存过大了,所以想着把部分业务轻的改成别的语言,降低资源占用。不知道有没有现成的类似于 spring 的 restTemplate ,可以实现负载均衡加基于服务名调用。
    CCIP
        11
    CCIP  
       2023-02-01 12:02:06 +08:00
    grpc 吧 挺好的 我之前公司是 java + spring cloud +grpc 的微服务体系 go 接进来应该也不难
    UG1u8zhQxhvqXNrk
        12
    UG1u8zhQxhvqXNrk  
       2023-02-01 12:33:29 +08:00
    看一下 sidecar 加一层代理访问 springcloud 的注册中心 不管啥语言都好使
    dddd1919
        13
    dddd1919  
       2023-02-01 12:48:21 +08:00
    @Chinsung
    feign 就是一个方案整合的组件,把客户端调用的服务发现负载均衡以及 http 客户端封装起来使用,http 客户端肯定有解决方案,但服务发现负载均衡在 go 里不知道是否有支持 java 生态的

    还有一种解决方法就是加一个 gateway 服务,所有异构系统到 spring cloud 的调用都走 gateway
    hidemyself
        14
    hidemyself  
       2023-02-01 13:04:09 +08:00
    grpc 吧
    kaf
        15
    kaf  
       2023-02-01 14:19:33 +08:00
    @agzou 之前用的 kratos 框架( go 实现的一个微服务框架),对外提供 grpc 和 http ,支持服务发现调用,你可以了解一下,feign 本身还是 http 调用,有 http 接口并且支持服务名发现应该是能实现跨语言调用的
    ql562482472
        16
    ql562482472  
       2023-02-01 15:15:06 +08:00
    自己写一套封装过的 httpClient
    noreplay
        17
    noreplay  
       2023-02-01 16:30:59 +08:00 via Android
    dapr
    litchinn
        18
    litchinn  
       2023-02-01 16:52:37 +08:00
    grpc 或者看能不能将服务升级到 springboot3.0 ,然后打包 graalvm 原生镜像,这手动改造的成本感觉不如等各大框架支持 native-image
    sky857412
        19
    sky857412  
       2023-02-01 18:07:28 +08:00
    内存占用多,直接加资源吧,最简单了,折腾一遍,可能效果还不理想
    xsen
        20
    xsen  
       2023-02-01 20:31:43 +08:00
    1. 前面加个 api gateway (不用默认 springcloud 自带的)
    2. 根据服务注册采取的方式(如 eureka 或 consul ),找相应的 go client 就可接入
    fireyao
        21
    fireyao  
       2023-02-02 10:51:40 +08:00
    spring 全家桶自带有 /heath 组件,换成 go 你还得考虑这个
    keepfun
        22
    keepfun  
       2023-02-02 14:19:33 +08:00
    rpcx 可以么
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4355 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 35ms UTC 01:05 PVG 09:05 LAX 17:05 JFK 20:05
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86