NCF 的Dapr应用实例的运行

简介

在进行今天的主要内容之前,先带大家了解一下Dapr

Dapr 是一个可移植的、事件驱动的运行时,它使任何开发人员都可以轻松构建在云和边缘上运行的弹性、无状态和有状态的应用程序,并包含语言和开发人员框架的多样性。

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

3c4940fecc347ecb8874ccc6ff2dc974.png

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

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

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

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

云和边缘的微服务构建块

1291dde6d597d5b59dde7a01db546579.png

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

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

边车架构

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

f39c57c19165f096276f645af43f2fa0.png

自托管本地开发

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

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

b386db44973524edb413db259ce73293.png

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

9ae42a910695f0bdc3ac0e2c23aaf720.png

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

知道NCF的小伙伴们都知道,不知道的小伙伴们可以到NCF Docs中去一睹NCF的真容。

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

NCF具有简单,灵活,可扩展的特性

现在给他加上Dapr,你可以想象一下,它将更大限度的为开发者伙伴提供更多的能力,下面我们就来看看NCF的Dapr版

步骤

  • 下载NCF源码

  • 打开Visual Studio,并打开Dapr分支源码

  • 修改数据库配置

  • 修改Redis配置

  • 编译项目docker-compose

  • 启动Docker

  • 检查Docker运行状态

  • 配置Docker共享文件夹目录

  • 运行

实施

  • 下载NCF源码

下载地址:https://github.com/NeuCharFramework/NCF

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

  • 打开Visual Studio,并打开Dapr分支源码

470004bf233cb8bc59fa8ccd8b0f5c76.png

   打开源码后如图所示

  Senparc.Web      主运行项目

  XncfModules/    Xncf模块目录

  docker-compose    docker运行项目

  • 修改数据库配置

打开数据库配置文件

1a433116ab3397947d86a5dc28fad474.png

 修改Sql-Server节点的内容,如下所示

a18c4929060059bedaca30525e66a547.png

 修改这三个位置即可

  • 修改Redis配置

设置docker-compose为启动项

5bbd9bc18166d2d191d5df9226cf161b.png

9f58ccdefdc85e78b4cdc5ebc3d55f52.png

 如果启动的时候提示xxx容器不存在,则需要添加项目容器的支持,右键项目添加Docker支持

ca1f13521132e0d99e24e1507a23fe5e.png

  需要查看docker容器运行中的redis中的配置信息

75b32c9e5d17c31b7867d3a67d45eb37.png

  • 编译项目docker-compose

5979b147b4dd6e63d320cf1686c45b70.png

  • 启动Docker

  • 检查Docker运行状态

244df0fb36bec3f8d4932d29b4b1c901.png

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

  • 配置Docker共享文件夹目录

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

08780c417b20452ca32bdc76c616c8f8.png

 给共享的文件夹授权

9cfe873ff67cb5d6dd2e1a0394cfaa0b.png

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

  • 运行

648b60ca12eef29e6a8125d090b78b33.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/285970.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

06 tp6 的数据更新(改)及删除 《ThinkPHP6 入门到电商实战》

文章目录(更新中…) 01 thinkphp6的前期开发准备《ThinkPHP6 入门到电商实战》 02 控制器《ThinkPHP6 入门到电商实战》 03 数据库查询、模型查询、多库查询《ThinkPHP6 入门到电商实战》 04 tp6 的查数据《ThinkPHP6 入门到电商实战》 05 tp6 的数据添…

2020年:风雨兼程,不负韶华,注定是不平凡的一年

时光易逝,岁月不老。2020,发生了太多的惊喜。 文章目录小瑶瑶报到疫情防控,我们是认真的感谢CSDN一路相伴小瑶瑶报到 1月20日,闺女小瑶瑶已超过预产期一周了,决定入院进行手术,次日,手术顺利进…

Python对文件的操作(转)

一、文件对象 我理解的文件对象就是一个接口&#xff0c;通过这个接口对文件进行相关操作。 《Python 核心编程》上说的很晦涩&#xff0c;这里没有深刻理解到&#xff0c;希望有人能解释给我听。>>> f open(demo.txt,r) >>> f <open file demo.txt, mod…

微软发布全新Win11 轻量级系统Validation OS

你可能还不知道&#xff0c;在没有任何公开宣传的情况下&#xff0c;在最近&#xff0c;微软最近发布了一个全新的操作系统 Microsoft Validation OS。根据微软的说法&#xff0c;这是一个轻量级、快速且可自定义的基于 Windows 11 的操作系统。专门为硬件或软件供应商、开发人…

CSDN博客文章阅读模式插件(附源码)

插件地址&#xff1a;https://greasyfork.org/zh-CN/scripts/380667-csdn%E5%8D%9A%E5%AE%A2%E9%98%85%E8%AF%BB%E6%A8%A1%E5%BC%8F%E5%88%87%E6%8D%A2%E6%8F%92%E4%BB%B6 插件安装使用说明请参阅&#xff1a;https://greasyfork.org/zh-CN 浏览器&#xff08;正常&#xff09…

【ArcGIS风暴】ArcGIS tif转jpg:JPEG压缩仅支持8位或16位无符号数据(具有一个或三个波段,且没有色彩映射表)解决方案!

扩展阅读:【ArcGIS风暴】ArcGIS支持的栅格数据格式大全及格式转换案例精解 文章目录 问题描述tif格式和JPEG格式详解ArcGIS软件tif转jpg方法总结问题描述 如下图所示,在ArcGIS中将tif格式的无人机影像数据导出为Jpg格式时,提示:JPEG压缩仅支持8位或16位无符号数据(具有一…

Blazor University (29)表单 —— 编辑表单数据

原文链接&#xff1a;https://blazor-university.com/forms/editing-form-data/编辑表单数据源代码[1]因为 EditForm 组件呈现标准的 <form> HTML 元素&#xff0c;实际上可以在我们的标记中使用标准的 HTML 表单元素&#xff0c;例如 <input> 和 <select>&a…

广州Uber优步司机奖励政策(1月4日~1月10日)

滴快车单单2.5倍&#xff0c;注册地址&#xff1a;http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单&#xff1a;http://www.cnblogs.com/mfryf/p/4612609.html 优步奖励低/不挣钱/怎么办?看这里&#xff1a;http://www.cnblogs.com/mfry…

10 关联模型《ThinkPHP6 入门到电商实战》

一、什么是关联模型 关联模型指在 tp 中使用模型对多个数据表进行关联。例如一个主账户表与一个账户信息表进行关联&#xff0c;此时两者关联后可以更加简便的进行操作&#xff0c;使代码更加清晰&#xff0c;操作更加简便。 二、 正向一对一关联 一对一关联指的是数据只有一…

Android 整体设计及背后意义

目录 1. Android设计的现实意义 1.1 发展的前提&#xff1a;硬件抽象 1.2 能力的枢纽&#xff1a;组件化 1.3 应用的基础-接口层 2. 对于我们的象征意义和实践 3. 小结 阿里妹导读&#xff1a;现实工作中经常可以听到这样的说法&#xff1a;框架的升级带来协议性能的提升…

85、交换机安全MAC层***配置实验之Port-Security

1、Port Security解析触发Port Security的条件&#xff1a;未授权的MAC地址端口MAC地址数量超过了限制触发Port Security后的动作&#xff1a;protect Security violation protect mode 丢弃数据&#xff0c;不发送SNMP Trap消息 restrict Security violation restr…

11 验证器《ThinkPHP6 入门到电商实战》

注&#xff1a;示例来源于官方手册 一、验证器定义 验证器用于对数据进行验证&#xff0c;你可以理解为一个“层”&#xff0c;在传入数据时可以使用这个层对数据进行验证&#xff0c;这样就可以不用频繁的在方法中编写代码去验证&#xff0c;只需要编写一个验证层即可&#…

nginx+php

nginxphp基础架构 生产实践 nginx配置文件: 主配置文件 123456789101112131415161718192021222324252627282930313233[rootlinux-node1 conf.d]# cat /etc/nginx/nginx.conf user nginx;worker_processes auto;error_log /var/log/nginx/error.log; pid /run/nginx.pid; # Load…

【ArcGIS风暴】ArcGIS10.8中栅格数据金字塔的来龙去脉,你知道吗?

如下图所示,通常情况下,当将没有金字塔的栅格数据集添加至 ArcGIS时,系统将提示您构建金字塔。金字塔指不同比例下分辨率降低的数据概视图。金字塔十分有用,因为金字塔提升了分辨率低于其全分辨率的栅格数据集的绘制速度。建议构建用于大型栅格数据集的金字塔。 点击【是】…

斯坦福大学Andrew Ng - 机器学习笔记(8) -- 推荐系统 大规模机器学习 图片文字识别...

大概用了一个月&#xff0c;Andrew Ng老师的机器学习视频断断续续看完了&#xff0c;以下是个人学习笔记&#xff0c;入门级别&#xff0c;权当总结。笔记难免有遗漏和误解&#xff0c;欢迎讨论。 鸣谢&#xff1a;中国海洋大学黄海广博士提供课程视频和个人笔记&#xff0c;在…

【CSS动效实战(纯CSS与JS动效)】02 flex 布局实战(仿 JD 及 gitCode 布局)及 media 自适应初探 下

二、flex 仿 gitCode 布局 及 自适应 首先查看我们的页面&#xff1a; 这个时候直接顶部一个块&#xff0c;下面分为左中右三个块&#xff0c;然后就解决了&#xff0c;是不是很简单&#xff1f;相比刚刚那么这个简单多了。那就来做吧。 2.1 基本布局 首先给一个 style 价格…

C语言按行和列求平均成绩代码(指针,二维数组)

如下所示成绩表,如何按行(每个人)或按列(每门课)的平均成绩? 结果: 文章目录 1. 自定义行平均函数2. 自定义列平均函数3. main()函数调用平均函数1. 自定义行平均函数 float save(float **PA,int M,int

架构师必须知道的架构设计原则

目录 一、前言 二、软件设计原则 GRASP通用职责分配软件模式 1. 信息专家(Information Expert) 2. 创建者(Creator) 3. 低耦合(Low Coupling) 4. 高内聚(High Cohesion) 5.控制器(Controller) 6. 多态(Polymorphism) 7. 纯虚构(Pure Fabrication) 8. 间接(Indirectio…

百度:病种类贴吧全面停止商业合作

新浪科技讯 1月12日上午消息&#xff0c; 百度今日就热门疾病被出卖一事向新浪科技发布对外公告&#xff1a;病种类贴吧全面停止商业合作 只对权威公益组织开放。百度方面在公告中表示&#xff0c;为了规范具有明显商业属性贴吧的运营管理&#xff0c;并提升贴吧的内容质量和用…

【CSS动效实战(纯CSS与JS动效)】02 flex 布局实战(仿 JD 及 gitCode 布局)及 media 自适应初探

一、flex 仿 JD 布局 首先&#xff0c;我们在编辑器中&#xff0c;写上基础代码&#xff0c;当然要在 style 中加上一个 flex 类&#xff0c;用于 flex 布局的定义&#xff0c;这个是必然需要的&#xff0c;在此一定得加上。 <!DOCTYPE html> <html lang"en&qu…