2

多运行时架构介绍

 1 year ago
source link: https://zhupeng.github.io/dapr-multi-runtime/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

多运行时架构介绍

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

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


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK