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

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

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

    还有一种解决方法就是加一个 gateway 服务,所有异构系统到 spring cloud 的调用都走 gateway
    hidemyself
        14
    hidemyself  
       117 天前
    grpc 吧
    kaf
        15
    kaf  
       117 天前
    @agzou 之前用的 kratos 框架( go 实现的一个微服务框架),对外提供 grpc 和 http ,支持服务发现调用,你可以了解一下,feign 本身还是 http 调用,有 http 接口并且支持服务名发现应该是能实现跨语言调用的
    ql562482472
        16
    ql562482472  
       117 天前
    自己写一套封装过的 httpClient
    noreplay
        17
    noreplay  
       117 天前 via Android
    dapr
    litchinn
        18
    litchinn  
       117 天前
    grpc 或者看能不能将服务升级到 springboot3.0 ,然后打包 graalvm 原生镜像,这手动改造的成本感觉不如等各大框架支持 native-image
    sky857412
        19
    sky857412  
       117 天前
    内存占用多,直接加资源吧,最简单了,折腾一遍,可能效果还不理想
    xsen
        20
    xsen  
       117 天前
    1. 前面加个 api gateway (不用默认 springcloud 自带的)
    2. 根据服务注册采取的方式(如 eureka 或 consul ),找相应的 go client 就可接入
    fireyao
        21
    fireyao  
       116 天前
    spring 全家桶自带有 /heath 组件,换成 go 你还得考虑这个
    fenglangjuxu
        22
    fenglangjuxu  
       116 天前
    rpcx 可以么
    关于   ·   帮助文档   ·   博客   ·   nftychat   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1097 人在线   最高记录 5634   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 18:12 · PVG 02:12 · LAX 11:12 · JFK 14:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.