多运行时架构介绍

大家好。

现在大家在公司开发的都是分布式的应用,这也就意味着在开发上除了要关注业务逻辑,也要关注分布式服务特有的问题,比如服务发现、容错、鉴权等。而以上这些问题,一般取决于每个公司的成熟度有很大的不同,也很难依赖开源的一些建设。

image-20221211195936593

但是,今天要推荐一个尝试让上述问题更容易解决的方向,多运行时架构,将业务与技术进行分离管理。

目前首先实现多运行时架构的开源项目是 Dapr,Dapr 是一个开源的分布式应用运行时。它的目标是使分布式微服务开发变得更容易,更一致,更简单。Dapr 提供了一组分布式解决方案,帮助开发人员将其构建块与框架无关地拆分为小型,可重用的和管理的服务。

Dapr 具有许多优点。它可以帮助开发人员更快地构建和部署分布式应用程序。它的微服务构建块可以轻松集成到现有的工作流中,而无需更改现有代码。此外,Dapr 还提供了一组工具和 API,可以使开发人员能够更轻松地管理和监控分布式应用程序。

Dapr 是为云原生应用程序开发人员而设计的,但它可以用于任何类型的应用程序开发。它支持多种语言,包括 Java、Python、C# 和 Go,并且可以与任何框架,包括 Kubernetes、Docker 和其他云提供程序一起使用。

总而言之,Dapr 是一个强大的工具,可以帮助开发人员更轻松地构建分布式应用程序。它可以节省时间,提高生产力,并帮助您更轻松地管理和监控分布式应用。

除了上述特点之外,Dapr 还提供了一组标准化的服务协议,可以让不同的微服务之间进行通信。这样,开发人员就可以更轻松地将多个服务连接在一起,实现更复杂的应用程序功能。

此外,Dapr 还提供了一组可重用的组件,可以实现常见的分布式应用程序模式,包括消息传递、状态管理和计算等。这些组件可以轻松集成到现有的应用程序中,减少开发人员的工作量。

说了这么多,可能举一个简单的例子会更容易让大家理解。以下是分别使用 Node 和 Python 开发的只有业务逻辑的代码,通过与 Dapr 运行时结合,服务之间的调用关系如下:

image-20221211200342667

对应的 Node 和 Python 代码如下,代码可以看出来是没有任何其他的非业务相关的能力的。

image-20221211201021094

image-20221211201046414

而其中的 Dapr Runtime 可以根据需要按需去加载一些分布式的管理能力,且不需要对业务逻辑代码进行变更。比如我要给 Node 应用增加限流逻辑,只需要在 Dapr 做如下配置即可,就能使得 Node 服务每秒只能接受一个请求。

image-20221211200453892

总之,Dapr 是一个值得关注的工具,可以帮助开发人员更轻松地构建分布式应用程序。它的标准化协议和可重用组件可以节省时间,提高开发效率,并且可以与多种框架和语言一起使用。

更多项目详情请查看如下链接。

开源项目地址:https://github.com/dapr/dapr

开源项目作者:dapr

关注我们,一起探索有意思的开源项目。


更多精彩请扫码关注如下公众号。

Written on December 11, 2022