摘要: 今天给大家分享一个微软官方的好东西:Channel。 前言 今天给大家分享一个微软官方的生产者/消费者方案的特性解决:Channel。 Channel在System.Threading.Channels命名空间下,Core 2.1使用时,需要从Nuget上安装。 % dotnet add packa 阅读全文
posted @ 2020-12-02 09:58 老王Plus 阅读(8604) 评论(19) 推荐(18) 编辑
摘要: Span这个东西出来很久了,居然因为5.0又火起来了。 相关知识 在大多数情况下,C#开发时,我们只使用托管内存。而实际上,C#为我们提供了三种类型的内存: 堆栈内存 - 最快速的内存,能够做到极快的分配和释放。堆栈内存使用时,需要用stackalloc进行分配。堆栈的一个特点是空间非常小(通常小于 阅读全文
posted @ 2020-11-25 09:19 老王Plus 阅读(11826) 评论(5) 推荐(9) 编辑
摘要: 前一篇文章,概念性地介绍了K8s的一些基础组件,如Pod、部署和服务。这篇文章,我打算写写如何使用YAML清单定义和配置这些资源。 实际上,在K8s集群中创建对象有几种方式 - 命令,或声明。两种方式区别不大。 不过实际应用中,一旦开始真正部署应用,最终都会走到YAML配置文件方式。这种方式也叫配置 阅读全文
posted @ 2020-11-18 10:07 老王Plus 阅读(857) 评论(0) 推荐(4) 编辑
摘要: 最近闲了点,写个大活:部署Dotnet应用到K8s。 写在前边的话 一直想完成这个主题。但这个主题实在太大了,各种拖延症的小宇宙不时爆发一下,结果就拖到了现在。 这个主题,会是一个系列。在这个系列中,我会讨论将应用部署到K8s时需要的各个内容和知识,以及各种刨过的坑。 为了避免这个系列被扩得过大,我 阅读全文
posted @ 2020-11-11 09:54 老王Plus 阅读(1080) 评论(1) 推荐(7) 编辑
摘要: Quartz.NET这么NB的作业调度系统,不会还行? 今天介绍一下Quartz.NET的托管运行,官网传送门。 一、前言 Quartz.NET,按官网上的说法,是一款功能齐全的任务调度系统,从小型应用到大型企业级系统都能适用。在众多项目中,Quartz.NET以可靠、集群的方式,被用作在定时器上运 阅读全文
posted @ 2020-10-23 10:59 老王Plus 阅读(1751) 评论(3) 推荐(2) 编辑
摘要: Dotnet Core的SDK版本总在升级,怎么使用一个特定的版本呢? 假期过完了,心情还在。今天写个短的。 一、前言 写这个是因为昨天刷微软官方文档,发现global.json在 SDK 3.0 后,更新了一些内容。文档提到了这个更新,但规则说的不太清楚,所以研究了一下,成了这个文章。 先普及一下 阅读全文
posted @ 2020-10-14 10:34 老王Plus 阅读(5202) 评论(4) 推荐(4) 编辑
摘要: 今天,我们深度研究一下IHttpClientFactory。 一、前言 最早,我们是在Dotnet Framework中接触到HttpClient。 HttpClient给我们提供了与HTTP交互的基本方式。但这个HttpClient在大量频繁使用时,也会给我们抛出两个大坑:一方面,如果我们频繁创建 阅读全文
posted @ 2020-09-30 11:59 老王Plus 阅读(2409) 评论(0) 推荐(9) 编辑
摘要: 这一篇是接着前一篇在写的。如果没有看过前一篇文章,建议先去看一下前一篇,这儿是传送门 一、前言 前一篇文章,我们从应用启动时异步运行任务开始,说到了必要性,也说到了几种解决方法,及各自的优缺点。最后,还提出了一个比较合理的解决方法:通过在Program.cs里加入代码,来实现IWebHost启动前运 阅读全文
posted @ 2020-09-23 08:37 老王Plus 阅读(1132) 评论(2) 推荐(1) 编辑
摘要: 这是一个大的题目,需要用几篇文章来说清楚。这是第一篇。 一、前言 在我们的项目中,有时候我们需要在应用程序启动前执行一些一次性的逻辑。比方说:验证配置的正确性、填充缓存、或者运行数据库清理/迁移等。 如何合理、有效、优雅地完成这个任务,是这个文章讨论的主要内容。 要实现这样一个功能,其实我们有几个选 阅读全文
posted @ 2020-09-16 10:53 老王Plus 阅读(2148) 评论(1) 推荐(4) 编辑
摘要: 想写好中间件,这是基础。 一、前言 今天这个内容,基于于ASP.NET Core 3.x。 从3.x开始,ASP.NET Core使用了通用主机模式。它将WebHostBuilder放到了通用的IHost之上,这样可以确保Kestrel可以运行在IHostedService中。 我们今天就来研究一下 阅读全文
posted @ 2020-09-09 08:10 老王Plus 阅读(2102) 评论(2) 推荐(10) 编辑