Skip to main content

了解事件驱动的架构

分类:  Azure云架构师入门 标签:  #Azure #基础 #Azure Cloud Architecting 发布于: 2023-06-05 11:44:29

对于事件驱动的架构,很多用户第一时间就会想起消息队列的使用,目前市面上的所有的消息队列的产品确实是可以应用于事件的架构,但是基于事件的架构并非是完全基于消息队列的驱动,大型分布式系统确实会比较依赖消息队列,小型系统则未必。 事件驱动架构中主要的两类角色包括事件的生产者以及事件的消费者,结构图如下所示: 事件的最大特性就是实时,因此生产者可以立即送出事件产生的消息,订阅该事件的应用也会根据事件迅速的做出反馈,同时订阅者之间也是相互解耦,不存在依赖关系,而且每个订阅者都能看到该事件的发生,并且仅仅对每个事件仅仅处理一次。 同时需要注意的是事件架构中,可以有两种模式,一种是发布/订阅模式,另外一种是事件流模式。发布/订阅模式容易理解,事件流模式需要注意的是产生的事件流会写入日志,

Read more

了解微服务架构

分类:  Azure云架构师入门 标签:  #Azure #基础 #Azure Cloud Architecting 发布于: 2023-06-05 11:40:15

什么是微服务? 官方的定义就是微服务是一系列小的,自包含的服务构成的应用系统。实际远远不止这些,微服务虽然在解耦了服务之间的依赖关系,不再将更复杂的业务全部包含在某一个API中,但是这并不代表降低了业务的复杂性,恰恰相反,正是因为有了特别复杂的业务需求,我们才尝试使用类似于微服务这样的架构来解决我们的问题,一个非常有意思的问题是,同一个复杂的业务在很多时候看起来使用微服务架构反而是更复杂了,例如以前简单N层架构,如果一个业务有几个事务必须保证完成,使用N层架构,一个API中全部完成,可能就是慢一点,但是如果使用微服务,还得考虑分布式事务,或者事务补偿机制,总之还得拆分业务需求,看起来也不是那么美好。那么微服务到底适用于什么场景呢? 第一当然是很大的应用系统,第二是很大的机构或者团队,最

Read more

了解Web-Queue-辅助角色体系结构

分类:  Azure云架构师入门 标签:  #Azure #基础 #Azure Cloud Architecting 发布于: 2023-06-05 11:36:38

分类: Azure架构师入门 ◆ 标签: #Cloud #Azure #Azure Developer #Azure Tutorial ◆ 发布于: 2021-09-09 目前这个结构也是小型应用或者是小型企业应用在Azure云计算上常用的架构之一,相比较N层结构,反而该结构更多的小型应用首选或者更小型的企业会选用,因为很多大型企业在N层应用上已经深耕多年,他们有丰富的基础维护经验,他们直接将原有的IT团队从维护实体硬件转为维护云资源,逐步消减IT维护人员,慢慢过渡。但是采用web-queue-辅助角色这样的体系架构,该结构先天性选择Azure PaaS服务和组件,已经无需太多的IT人员参与,对于大型企业迁移应用和系统至云是不利的,因此该架构的选择不是很多传统企业的首选,反而对于一些初

Read more

了解N层应用程序架构

分类:  Azure云架构师入门 标签:  #Azure #基础 #Azure Cloud Architecting 发布于: 2023-06-05 11:31:51

N层应用程序在这里理解为多个层次,前面我们简要的描述过在N层架构的应用中使用子网来划分依赖关系,在垂直的关系上我们我们可以将N层架构分为两层,物理层和逻辑层,这种应用架构基本是以Azure IaaS组件来划分应用的逻辑上的各层,例如使用Azure Virtail Network来规划物理虚拟机,使用Azure VM来运行和配置应用等等,各层之间存在调用关系,一般来讲是上层调用下层,但是下层不能调用上层。大致的关系图,可以使用下图来表示: 层在本架构中是非常重要的概念,我们这里用层来分离应用的职责以及管理依赖关系,每个层都在不同的计算机上运行,虽然每个层可能都运行在不同的机器上,但是也不是必须的,不同的层也可以运行在同一个计算机上,在物理机器上分层有利于提高整个应用的水平缩放能力和灾后恢

Read more

如何选择合适的架构

分类:  Azure云架构师入门 标签:  #Azure #基础 #Azure Cloud Architecting 发布于: 2023-06-05 11:27:33

对于大型系统的设计,架构师这个角色必不可少,架构师除了要对系统有足够深入的了解,同时也需要对业务有深入的了解,架构师的职责之一就是要根据业务的需求,选择合适该业务场景的应用架构,保证应用架构的可扩展性以及可维护性,以及可实施性。一个应用系统实施的好坏和架构师有着非常紧密的关系。 那么架构师在选择应用架构时首先需要了解目前成熟的架构有哪些,并且要熟知各种架构的优点,缺点,限制。 目前流行且得到过验证的架构有如下几种: N层架构:N层架构非常适合传统企业向现代云架构转换的迁移架构。优缺点都非常明显,更新发布慢。 Web-消息队列-辅助计算: 这个架构非常适合小型的企业以及应用,主要的技术点时使用消息队列解耦前端和计算,优缺点也非常明显。 微服务架构:今年对于大型的应用采用较

Read more

Azure应用体系结构指南概述

分类:  Azure云架构师入门 标签:  #Azure #基础 #Azure Cloud Architecting 发布于: 2023-06-05 11:25:22

应用开发进入了云计算时代,一改之前的那种单机或者多机运行的架构,特别是国内互联网高度发达的场景下,对于应用提出了更高的要求,稍微了解人才市场就会发现,针对于软件或者互联网企业,招聘市场上长期的技术招聘要求从需要理解多线程,缓存, NoSQL, 大数据,AI到各种架构等非常明细的要求以外,包括分布式数据存储,异步计算等鞥。特别那些想应聘头部企业的人员需要了解得更深入,虽然真进入了之后,未必有机会接触。另外针对企业遇到的实际应用场景,类似促销,秒杀,双十一,618等等活动时,尤其要付出成倍的精力来设计及维护系统。自从AWS, 阿里,奈飞,腾讯等国内外大部分企业开始使用云计算平台来解决日益庞大的业务需求时,他们的应用架构也必然为了适应云计算平台进行新的体系设计。 微软推出Azure计算平台之

Read more

静态文件支持

分类:  Asp.net Core入门 标签:  #Asp.Net core基础 #基础 #Web 发布于: 2023-06-04 20:43:38

静态文件主要是指在ASP.net Core项目种的包括js, css, html, 图片等等资产。ASP.net Core会直接向客户端返回这些资产。 使用静态文件中间件 静态文件默认是存储在web root目录,这个目录默认是在{contentroot}/wwwroot里,但是也可以使用扩展方法UseWebRoot来进行改变。在ASP.net Core的模板里是使用方法CreateDefaultBuilder来设置Content root和web root的。 默认的web root的布局是: wwwroot css js lib 启用中间件 直接从模板里可以看到:

Read more

Make HTTP Request

分类:  Asp.net Core入门 标签:  #Asp.Net core基础 #基础 #Web 发布于: 2023-06-04 20:41:42

Asp.net Core提供将IHttpClientFactory实例注册为服务,为用户创建和配置HttpClient, IHttpClientFactory提供如下的优势: 提供一个控制中心,用于创建命名或者类型HttpClient。 利用Delegate handler为HttpClient创建中间件。并提供基于Polly的扩展方法,为httpclient提供重试,错误处理等功能。 将HttpClientMessageHandler进行池化,并管理其生命周期。 为所有通过client的请求提供可配置的日志功能。 基本的使用形式 IHttpClientFactory有如下几种使用形式: 基本使用方法 命名客户端 强类型客户端 泛型客户端

Read more

错误处理

分类:  Asp.net Core入门 标签:  #Asp.Net core基础 #基础 #Web 发布于: 2023-06-04 20:39:26

本节我们来学习错误的处理。 Developer Exception Page 在开发的阶段打开UseDeveloperExceptionPage()中间件。 例如: public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { app.UseExceptionHandler("/Error"); app.UseHsts(); }

Read more