谷歌开源 Service Weaver,编写分布式应用程序的框架

谷歌宣布在 Apache 2.0 许可下开源 Service Weaver,一个用于构建和部署分布式应用程序的框架;允许用户将应用程序编写为模块化单体,并将其部署为一组微服务。目前,该项目尚处于早期开发阶段。

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

  1. 一组编程库,可让用户将应用程序编写为单个模块化二进制文件,仅使用本机数据结构和方法调用;
  2. 一组部署器,协助配置应用程序的运行时拓扑结构,并将其部署为一组微服务,本地或云上都可。

通过将应用程序编写过程与运行时考虑因素(例如应用程序如何拆分为微服务、使用何种数据序列化格式以及如何发现服务)分离,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)
}

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

更多详情可查看官方博客

优秀的个人博客,低调大师

微信关注我们

原文链接:https://www.oschina.net/news/231027/google-open-source-service-weaver-framework

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
Mario,低调大师唯一一个Java游戏作品

Mario,低调大师唯一一个Java游戏作品

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Apache Tomcat7、8、9(Java Web服务器)

Apache Tomcat7、8、9(Java Web服务器)

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。