zoukankan      html  css  js  c++  java
  • 微服务的.NET Core示例框架

    eShopOnContainers 是一个基于微服务的.NET Core示例框架

    https://www.cnblogs.com/fengqingyangNo1/p/9438428.html

    找到一个好的示例框架很难,但不是不可能。大多数是小型Todo风格的应用程序,通常基于SimpleCRUD。值得庆幸的是,Microsoft已经为eShopOnContainers创建了一个基于微服务的.NET Core示例应用程序。

    eShopOnContainers是 .NET Core示例应用框架,由Microsoft提供支持,基于简化的微服务架构和Docker容器技术。
    

    这个示例应用程序在服务器和客户端是跨平台的,这要归功于.NET Core服务能够在Linux或Windows容器上运行,具体取决于您的Docker主机,以及Xamarin用于在Android,iOS或Windows / UWP plus上运行的移动应用程序客户端Web应用程序的任何浏览器。

    该体系架构提出了一种面向微服务的体系结构实现,具有多个自治微服务(每个都拥有自己的数据库/ db),并在每个微服务中实现不同的方法(SimpleCRUD或DDD / CQRS模式),使用Http作为客户端应用程序之间的通信协议。微服务和支持异步通信,用基于Integration Events 和Event Bus(轻量级消息代理,在下面的RabbitMQ或Azure Service Bus之间进行选择)以及路线图中定义的其他功能来跨多个服务进行数据更新传播 。

    eShopOnContainers
    这是eShopOnContainers示例框架的开发环境概述。我只是想指出一些我认为在这个样本中做得很好的作品。

    Service Autonomy
    每个服务(Identity, Catalog, Ordering, Basket, Marketing, Locations)都是自主的。它拥有自己的数据库(存储),并且对任何其他服务没有任何依赖性。为了与其他服务进行通信,它在RabbitMQ或Azure Service Bus的 event bus上通过publish/subscriber使用事件驱动模型。

    每个服务都包含自己的HTTP API,它提供检索数据以及执行特定操作等功能。例如,Ordering服务包含一个API项目,该项目具有HTTP资源,用于检索订单以及取消订单。

    View Composition
    由于每个服务都提供自己的HTTP API来检索该服务中拥有的特定数据,因此最终需要从多个服务组合你需要的视图。

    Backend-For-Frontends(BFF)模式用于为特定客户端类型提供单个API后端。例如,MVC和SPA应用程序使用Web-Shipping和Web-Marketing BFF,而Xamarin移动应用程序使用Mobile-Shopping和Mobile-Marketing BFF。最终,这些BFF对所需服务进行HTTP调用,以组成客户端所需的数据。

    其他
    我强烈建议查看应用程序并进行一些挖掘。有许多不同的服务,每个服务都有自己独特的架构。例如在其HTTP API中通过MediatR库使用CQRS的订购服务。它还使用了一些技术DDD模式。

    如果你对Backends-For-Frontends感兴趣,我建议你查看Sam Newman 和Chris Richardson的帖子。

    虽然有点过时,但特殊的还有一个eShopOnContainers 的分支,但修改后运行在NServiceBus之上。

    最近正打算把单体应用程序改造成微服务。。

  • 相关阅读:
    漫谈C语言结构体
    如何理解c和c++的复杂类型声明
    STM32 时钟系统
    STM32 系统架构
    运放参数的详细解释和分析-part1,输入偏置电流和输入失调电流【转】
    ROM、RAM、DRAM、SRAM、FLASH的区别?
    FATFS模块应用笔记
    关于I2C和SPI总线协议【转】
    USB编程概念
    Ubuntu手机识别
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/9465604.html
Copyright © 2011-2022 走看看