本文翻译自微软Docs, 内嵌译者多年使用的参悟,如理解有误,请不吝赐教。

微软与社区专家合作,开发了功能齐全的云原生微服务示例应用eShopOnContainers。
该应用旨在展示使用.NET、Docker以及可选的Azure,Kubernetes技术来构建电商平台。

功能 & 要求

简要回顾eShopOnContainers应用的业务功能和技术目标,示例应用代表一个出售各种实体产品的(例如T恤和咖啡杯)电商平台。

电商平台要实现的一些基本功能:

•列出商品目录•按类型过滤商品•按品牌过滤商品•将商品添加到购物车•编辑或删除购物车中的物品•支付•注册帐号•登录•登出•订单审核

示例应用还具有以下非功能性要求:

•必须具有高可用性,并且必须自动扩展以满足不断增长的流量(并在流量减少后再缩减)。•提供易于使用的运行状态监视和诊断日志,以帮助解决遇到的问题。•它应该支持敏捷开发,包括对持续集成和部署(CI/CD)的支持。•除了支持传统的Web前端和SPA Web前端,该应用程序还必须支持不同系统的移动客户端应用程序。•支持跨平台托管和跨平台开发


Web或移动客户端通过HTTPS访问ASP.NET Core MVC服务器程序或API网关程序

API网关具有多种优势,例如将后端服务与各个前端客户端解耦,并提供更好的安全性。

该应用程序还利用了BFF模式(服务于前端的后端),该模式建议为每个前端客户端创建单独的API网关。

上面的体系图演示了基于请求是来自Web客户端还是来自移动客户端的API网关


示例应用的功能被分解为许多不同的微服务:

•负责身份验证和身份•列出产品目录中的商品•购物车管理以及订单管理。这些独立的服务都有其自己的持久化存储,没有可以与所有服务交互的单个主数据存储,
服务之间的协调和通信是通过消息总线来完成的。


每个微服务根据其各自的需求独立设计。因此它们的技术堆栈是可以不同的(目前服务均是.NET构建并为云设计)。

简单的服务提供了基本的创建、读取、更新、删除访问(CRUD),而更高级的服务则使用领域驱动设计方法和模式来管理业务复杂性。

代码结构

因为eShopOnContainers示例程序使用微服务,其GitHub存储库中包含许多独立的项目文件。
除了独立的项目方案和可执行文件之外,各种服务还被设计为在独立的容器中运行。

下图显示了完整的Visual Studio解决方案,管理组织了各种不同的项目。

该代码被组织为支持不同的微服务,并且在每个微服务中,代码分为领域逻辑、基础设施以及用户界面/服务端点。

Ref

•  https://docs.microsoft.com/en-us/dotnet/architecture/cloud-native/introduce-eshoponcontainers-reference-app•  https://github.com/dotnet-architecture/eShopOnContainers

更多干货及最佳实践分享
关注并星标我们

.NET微服务最佳实践eShopOnContainers相关推荐

  1. 微服务最佳实践:MSE 微服务引擎

    简介:微服务引擎 MSE(Microservice Engine)是一个面向业界主流开源微服务框架 Spring Cloud 和 Dubbo 的一站式微服务平台.其由四个主要部分组成:微服务治理中心. ...

  2. 同程旅游微服务最佳实践

    本文首发胖波聊架构界,微信公众号:xiaobo2as 本文概要 导言 微服务拆分的四个维度 微服务应该如何维护版本 如何从单体架构平滑过渡到微服务 结语 一.导言 同程微服务从立项到实施推广已经走过了 ...

  3. 谢康 | 同程旅游微服务最佳实践

    本文首发胖波聊架构界,微信公众号:xiaobo2as 本文概要 导言 微服务拆分的四个维度 微服务应该如何维护版本 如何从单体架构平滑过渡到微服务 结语 一.导言 同程微服务从立项到实施推广已经走过了 ...

  4. 微服务最佳实践 【已翻译100%】

    在我还不知道什么叫微服务架构的时候我就使用过它.以前,我写了一些管道程序(pipeline application),它由一些相互和队列交互的模块构成.自那之后,一批ThoughtWorks的专家也讨 ...

  5. 云原生架构下微服务最佳实践-如何拆分微服务架构

    转自: https://mp.weixin.qq.com/s?__biz=MzI3MzEzMDI1OQ==&mid=2651821066&idx=1&sn=8475f813a8 ...

  6. Spring Cloud 分布式 微服务 最佳实践之一

  7. Golang微服务开发实践

    github: github.com/yun-mu/Micr- 微服务概念学习:可参考 Nginx 的微服务文章 微服务最佳实践:可参考 微服务最佳实践 demo 简介 服务: consignment ...

  8. 爱奇艺在 Dubbo 生态下的微服务架构实践

    作者 | 周晓军  爱奇艺中间件团队负责人 导读:本文整理自作者于 2020 年云原生微服务大会上的分享<爱奇艺在 Dubbo 生态下的微服务架构实践>,重点介绍了爱奇艺在 Dubbo.S ...

  9. 微服务治理实践:如何对单点异常进行自动摘除

    微服务架构下,稳定性和高可用性一个永恒的话题,在实际的治理过程中,我们有可能会遇到以下场景: 某个应用灰度发布,先上了几台机器,由于代码逻辑写的有问题,造成线程池满,出现运行异常. 服务端集群中,某几 ...

最新文章

  1. 安装Hadoop系列 — 导入Hadoop源码项目
  2. java errorlevel_bat中errorlevel与%errorlevel%的区别
  3. python第三方模块—psutil模块
  4. SP1026 FAVDICE - Favorite Dice
  5. 2.0 STL泛型编程
  6. Java 算法 数字黑洞
  7. 使用宽度优先搜索的常见场景
  8. 用python计算1~100的阶乘之和_在Python中递归函数调用举例and匿名函数lambda求1~100的和及计算阶乘举例...
  9. linux之openssh配置
  10. 一个简单的iBatis入门例子
  11. asp.net 抓取html内容,c# – 如何从ASP.NET获取网页的HTML内容
  12. Python进阶:如何将字符串常量转化为变量? 1
  13. xml python et_python xml处理
  14. wpsa4排版_WPS表格 排版 成a4纸 能打印格式 ! 大神们求教
  15. 今日简报 每日精选12条新闻简报 每天一分钟 知晓天下事 4月23日
  16. TextTranslatorOpenSource-文本翻译器开源版
  17. 新京报:区块链投资绝不能只听“演员的”
  18. python数据匹配,Excel
  19. [工作效率提升]焦虑性失眠的应对方法
  20. 大数据 客户标签体系_基于大数据的用户标签体系建设思路

热门文章

  1. 正则表达式如何匹配正反斜杠
  2. 基于.NET2.0的System.Net.Mail发送邮件Demo
  3. 018.Zabbix维护时间和模板导入
  4. solidity事件详解
  5. jquery特效(1)—点击展示与隐藏全文
  6. [转]两个经典的windbg调试案例,值得学习。
  7. python numpy矩阵索引_python – Numpy中的矩阵索引
  8. Web应用架构-Full-text Search Service
  9. 多云战略:企业如何精益求精?
  10. jenkins maven testng selenium自动化持续集成