开源推荐:.NET微服务最佳实践eShopOnContainers

dotNET全栈开发 4天前

以下文章来源于全栈码农画像 ,作者小码甲

本文翻译自微软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

(0)

相关推荐

  • ASP.NET Core微服务最佳实践eShopOnContainers

    为了推广.Net Core,微软为我们提供了一个开源Demo-eShopOnContainers,这是一个使用Net Core框架开发的,跨平台(几乎涵盖了所有平台,windows.mac.linux ...

  • 微服务架构及其最重要的 10 个设计模式!

    性能与架构 431篇原创内容 公众号 来源:Java日知录 软件设计模式是解决软件设计中常见问题的通用.可复用的解决方案.设计模式让我们可以分享通用词汇并使用经实战检验的方案,以免重复造轮子.现在,我 ...

  • 快速搞懂.NET 5/.NET Core应用程序的发布部署

    背景 .NET Framework时代,.NET 应用程序大多直接部署运行在Windows服务器上.无论部署exe,还是IIS站点.或是Windows Service,编译后的程序直接copy.简单配 ...

  • 【翻译】.NET 5 Preview8发布

    今天,.NET 5预览8发布了,对于.NET5.0的功能开发已经完成了,这必须要排除待处理的bug,预览8是最后一次预览版本.预计11月正式的.NET5.0版本发布之前还将发布两个正式之前的候选版本, ...

  • Web后端开发框架|WebApi后端主流开发框架介绍

      什么是框架? 框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法.另一种定义认为,框架是为应用开发者定制的应用骨架或开发模板,一个框架是一个可复用的设 ...

  • 中台和微服务-核心基础概念阐述

    今天准备再整理一篇文章谈下中台和微服务的基本概念.这篇文章我准备减少配图,重点是通过文字能够把关键的道理讲解明白. 首先还是看下中台的起源. 谈到中台一定会说到阿里提出的大中台小前台的概念,但是阿里中 ...

  • .NET 6 预览版 7 发布

    我们很高兴地发布了 .NET 6 预览版 7.这是我们进入(两个)候选发布版(RC)之前的最后一个预览版.在我们放慢发布速度之前,团队一直在萤窗雪案,以完成最后一组功能.在这个版本中,你将看到各功能的 ...

  • .NET微服务最佳实践eShopOnContainers

    本文翻译自微软Docs, 内嵌译者多年使用的参悟,如理解有误,请不吝赐教. 微软与社区专家合作,开发了功能齐全的云原生微服务示例应用eShopOnContainers. 该应用旨在展示使用.NET.D ...

  • 大数据时代,企业如何利用数据实现精准化和个性化管理及服务 | 最佳实践分享

    本文原题:<大数据时代背景教育企业的精准化和个性化管理及服务实践>,以教育行业项目的建设为例,介绍了如何通过数据采集.数据清洗.数据治理.数据挖掘.数据分析.数据管理和服务的全方位大数据管 ...

  • “逃离”单体,GitHub的微服务架构实践

    作者 | Sha Ma 出品 | http://03ozy.cn/QhFuJ 本文介绍 GitHub 如何从单体架构迁移到微服务架构,并对其中一些最佳实践做了详细说明. 1旅程开启 GitHub 创建 ...

  • Spring Boot快速开发REST服务最佳实践

    一.为什么选择Spring Boot Spring Boot是由Pivotal团队提供的全新框架,被很多业内资深人士认为是可能改变游戏规则的新项目.早期我们搭建一个SSH或者Spring Web应用, ...

  • 微服务架构设计中的设计模式、原则及最佳实践

    作者 | Mehmet Özkaya 译者 | 平川 策划 | 闫园园 来源丨AI前线(ID:ai-front) 本文既有理论知识,又有实用信息:我们将学习每一种具体的模式,为什么以及应该在什么地方使 ...

  • 微服务实践之分布式定时任务

    承接上篇:上篇文章讲到改造 go-zero 生成的 app module 中的 gateway & RPC .本篇讲讲如何接入 异步任务 以及 log的使用. Delay Job 日常任务开放 ...

  • 拿这个开源项目来入门Spring Cloud微服务很香呀,若依微服务版本

    我是程序汪 4天前作者 | 若依整理 | 我是程序汪程序汪推荐理由:项目文档非常完善技术栈也比较新,各种版本都有(分离不分离微服务版本).平台简介若依是一套全部开源的快速开发平台,毫无保留给个人及企业 ...

  • 微服务架构设计实践系列之九:应用架构

    微服务架构设计实践  目    次1 序言2 微服务3 软件架构设计思想4 微服务架构设计实践4.1 项目概述4.2 架构准备阶段4.3 概念架构阶段4.4 细化架构阶段4.4.1 业务架构4.4.2 ...