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

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

  •  
  •   agzou · 2023-02-01 11:47:26 +08:00 · 4193 次点击
    这是一个创建于 661 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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 你还得考虑这个
    fenglangjuxu
        22
    fenglangjuxu  
       2023-02-02 14:19:33 +08:00
    rpcx 可以么
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2632 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 04:30 · PVG 12:30 · LAX 20:30 · JFK 23:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.