谷歌开源 Service Weaver,编写散布式利用法式的框架
出品 | OSC开源社区(ID:oschina2013)
谷歌公布在 Apache 2.0 答应下开源 Service Weaver,一个用于构建和摆设散布式利用法式的框架;容许用户将利用法式编写为 模块化单体,并将其摆设为一组微办事。目前,该项目尚处于早期开发阶段。
Service Weaver 由两个核心部门构成:
一组编程库,可让用户将利用法式编写为单个 模块化二进造文件,仅利用本机数据构造和办法挪用;
一组摆设器,协助设置装备摆设利用法式的运行时拓扑构造,并将其摆设为一组微办事,当地或云上都可。
通过将利用法式编写过程与运行时考虑因素(例如利用法式若何拆分为微办事、利用何种数据序列化格局以及若何发现办事)别离,Service Weaver 旨在进步散布式利用法式开发速度和性能。
谷歌方面指出,在编写基于微办事的利用法式时,庇护多个差别的微办事二进造文件的开销大幅降低了开发速度;Service Weaver 的呈现就是为领会决那一问题,同时促使跨二进造文件的修改动得愈加随便。“ Service Weaver 是一个一举两得的框架:单体利用的开发速度,以及微办事的可扩展性、平安性和容错性。”
Service Weaver 的核心思惟是它的 模块化单体模子。借助 Service Weaver,用户能够编写仅包罗 language-native 数据构造和办法挪用的单个二进造文件,然后将二进造文件组织为一组称为 components 的编程语言原生模块。示例,一个利用 Service Weaver 用 Go 语言编写的简单利用法式,由一个 main 函数和一个 Adder component 构成:
typeAdder interface{
Add(context.Context, int, int) ( int, error)
展开全文
typeadder struct{
weaver.Implements[Adder]
func(adder)Add(_ context.Context, x, y int) ( int, error) {
returnx + y, nil
funcmain{
ctx := context.Background
root := weaver.Init(ctx)
adder, err := weaver.Get[Adder](root)
sum, err := adder.Add(ctx, 1, 2)
目前,Service Weaver 的 v0.1 版本为用户带来了用于编写利用法式的核心 Go 库、用于在当地或 GKE 上运行利用法式的多个摆设法式,以及一组利用户可以为任何其他平台编写本身的摆设法式的 API。值得重视的是,在 v1.0 版本发布之前,开发团队可能还会引进一些 breaking changes。
更多详情可查看官方博客:
END
开源女神节——她说(第一期)
欢送更多女性伴侣加进一路交换↓↓↓
那里有最新开源资讯、软件更新、手艺干货等内容
点那里 ↓↓↓ 记得 存眷✔ 标星⭐ 哦