微服务的终极目标,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的主要内容,如果未能解决你的问题,请参考以下文章