团队准备使用 Go 构建微服务,请问大家有好的框架推荐么?

目前考虑比对的是 echo / micro

共 15 个回复


jimmykuu

echo 不是微服务吧?

当初我找寻微服务时找的一些对比:

Go micro 是一个插件化 RPC 分布式开发框架,可以开箱即用,也可以任意定制自己的 RPC 协议中的每个模块。他是一个 eco system,现在已经有大量的插件实现,并在 go-micro 基础之上有了很多的新框架,Micro 组织下有许多围绕 go-micro 建立的子项目。

Go kit 是一个用来构建微服务的的工具包,每个包都是独立的,开发者自己选择需要的工具组装自己的微服务,包含了丰富的治理功能,熔断,监控,限流等,且拥有丰富的插件化协议和注册中心。

Go chassis 是插件化框架,与 Go micro 的不同在于,Go chassis提供的能力是插件化协议,你可以将 http 或 RPC,甚至是 Mysql,Redis 等协议接入到框架中,并且提供一站式功能,将熔断,限流,监控等功能全部集成到框架中,开发者无需自己寻找这些方案。拥有3者中最丰富的治理功能。同样拥有开放的定制能力,但是作为一个新的框架,生态尚需完善。

我个人看好 Micro。

# 0

fising

感谢站长的回复。

# 1

focus

为何微服务要用RPC而并不是 HTTP作为载体更方便地支持异构调用.

# 2

fising

@focus gRPC不是也支持异构语言调用

# 3

liqihang

@fising Gin或者Iris怎么样?我们最近也在考虑这个问题

# 4

fising

@liqihang 请参照站长回复。

gin, iris 和 echo 是一类

# 5

cougar

正好这家伙发1.0了

https://github.com/micro/go-micro/releases

1.0.0
@asim asim released this 20 hours ago

This is the 1.0.0 release of go-micro

After 4 years we've determined this is the right time to solidify what is considered version 1. In one way it is to signify the stability of the framework but also allow us to move forward with making changes for version 2.

Thanks to the community for the long term support.

# 6

qq1196

这个不错,什么都可以做,挺好的。
https://github.com/gogf/gf
GF(Go Frame)是一款模块化、松耦合、生产级的Go应用开发框架。提供了常用的核心开发组件,如:缓存、日志、文件、时间、队列、数组、集合、字符串、定时器、命令行、文件锁、内存锁、对象池、连接池、数据校验、数据编码、文件监控、定时任务、数据库ORM、TCP/UDP组件、进程管理/通信、 并发安全容器等等。并提供了Web服务开发的系列核心组件,如:Router、Cookie、Session、服务注册、配置管理、模板引擎等等,支持热重启、热更新、多域名、多端口、多服务、HTTPS、Rewrite等特性。

# 7

jeff_sen

gRPC基于protobuf可能没http常用吧

# 8

3028938351

从无到有构建大型电商微服务架构呢?

# 9

jiujuan

站长回答的挺好,解释了go里面几个比较流行微服务框架的区别

# 10

nothollyhigh

  • 有几个点需要注意:
  1. 微服务的本质就是服务拆分,服务拆分不必跟框架绑定,http+rpc基本足够了,用那些专门为微服务打造的“框架”感觉得不偿失,尤其是一些大框架,很多功能是源于大公司自己内部需求定制的,外人用起来复杂度高成本高,遇到问题还不容易解决

  2. 建议业务上可以横向拆分,尽量不要把事务性的业务进行纵向拆分

  3. 传统RPC比如GRPC,用着太麻烦了,推荐以下我的包:kiss rpc,像写http路由一样简单,欢迎使用

# 12

zjupigeon

go-micro 是很强大,大部分功能都实现了,也有强大的plugin机制,但是微服务的基础组件单独拎出来,对以后的服务网格管理会比较好。同意 @nothollyhigh

# 13

leeif

https://medium.com/seek-blog/microservices-in-go-2fc1570f6800
可参考

# 14