????欢迎点赞 :???? 收藏 ⭐留言 ???? 如有错误敬请指正,赐人玫瑰,手留余香!
????本文作者:由webmote 原创,首发于 【掘金】
????作者格言:生活在于折腾,当你不折腾生活时,生活就开始折腾你,让我们一起加油!????????????
1. Dapr简介
Dapr,微软牵头开发的分布式运行时,致力于打造一款事件驱动,可移植可扩展可构建在云端,也可构建在本地的分布式运行时。
身具服务发现、基础设施服务代理网关、自身具有状态管理、消息订阅发布以及Actors,遥测等功能,实乃微服务架构之首选。
2. Eshop 示例
微软的web应用基本都以Eshop为例来阐述自己真的可以完成搞定XXX的需求,因此这次也不例外,一个基于Dapr的微服务就摆在了我们的面前。
Eshop的业务就是线上的一个小商店,具有订单、支付、分类、购物车等功能。
3.微服务架构
这个示例支持多种部署方案,可以使用Docker,也可以使用Kubernetes。
就让我们来看看其架构如何?
微服务使用到了Dapr的Actors功能、状态管理功能、服务积木功能、发布/订阅功能、安全配置、事件绑定触发功能,这里例子还是比较齐活的。
这套业务采用经典的前后分离方式,由前端SPA, 后端Api组成。重点在后端的架构。
后端服务统一使用Dapr管理,SPA前端访问的是一个Api网关,网关由基础服务Envoy构成,其和SideCar模式的Dapr功能组成前置服务。
登录授权服务由Identity Service完成,注意其是独立的,并未加入到Dapr服务内。主要提供OAuth授权Token。
Api网关通过Dapr,可以直接访问主要的业务Api服务:(Basket、Catelog、Ordering、Payment),也可以访问Api聚合服务(BFF);Api聚合服务(Web shopping aggregator)通过Dapr的访问接口访问聚合上游服务接口。
在上游Api服务中,其通讯协议均采用Http方式,而Dapr使用GRPC协议方式和其进行通讯,并通过Http方式和下游服务进行通讯。当然也可以配置为统一使用 GRPC协议方式。
4.项目地址
项目存放在Github,感兴趣的童鞋可以拉下来运行下,因为我工作机器内存配置的问题,我并没有把这个例子跑起来。
是的,微服务的本地调试环境是个大问题,要搭起来K8s一套,实在是让人头疼啊。
Dapr简化了什么工作呢?
Dapr 使开发人员可以使用任何语言或框架轻松编写微服务。它解决了分布式应用程序中的许多挑战,例如:
分布式服务如何相互发现并同步通信?
他们如何实现异步消息传递?
他们如何在整个事务中维护上下文信息?
他们如何才能适应失败?
它们如何扩展以满足不断变化的需求?
他们是如何被监控和观察的?
项目文件结构
希望周末能运行起来它!
dapr init
???? 5. 小结
例行小结,理性看待!
结的是啥啊,结的是我想你点赞而不可得的寂寞。????????????
????都看到这了,还在乎点个赞吗?
????都点赞了,还在乎一个收藏吗?
????都收藏了,还在乎一个评论吗?