谷歌开源的这个 Go 项目,让你不再纠结单体还是微服务

  出品 | OSC开源社区(ID:oschina2013)

谷歌宣布在 Apache 2.0 许可下开源 Service Weaver,一个用于构建和部署分布式应用程序的框架;允许用户将应用程序编写为
模块化单体

,并将其部署为一组微服务。目前,该项目尚处于早期开发阶段。


Service Weaver 由两个核心部分组成:

  1. 一组编程库,可让用户将应用程序编写为单个
    模块化

    二进制文件,仅使用本机数据结构和方法调用;


  2. 一组部署器,协助配置应用程序的运行时拓扑结构,并将其部署为一组微服务,本地或云上都可。

谷歌开源的这个 Go 项目,让你不再纠结单体还是微服务

通过将应用程序编写过程与运行时考虑因素(例如应用程序如何拆分为微服务、使用何种数据序列化格式以及如何发现服务)分离,Service Weaver
旨在提高分布式应用程序开发速度和性能。

谷歌方面指出,在编写基于微服务的应用程序时,维护多个不同的微服务二进制文件的开销大幅降低了开发速度;Service Weaver 的出现就是为了解决这一问题,同时促使跨二进制文件的修改变得更加容易。“
Service Weaver 是一个两全其美的框架:单体应用的开发速度,以及微服务的可扩展性、安全性和容错性。


Service Weaver 的核心思想是它的
模块化单体

模型。借助 Service Weaver,用户可以编写仅包含 language-native 数据结构和方法调用的单个二进制文件,然后将二进制文件组织为一组称为
components 的编程语言原生模块。示例,一个使用 Service Weaver 用 Go 语言编写的简单应用程序,由一个 main () 函数和一个
Adder component 组成:
type Adder interface { 
   Add(context.Context, int, int) (int, error)
}
type adder struct{
   weaver.Implements[Adder]
}
func (adder) Add(_ context.Context, x, y int) (int, error) {
 return x + y, nil
}

func main() {
 ctx := context.Background()
 root := weaver.Init(ctx)
 adder, err := weaver.Get[Adder](root)
 sum, err := adder.Add(ctx, 1, 2)
}

谷歌开源的这个 Go 项目,让你不再纠结单体还是微服务


目前,Service Weaver 的 v0.1 版本为用户带来了用于编写应用程序的核心 Go 库、用于在本地或 GKE 上运行应用程序的多个部署程序,以及一组使用户能够为任何其他平台编写自己的部署程序的
API。值得注意的是,在 v1.0 版本发布之前,开发团队可能还会引入一些 breaking changes。


更多详情可查看官方博客:
https://opensource.googleblog.com/2023/03/introducing-service-weaver-framework-for-writing-distributed-applications.html


往期推荐

谷歌开源的这个 Go 项目,让你不再纠结单体还是微服务

我是 polarisxu,北大硕士毕业,曾在 360 等知名互联网公司工作,10多年技术研发与架构经验!2012 年接触 Go 语言并创建了 Go 语言中文网!著有《Go语言编程之旅》、开源图书《Go语言标准库》等。

坚持输出技术(包括 Go、Rust 等技术)、职场心得和创业感悟!欢迎关注「polarisxu」一起成长!也欢迎加我微信好友交流:gopherstudio


本文来源于互联网:谷歌开源的这个 Go 项目,让你不再纠结单体还是微服务

注册币安获得返佣: https://accounts.binance.com/en/register?ref=MKOOSEO4

okx获得返佣: https://www.cnouyi.care/join/1871789

Click to rate this post!
[Total: 0 Average: 0]

人已赞赏
Dapp开发Go语言技术开发每日优选

写给go开发者的gRPC教程-超时控制

2023-3-12 0:37:15

每日优选

去中心化稳定币战争:谁能夺得加密货币的圣杯

2023-3-12 0:50:47

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
有新消息 消息中心
搜索