微服务的终极目标,Mecha分布式运行时之Dapr

Posted dotNET跨平台

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微服务的终极目标,Mecha分布式运行时之Dapr相关的知识,希望对你有一定的参考价值。

1. Mecha 是啥?

微服务发展到今天,已经有很多公司多年前已经改造完毕,也有些公司还在路上,微服务的优势,有过了解的朋友应该也都能说出个一二三来,经历过微服务改造的,应该都知道其中的艰辛。

单体服务有着很多优势,结构简单、事务的ACID保证,系统内的无缝调用,一旦改造为微服务,必然是分布式服务构造,服务间的不稳定性,通讯的复杂性都使得整个系统的复杂性提升。

随着大量的三方服务的引入,也带来了网络、绑定、状态、生命周期管理等的各方面膨胀的需求,Red Hat的首席架构师Bilgin Ibryam从自己的经验出发,提出了未来的发展方向——多运行时微服务架构。

他简要的概括了微服务的在四个维度的基本需求。

为了满足这些需求,或者换句话说,应该有个 机甲装备-Macha,穿上它,就能实现微服务。

是的,从蛮荒走向科技,必然会形成的科技天梯。

业务人员在未来的某一天,可以不需要考虑这些基础设施服务,只需要一张清单,Mecha就能满足你。

2.微软开源的世界第一个分布式运行时Dapr

顺时而生的Dapr,是不是那个赢家?

官方介绍:Dapr 是一个可移植的、无服务器的、事件驱动的运行时,它使开发人员可以轻松构建在云和边缘运行的弹性、无状态和有状态的微服务,并包含语言和开发人员框架的多样性。

Dapr 将构建微服务应用程序的最佳实践编码为开放、独立的构建块,使您能够使用您选择的语言和框架构建可移植的应用程序。每个构建块都是独立的,您可以在应用程序中使用其中的一个、部分或全部。

是的,Dapr制定了和各个基础服务通讯的标准,并对我开放Api以实现编码语言的弱依赖。其提供了众多语言的HTTP、GRPC协议的SDK,使得你可以使用薄薄的SDK层,就可以和所有基础设施服务进行通讯。

Dapr部署方式可以是SideCar,或者Node方式,其来自云原生,和Kuberbetes配合极好;在没有K8s的环境也可以运行,部署灵活而不限制。

除了能够和其他基础设施服务进行通信外,其还提供了状态管理、pub/sub消息、Actors、可观测、安全存储等特性。

哦哦哦,令我遗憾的是它竟然是Go语言写的,好吧,又是Go语言从业者的狂欢。

3.dapr特性

  • 事件驱动的发布订阅系统,具有可插入的提供者和至少一次语义

  • 与可插入提供程序的输入和输出绑定

  • 具有可插拔数据存储的状态管理

  • 一致的服务到服务发现和调用

  • 选择加入有状态模型:强/最终一致性,先写/最后写获胜

  • 跨平台虚拟演员

  • 从安全密钥库中检索秘密的秘密管理

  • 速率限制

  • 内置可观察性支持

  • 使用专用的 Operator 和 CRD 在 Kubernetes 上本地运行

  • 通过 HTTP 和 gRPC 支持所有编程语言

  • 来自 Azure、AWS、GCP 的多云、开放组件(绑定、发布-订阅、状态)

  • 在任何地方运行,作为一个进程或容器化

  • 轻量级(58MB 二进制,4MB 物理内存)

  • 作为 sidecar 运行 - 无需特殊 SDK 或库

  • 专用 CLI - 易于调试的开发人员友好体验

  • Java、.NET Core、Go、javascript、Python、Rust 和 C++ 的客户端

4. 底层服务已经支持

可以到这里查看支持列表。

目前版本1.30,有微服务改造需求的童鞋,可以重点考虑该技术。

???? 5. 小结

例行小结,理性看待!

结的是啥啊,结的是我想你点赞而不可得的寂寞。????????????

????都看到这了,还在乎点个赞吗?

????都点赞了,还在乎一个收藏吗?

????都收藏了,还在乎一个评论吗?

以上是关于微服务的终极目标,Mecha分布式运行时之Dapr的主要内容,如果未能解决你的问题,请参考以下文章

微服务的终极目标,Mecha分布式运行时之Dapr

微服务的扫地僧--Dapr中文v1.5发布!

云原生分布式应用运行时 Dapr 在阿里的实践

分布式应用运行时Dapr

Dapr v1.8 正式发布

分布式应用框架 Dapr