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

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

还有一种解决方法就是加一个 gateway 服务,所有异构系统到 spring cloud 的调用都走 gateway
hidemyself
2023-02-01 13:04:09 +08:00
grpc 吧
kaf
2023-02-01 14:19:33 +08:00
@agzou 之前用的 kratos 框架( go 实现的一个微服务框架),对外提供 grpc 和 http ,支持服务发现调用,你可以了解一下,feign 本身还是 http 调用,有 http 接口并且支持服务名发现应该是能实现跨语言调用的
ql562482472
2023-02-01 15:15:06 +08:00
自己写一套封装过的 httpClient
noreplay
2023-02-01 16:30:59 +08:00
dapr
litchinn
2023-02-01 16:52:37 +08:00
grpc 或者看能不能将服务升级到 springboot3.0 ,然后打包 graalvm 原生镜像,这手动改造的成本感觉不如等各大框架支持 native-image
sky857412
2023-02-01 18:07:28 +08:00
内存占用多,直接加资源吧,最简单了,折腾一遍,可能效果还不理想
xsen
2023-02-01 20:31:43 +08:00
1. 前面加个 api gateway (不用默认 springcloud 自带的)
2. 根据服务注册采取的方式(如 eureka 或 consul ),找相应的 go client 就可接入

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

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

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

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

© 2021 V2EX