微服务之 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,一经查实,立即删除!

相关文章

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

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

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

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

看完这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…

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

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

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

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

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

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

UOS LoongArch 上成功安装.NET Core 3.1

龙芯.NET团队正式发布了.NET Core 3.1 For LoongArch, 具体参见龙芯开源网站 http://www.loongnix.cn/index.php/Dotnet 。进入安装包下载地址LoongArch64-.NET Core 3.1&#xff0c;可以看到龙芯.NET团队做了很多工作&#xff0c;为Debian和Redhat两大Linux体系平台都做好了基…

c++ vector拷贝构造_JDK源码分析-Vector

1. 概述上文「JDK源码分析-ArrayList」主要分析了 ArrayList 的实现原理。本文分析 List 接口的另一个实现类&#xff1a;Vector。Vector 的内部实现与 ArrayList 类似&#xff0c;也可以理解为一个「可变数组」。其继承结构如下&#xff08;省略部分接口&#xff09;&#xff…

除了PS,原来这个也可以轻松实现图像处理!

全世界只有3.14 % 的人关注了爆炸吧知识在我们生活中&#xff0c;常见的图像处理软件有Adobe Photoshop、Adobe Illustrator等。然而&#xff0c;并非只有软件才能实现图像处理&#xff0c;通过编程手段也是能实现的&#xff01;今天&#xff0c;小天将要带着大家走进计算机视觉…

下雨天纵使少了什么也是少不了一把伞的&#xff0c;即使是几千年前&#xff0c;也不管细雨霏霏&#xff0c;大雨倾盆。愿意沐浴风雨中&#xff0c;享受这样惠泽的人总是少的。从“孤舟蓑笠翁&#xff0c;独钓寒江雪”&#xff0c;“十里一长亭&#xff0c;五里一短亭”&#xf…

oracle用户名密码过期引起的网站后台无法登录

本来今天休息&#xff0c;但是接到同事反映&#xff1a;客户的WEB无法登录了&#xff0c;网站能打开&#xff0c;但是后台登录不了。我就联系了客户&#xff0c;客户说是WEB用户的密码过期导致的&#xff0c;默认是180天到期。接着就是我的操作流程了&#xff1a;1.先从WEB服务…

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

1. Mecha 是啥&#xff1f;微服务发展到今天&#xff0c;已经有很多公司多年前已经改造完毕&#xff0c;也有些公司还在路上&#xff0c;微服务的优势&#xff0c;有过了解的朋友应该也都能说出个一二三来&#xff0c;经历过微服务改造的&#xff0c;应该都知道其中的艰辛。单体…

python input输入多个变量_「Python 秘籍」1.2 解压可迭代对象赋值给多个变量

问题需要从某个可迭代对象中分解出 N 个元素&#xff0c;但是这个可迭代对象的长度可能超过 N&#xff0c;这会导致出现“需要解包的值过多(too many values to unpack)”的异常。解决方案“星号表达式”可以用来解决这个问题。例如&#xff0c;假设开设了一门课程&#xff0c;…

为什么不谈恋爱?

1 存好啦&#xff01;2 这是我看过最形象的小说描写了图自天秀bot3 原来游泳池是这样建的。。4 这谁还舍得拉绳子啊5 铁笼&#xff1a;大哥&#xff0c;给点面子好不好&#xff1f;6 别说&#xff0c;这门给狗子放头还挺合适的7 机器人骑自行车你点的每个赞&#xff0c;我都认真…