【23种设计模式】外观模式(十)

前言 外观模式,英文名称是:Facade Pattern。我们先从名字上来理解一下“外观模式”。我看到了“外观”这个词语,就想到了“外表”这个词语,两者有着很相近的意思。就拿谈恋爱来说,“外表”很重要,如果第一眼看着很舒服、有眼缘,那就有交往下去的可能。如果长的“三寸钉、枯树皮”,估计就够呛了。在这

记一次 .NET 某工控软件 内存泄露分析

一:背景 1.讲故事 上个月 .NET调试训练营 里的一位老朋友给我发了一个 8G 的dump文件,说他的程序内存泄露了,一时也没找出来是哪里的问题,让我帮忙看下到底是怎么回事,毕竟有了一些调试功底也没分析出来,说明还是有一点复杂的,现实世界中的dump远比课上说的复杂的多。 还是那句话,找我分析是

聊一聊 SQLSERVER 的行不能跨页

一:背景 1. 讲故事 相信有很多朋友在学习 SQLSERVER 的时候都听说过这句话,但大多都是记忆为主,最近在研究 SQLSERVER,所以我们从 底层存储 的角度来深入理解下。 二:理解数据页 1. 数据页的组织 在前面的文章中我也说过,一个 数据页 是 8k 大小,那这 8k 是如何组织的呢

记一次 .NET 某药材管理系统 卡死分析

## 一:背景 ### 1. 讲故事 前段时间有位朋友找到我,说他们在查询报表的时候发现程序的稳定性会受到影响,但服务器的内存,CPU都是正常的,让我帮忙看下怎么回事,问了下程序的稳定性指的是什么?指的是卡死,那既然是卡死,就抓一个卡死的dump吧。 ## 二:Windbg 分析 ### 1. 当前

真·生产力「GitHub 热点速览」

这些工具真的能极大提高生产力,节约你的时间来自(摸)我(鱼)增(划)值(水)。先别提 style2paints,你给它随意画个草图,就能给你一个能交付给甲方爸爸的成品插画。如果提升 30%-40% 传输速度的 kcp 不够惊艳,还有想象力匮乏程序员的福音——rerun,直接让你带入计算机视角看待那些

实例讲解Spring boot动态切换数据源

摘要:本文模拟一下在主库查询订单信息查询不到的时候,切换数据源去历史库里面查询。 本文分享自华为云社区《springboot动态切换数据源》,作者:小陈没烦恼 。 前言 在公司的系统里,由于数据量较大,所以配置了多个数据源,它会根据用户所在的地区去查询那一个数据库,这样就产生了动态切换数据源的场景。

当你对 redis 说你中意的女孩是 Mia

众所周知,Redis = Remote Dictionary Server,即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API,今天就来redis从缓存原理到删除key键的那些事。

关于自动限流的思考

目标 保证系统不因流量过载而挂。 现状:人工限流 正常的微服务限流工具都需要人工配置:支持应用负责人事先配置限流规则(接口 + 调用方 + 限流阈值),流量在阈值以下可以正常响应,超过阈值的流量会快速失败。这种方案存在如下问题: 问题 1. 接口多,无法全面覆盖 要想保证系统不因流量过载而挂,那就需

如何将 Autofac 整合进 Net6.0 Core MVC 项目中

一、前言 1、简而言之 Asp.Net Core Mvc,我也用了很长一段时间了,它现在的编程模型和方式还是特别棒的,都是组件开发,什么都可以替换,当然了,您别抬杠,有些还是不能替换的。自从我们进入了跨平台开发的时代,IOC容器也成了一个不可或缺的东西了。微软为我们提供了一个默认实现,那就是 ISe

Midjouney限时免费体验

免费体验Midjourney:https://www.topgpt.one;常见的绘画风格:室内设计、儿童插画、表情包制作相关风格都有介绍如何制作,midjourney的强大,只有在使用的时候才能充分体验。若您想要获得Midjourney中英对照辞典,请在公众号回复“mj辞典”。AI已经渗透到各行各业,无论您从事什么工作,都需要AI的支持。那些拒绝使用AI的人终将被淘汰!

AOP拦截日志

首先对于AOP切面编程,我也是刚学习,了解不深,这边先引用老张的博客,方便大家学习。 首先想一想,如果有这么一个需求,要记录整个项目的接口和调用情况,当然如果只是控制器的话,还是挺简单的,直接用一个过滤器或者一个中间件,还记得咱们开发Swagger拦截权限验证的中间件么,那个就很方便的把用户调用接口

《consul 简易上手指南》

consul 是一个用来做服务发现的框架,具有分布式、高可用以及可横向扩展的特性 什么是服务发现?为什么要实现服务发现? 举个常见的例子: 假设有一台 client 想要实现不同的业务,就需要调用接口去访问后端的server 那这样 client 就需要知道后端 server 的网络配置,通常是将

【Azure 云服务】云服务(经典) 迁移至云服务(外延支持) 的相关疑问

问题描述 根据微软官方文档说明,云服务(经典)已弃用。所以关于它有以下的一些疑问: 一:迁移时候的停机时间问题? 二:云服务(经典) 与 云服务(外延支持) 的区别是什么? 三:注意事项有那些呢?如 TLS证书与保管库,当前订阅环境并没有使用保管库,需要做什么样的操作对应? 云服务迁移完成后,原来的

Postgresql使用触发器实现同步插入两张表

在有一个陈旧的系统的情况下,如果升级API可以优先使用微服务的形式,将数据库进行独立拆分,将原来的数据库原原本本地固定在旧系统中,然后在独立的微服务中运行与部署新系统。 如果原有的数据需要在更换结构的前提下在不同的版本的系统下进行共享,那可以使用数据库的卷影复制等功能。如果两个数据表的结构不完全一样

.NET性能系列文章二:Newtonsoft.Json vs. System.Text.Json

微软终于追上了? 图片来自 Glenn Carstens-Peters Unsplash 欢迎来到.NET性能系列的另一章。这个系列的特点是对.NET世界中许多不同的主题进行研究、基准和比较。正如标题所说的那样,重点在于使用最新的.NET7的性能。你将看到哪种方法是实现特定主题的最快方法,以及大量的

聊聊FASTER和进程内混合缓存

最近有一个朋友问我这样一个问题: 我的业务依赖一些数据,因为数据库访问慢,我把它放在Redis里面,不过还是太慢了,有什么其它的方案吗? 其实这个问题比较简单的是吧?Redis其实属于网络存储,我对照下面的这个表格,可以很容易的得出结论,既然网络存储的速度慢,那我们就可以使用内存RAM存储,把放Re

.NET性能优化-使用内存+磁盘混合缓存

我们回顾一下上一篇文章中的内容,有一个朋友问我这样一个问题: > 我的业务依赖一些数据,因为数据库访问慢,我把它放在Redis里面,不过还是太慢了,有什么其它的方案吗? 其实这个问题比较简单的是吧?Redis其实属于网络存储,我对照下面的这个表格,可以很容易的得出结论,既然网络存储的速度慢,那我们就

【python技巧】文本处理-re库字符匹配

目录1. 正则表达式1.1 测试工具1.2 限定符1.3 字符集1.4 运算符1.5 元字符1.6 懒惰匹配和贪婪匹配 我们读取文件内容,肯定不是单纯为了输出或者重新写入,对于文本我们一定有一些查找、定位的需求。 在Python中,还有一个专门用于文本处理的库,那就是re库。 下面我会介绍re库涉及