头图

image.png

简介

在进行今天的主要内容之前,先带大家了解一下Dapr。
Dapr 是一个可移植的、事件驱动的运行时,它使任何开发人员都可以轻松构建在云和边缘上运行的弹性、无状态和有状态的应用程序,并包含语言和开发人员框架的多样性。

▌任何语言,任何框架,任何地方

今天,我们正在经历一波云采用浪潮。开发人员对 Web + 数据库应用程序架构感到满意,例如经典的 3 层设计,但对本质上分布式的微服务应用程序架构不满意。成为分布式系统专家很难,你也不应该这样做。开发人员希望专注于业务逻辑,同时依靠平台为他们的应用程序注入云原生架构的规模、弹性、可维护性、弹性和其他属性。

这就是 Dapr 的用武之地。Dapr 将构建微服务应用程序的最佳实践编入称为构建块的开放、独立 API,使您能够使用您选择的语言和框架构建可移植的应用程序。每个构建块都是完全独立的,您可以在应用程序中使用其中的一个、部分或全部。

使用 Dapr,您可以将现有应用程序逐步迁移到微服务架构,从而采用云原生模式,例如横向扩展/缩减、弹性和独立部署。

此外,Dapr 与平台无关,这意味着您可以在本地、任何 Kubernetes 集群、虚拟机或物理机以及 Dapr 集成的其他托管环境中运行您的应用程序。这使您能够构建可以在云和边缘运行的微服务应用程序。

▌云和边缘的微服务构建块

在构建微服务应用程序时有许多考虑因素。Dapr 在构建开发人员可以以标准方式使用并部署到任何环境的微服务应用程序时,为常用功能提供了最佳实践。它通过提供分布式系统构建块来做到这一点。

这些构建块 API 中的每一个都是独立的,这意味着您可以在应用程序中使用它们中的一个、部分或全部。

▌边车架构

Dapr 将其 HTTP 和 gRPC API 公开为 sidecar 架构,既可以作为容器也可以作为进程,不需要应用程序代码包含任何 Dapr 运行时代码。这使得与 Dapr 的集成很容易与其他运行时集成,并提供应用程序逻辑的分离以提高可支持性。

▌自托管本地开发

在自托管模式下,Dapr 作为一个单独的 sidecar 进程运行,您的服务代码可以通过 HTTP 或 gRPC 调用该进程。每个正在运行的服务都有一个 Dapr 运行时进程(或 sidecar),它被配置为使用状态存储、发布/订阅、绑定组件和其他构建块。

您可以使用Dapr CLI在本地计算机上运行启用 Dapr 的应用程序。下图显示了使用 CLIinit命令配置时 Dapr 的本地开发环境。

看完上述文章,我们大家需要有一个共识的概念就是,Dapr它是边车模式,下图中箭头所指的地方就是边车,是不是一下子就知道Dapr是什么样的印象了。

你可以理解为是一些附加的服务,当然它也意味着,将是一个无所不能的服务。

知道NCF的小伙伴们都知道,不知道的小伙伴们可以到NCF Docs中去一睹NCF的真容。( NeuCharFramework)是一整套可用于构建基础项目的企业级通用 .NET 框架,严格遵循 DDD 设计模式,包含了基础的缓存、数据库、模型、验证及配套管理后台,高度模块化, 具有高度的可扩展性和耐造性。

NCF具有简单,灵活,可扩展的特性,现在给他加上Dapr,你可以想象一下,它将更大限度的为开发者伙伴提供更多的能力,下面我们就来看看NCF的Dapr版。

NCF Docs:

https://www.ncf.pub/Docs#sort...

步骤

  • 下载NCF源码
  • 打开Visual Studio,并打开Dapr分支源码
  • 修改数据库配置
  • 修改Redis配置
  • 编译项目docker-compose
  • 启动Docker
  • 检查Docker运行状态
  • 配置Docker共享文件夹目录
  • 运行

实施

  • 下载NCF源码

下载地址:
https://github.com/NeuCharFra...

分支:Developer-front-DDD-Dapr-20220218

  • 打开Visual Studio,并打开Dapr分支源码
    0fbe2ff508c8c46016c8984f58eb6b5.jpg

打开源码后如图所示
Senparc.Web 主运行项目
XncfModules/  Xncf模块目录
docker-compose  docker运行项目

  • 修改数据库配置
    打开数据库配置文件
    cab3ddb9e0bfa7a35d8bf9a01a00a0c.jpg

修改Sql-Server节点的内容,如下所示
cab3ddb9e0bfa7a35d8bf9a01a00a0c.jpg
修改这三个位置即可

  • 修改Redis配置

设置docker-compose为启动项
b11dcf4fba84e6495ddf3e20ad1866a.jpg

b1de1b24eb4ae0ffd49fa2dd899737c.jpg

如果启动的时候提示xxx容器不存在,则需要添加项目容器的支持,右键项目添加Docker支持
bb93058da0bb83f6f0e260578a2aac1.jpg
需要查看docker容器运行中的redis中的配置信息
e83968bc09b6e6c79c43b88d0ba0b48.jpg

  • 编译项目docker-compose
    8e1fe00d238d790178d69549ade31ed.jpg
  • 启动Docker
  • 检查Docker运行状态
    77ce5fdf0a59d25ee5def2eaa880824.jpg

在Docker运行的桌面图标上右键,就能看到docker运行是否正常

配置Docker共享文件夹目录

进入windows版,docker desktop主界面,看到如下图的设置图标,点击进入
2d3d7e99f5abd92077cf72fb2de9ecc.jpg

给共享的文件夹授权

e2338069452d10b7b4376c5782893b8.jpg

为什么要给文件夹授权呢,因为docker本身是一个容器环境,独立于本身的操作系统,如果要与操作系统中的文件夹通信或者传递,则需要用到共享,挂载等功能,因此需要共享文件夹

  • 运行
    9f53577845c726c97b931da7db6d8e4.jpg

微软最有价值专家(MVP)

微软最有价值专家是微软公司授予第三方技术专业人士的一个全球奖项。29年来,世界各地的技术社区领导者,因其在线上和线下的技术社区中分享专业知识和经验而获得此奖项。

MVP 是经过严格挑选的专家团队,他们代表着技术最精湛且最具智慧的人,是对社区投入极大的热情并乐于助人的专家。MVP 致力于通过演讲、论坛问答、创建网站、撰写博客、分享视频、开源项目、组织会议等方式来帮助他人,并最大程度地帮助微软技术社区用户使用 Microsoft 技术。

更多详情请登录官方网站:https://mvp.microsoft.com/zh-cn


微软技术栈
418 声望994 粉丝

微软技术生态官方平台。予力众生,成就不凡!微软致力于用技术改变世界,助力企业实现数字化转型。