微服务之 EShop on dapr概览

  • ????欢迎点赞 :???? 收藏 ⭐留言 ???? 如有错误敬请指正,赐人玫瑰,手留余香!

  • ????本文作者:由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. 小结

例行小结,理性看待!

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

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/298612.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python开发面试问题及答案_前50个Python面试问题(最受欢迎)

热门Python面试问答下面列出的是关于Python编程语言的最常见面试问题和答案。让我们探索!!#1)Python可以用于Web客户端和Web服务器端编程吗?哪一个最适合Python?答案: Python由于具有创建业务逻辑&#xff…

苹果android 对比,苹果安卓旗舰差距有多少?看了这份对比,果粉傻眼了

最近,身边不少小伙伴都在换机,有的换了最新的 iPhone 12 系列,有的则是换成安卓旗舰,毕竟现在的安卓旗舰与 iPhone 之间的体验已经十分接近,甚至在一些方面安卓旗舰还有着不小的优势。下面,我们以最新的 iP…

【暴强】200种好口碑便宜护肤品 - 生活至上,美容至尚!

200种好口碑便宜护肤品 一.洁面类 1.欧泊莱均衡洁面膏40ML 25元:很丰富的泡沫,,最大的好处就是洗完了脸不干,很舒服。 2.珊拉娜除逗防疤洗面奶:泡沫非常细,毛孔清透 3.丹芭碧绿茶洁面啫喱18元:觉得洗后很…

查看和修改Oracle数据库服务器端的字符集

Oracle数据库查看和修改服务器端的字符集的方法是本文主要要介绍的内容,接下来救让我们一起来了解一下这部分内容。 A、oracle server 端字符集查询 select userenv(‘language’) from dual 其中NLS_CHARACTERSET 为server端字符集 NLS_LANGUAGE 为 server端字符显…

python画画用哪库好_Python我要学画画-turtle库

上帝说:“要有光!” 于是,就有了光。 ---《圣经》旧约创世纪篇 我要学画画,Python便有了turtle库。 turtle库是一个点线面的简单图像库。画布中心为坐标系原点,小海龟起始位置就在原点方向向右。turtle界面 Python与库…

Xubuntu菜单删改条记

作者: Zhu.CA 出自: http://www.linuxdiyf.com1. 主菜单:主菜单为 ~/.config/xfce4/desktop/menu.xml。删改可用"Xfce Settings Manager"中的"Menu editer",运用上绝对俭朴,不做过多详述。 2. System子菜单&#xff…

看完这15张动图,秒懂万有引力与航天难点!

全世界只有3.14 % 的人关注了爆炸吧知识椭圆的画法大质量天体使周围天体绕其运转模拟太阳系星球轨迹非常接近圆火箭运载卫星升空卫星飞行过程中可以点火调整姿态同步卫星必须在赤道上空北斗全球卫星导航轨道半径越大,卫星越慢人类发射的卫星越来越多嫦娥沿椭圆轨道奔…

物联网工程专业的迷茫与抉择

大家好,我是阿辉,很高兴在这里和你讲述所思所想。周末了,就聊点比较轻松的话题。正文共1633字,预计阅读时间5分钟。想必很多朋友是通过#毕业四年,我当初是如何走上编程这条路的!#这篇文章才熟知我的吧&…

html二级页面内容滑动,jQuery+CSS实现的网页二级下滑菜单效果

本文实例讲述了jQueryCSS实现的网页二级下滑菜单效果。分享给大家供大家参考。具体如下:这是一款简洁型的 jQueryCSS网页二级下滑菜单,练手写的,有需要的自己拿去美化吧,基本的动画效果和菜单下滑效果和渐变效果已经做出来了&…

parentElement,srcElement 使用

代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns"http://www.w3.org/1999/xhtml"><head><meta http-equiv"Content-T…

哈哈哈,程序员没有女朋友的原因,我终于找到了!

全世界只有3.14 % 的人关注了爆炸吧知识程序员没有女朋友的原因▼程序员大脑里想的▼每天要学习太多语言&#xff0c;程序员太忙了▼女朋友 VS 编译器▼程序员sao起来&#xff0c;还需要女朋友吗&#xff1f;▼电脑才是程序员的女朋友▼互道晚安后&#xff0c;会不会偶遇在同一…

基于事件驱动架构构建微服务第7部分:在仓储上实现事件溯源

原文链接&#xff1a;https://logcorner.com/building-microservices-through-event-driven-architecture-part7-implementing-eventsourcing-on-repositories/在本文中&#xff0c;我将讨论Repository上的Event Sourcing实现。仓储负责将事件添加到事件存储并从事件存储中检索…

python选择题题目_Python接口测试题(持续更新中)

1、json和字典的区别&#xff1f; Json是轻量级的数据交互格式&#xff0c;以key-value的键值对形式来保存数据&#xff0c;结构清晰&#xff0c;可以说是目前互联网项目开发中最常用的一种数据交互格式。 字典&#xff0c;同样是以key-value的键值对来保存数据&#xff0c;是p…

javascript事件之:jQuery事件中实例对象和拓展对象之间的通信

我们总结过jQery事件中的实例原型对象对外接口和拓展对象&#xff0c;现在我们看看他们是如何进行通信联系的。 先来看便捷方法&#xff1a; 1 //调用的还是实例对象下的on()和trigger()2 jQuery.each( ("blur focus focusin focusout load resize scroll unload click db…

SQL 中的unicode字符

要将字符转换成unicode字符以显示某些符号&#xff0c;可以在字符串前加N,如&#xff1a; select N♧♡♂♀♠♣♥❤☜☞☎☏ 转载于:https://www.cnblogs.com/Laro/archive/2011/03/07/1976483.html

html5 ajax数据显示,html5的ajax学习(二)

一、基础知识点1.ajax可以做事情&#xff1a;局部刷新 浏览器搜索列表记录 加载更多的数据2.登录页面同步网络请求&#xff1a;页面全部刷新&#xff0c;用户量大体验很不好3.ajax的详解&#xff1a;ajax的get和post请求 同步还是异步&#xff0c;true为异步ajax.open("ge…

后羿采集器怎么导出数据_后羿SEO:如何用后羿采集器查收录?(附详细步骤图)...

摘要&#xff1a;不知道大家查收录是用啥查的&#xff0c;或许市面上有工具&#xff0c;可以批量查&#xff0c;但是这些工具不是收费就是查询结果不太准确。今天狠人SEO教大家一个查询结果比较准确的方法。如标题写的&#xff0c;...不知道大家查收录是用啥查的&#xff0c;或…

ISA Server服务器故障恢复一例系统盘符更换之后的应对方法

周四下午的时候&#xff0c;某政府信息中心领导打电话告诉我&#xff0c;ISA Server服务器不能开机了。随后公司的技术员到达现场&#xff0c;经过检查&#xff0c;发现服务器显卡损坏。在更换显卡后&#xff0c;服务器可以开机&#xff0c;但却不能进入系统—-服务器在经过BIO…

有梦想就有前进的动力

有梦想就有前进的动力&#xff0c;我为自己代言转载于:https://blog.51cto.com/9730193/1589340

扩展Windows Mobile模拟器存储空间的方法

在Windows Mobile应用程序开发的初期&#xff0c;可以使用SDK自带的模拟器来进行调试&#xff0c;这给我们开发人员提供了一种方便的途径。一般的应用程序&#xff0c;占用空间的大小也就几 百K&#xff0c;或者几M&#xff0c;这在模拟器上调试起来一点问题也没有。但是有的时…