微服务之 EShop on dapr概览

这是我参与8月更文挑战的第26天,活动详情查看:8月更文挑战

  • ?欢迎点赞 :? 收藏 ⭐留言 ? 如有错误敬请指正,赐人玫瑰,手留余香!
  • ?本文作者:由webmote 原创,首发于 【掘金】
  • ?作者格言: 生活在于折腾,当你不折腾生活时,生活就开始折腾你,让我们一起加油!???

1. Dapr简介

image.png

Dapr,微软牵头开发的分布式运行时,致力于打造一款事件驱动,可移植可扩展可构建在云端,也可构建在本地的分布式运行时。

身具服务发现、基础设施服务代理网关、自身具有状态管理、消息订阅发布以及Actors,遥测等功能,实乃微服务架构之首选。

2. Eshop 示例

微软的web应用基本都以Eshop为例来阐述自己真的可以完成搞定XXX的需求,因此这次也不例外,一个基于Dapr的微服务就摆在了我们的面前。

image.png

Eshop的业务就是线上的一个小商店,具有订单、支付、分类、购物车等功能。

3.微服务架构

这个示例支持多种部署方案,可以使用Docker,也可以使用Kubernetes。
就让我们来看看其架构如何?

image.png

微服务使用到了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 使开发人员可以使用任何语言或框架轻松编写微服务。它解决了分布式应用程序中的许多挑战,例如:

  • 分布式服务如何相互发现并同步通信?
  • 他们如何实现异步消息传递?
  • 他们如何在整个事务中维护上下文信息?
  • 他们如何才能适应失败?
  • 它们如何扩展以满足不断变化的需求?
  • 他们是如何被监控和观察的?

项目文件结构

image.png

希望周末能运行起来它!

dapr init
复制代码

? 5. 小结

例行小结,理性看待!

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

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

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

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

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享