前言 由于微服务的盛行,不少公司都将原来细粒度比较大的服务拆分成多个小的服务,让每个小服务做好自己的事即可. 经过拆分之后,就避免不了服务之间的相互调用问题!如果调用没有处理好,就有可能造成整个系统的瘫痪,好比说其中一些基础服务出现了故障,那么用到这些基础服务的地方都是要做一定的处理的,不能让它们出现大面积的瘫痪!!! 正常情况下的解决方案就要对服务进行熔断处理,不能因为提供方出现了问题就让调用方也废了. 熔断一般是指软件系统中,由于某些原因使得服务出现了过载现象,为防止造成整个系统故障,从而采…
hangfire是执行后台任务的利器,具体请看官网介绍:https://www.hangfire.io/ 新建一个asp.net core mvc 项目 引入nuget包 Hangfire.AspNetCore hangfire的任务需要数据库持久化,我们在Startup类中修改ConfigureServices 然后在Configure方法中启用hangfire中间件 现在我们运行一下项目,可以看到,数据库里自动生成了很多表,这些表就是用来持久化任务的 我们打开如下地址,可以看到hangfir…
hangfire是执行后台任务的利器,具体请看官网介绍:https://www.hangfire.io/ 新建一个asp.net core mvc 项目 引入nuget包 Hangfire.AspNetCore hangfire的任务需要数据库持久化,我们在Startup类中修改ConfigureServices 然后在Configure方法中启用hangfire中间件 现在我们运行一下项目,可以看到,数据库里自动生成了很多表,这些表就是用来持久化任务的 我们打开如下地址,可以看到hangfir…
前言 插件化,其实也并不是什么新东西了,像nopCommerce等开源项目都有类似的机制,而且功能比较完善和齐全. 相信大家都对接过不少支付方式,支付宝.微信以及各大银行或第三方的支付公司. 我们可以把支付相关的操作抽象出来,无非就是支付,异步回调,退款,查询等几个重要的操作. 这个时候我们可以将各种支付方式都做为一个插件,这些插件都实现上面的操作,这样我们整合一个入口,去加载相应的插件即可. 这个入口常规情况就是MVC或者是WEB API. 下面来实现一个简单的例子. 简单的例子 首先建立一个…
using System; using System.Text; //System.Security下加密算法的命名空间 using System.Security.Cryptography; namespace Util { public class MD5Encryption { /// <summary> /// MD5十六位的加密 /// </summary> /// <param name="password"></param>…
谈谈Circuit Breaker在.NET Core中的简单应用 前言 由于微服务的盛行,不少公司都将原来细粒度比较大的服务拆分成多个小的服务,让每个小服务做好自己的事即可. 经过拆分之后,就避免不了服务之间的相互调用问题!如果调用没有处理好,就有可能造成整个系统的瘫痪,好比说其中一些基础服务出现了故障,那么用到这些基础服务的地方都是要做一定的处理的,不能让它们出现大面积的瘫痪!!! 正常情况下的解决方案就要对服务进行熔断处理,不能因为提供方出现了问题就让调用方也废了. 熔断一般是指软件系统中…
说起IOC和DI,使用过ASP.NET Core的人对这两个概念一定不陌生,早前,自己也有尝试过去了解这两个东西,但是一直觉得有点很难去理解,总觉得对其还是模糊不清,所以,趁着今天有空,就去把两个概念捋清楚,并将学习过程的知识点记录下来. 一.IOC和DI的理解 1.1 什么是IOC? Ioc—Inversion of Control,即控制反转,其是一种设计思想,而不是一种技术.再没有使用IOC之前,我们一般是通过new来实例化,从而创建一个对象.但是我们使用IOC之后,创建这个对象的控制权将…
前言 前面的博客谈的大多数都是针对数据的缓存,今天我们来换换口味.来谈谈在ASP.NET Core中的ResponseCaching,与ResponseCaching关联密切的也就是常说的HTTP缓存. 在阅读本文内容之前,默认各位有HTTP缓存相关的基础,主要是Cache-Control相关的. 这里也贴两篇相关的博客: 透过浏览器看HTTP缓存 HTTP协议 (四) 缓存 回到正题,对于ASP.NET Core中的ResponseCaching,本文主要讲三个相关的小内容 客户端(浏览器)缓…
Handle faults that may take a variable amount of time to rectify when connecting to a remote service or resource. This pattern can improve the stability and resiliency of an application.在连接到一个远程服务或资源时,处理故障可能需要一个变量的时间来纠正.这种模式可以提高应用程序的稳定性和弹性. Context a…
简介 我们在做项目的时候, 往往要处理一些后台的任务. 一般是两种, 一种是不停的运行,比如消息队列的消费者.另一种是定时任务. 在.NET Framework + Windows环境里, 我们一般会使用 Windows 服务处理这些情形. 但在.Net Core + Linux环境里, 有没有类似的解决方案呢? 了解的方法有两种: Web Host: 创建一个 ASP.Net Core 的 Web 项目(如MVC 或 WebAPI), 然后使用IHostedService或者Backgroun…