[转帖]美国把龙芯列入黑名单没有什么用

https://baijiahao.baidu.com/s?id=1759406814932648369 美国商务部周四在黑名单中又增加了28家中国实体,龙芯中科名列其中,理由仍是“威胁美国国家安全”之类的陈词滥调。谁都知道龙芯迟早会被美国制裁,只是笔者以为应该是在半年之后…… 笔者难以理解,龙芯是

GaussDB(DWS)查询过滤器原理与应用

摘要:GaussDB(DWS)查询过滤器(黑名单)提供查询过滤功能,支持自动隔离反复被终止的查询,防止烂SQL再次执行。 本文分享自华为云社区《GaussDB(DWS)查询过滤器原理与应用》,作者:门前一棵葡萄树 。 一、概述 GaussDB(DWS)查询过滤器(黑名单)提供查询过滤功能,支持自动隔

网关限流功能性能优化

本文主要从设计与原理方面分享优化过程中的思考,不涉及具体的代码实现。在分析过程中我会写一些当时思考的问题,在看后续答案时可以自己也先思考一下 老的限流方案 首先讲解一下原本网关限流功能的实现方案,省略其中的白名单,黑名单,令牌桶算法实现等一些细节 限流策略中包含多种策略,比如根据用户维度限流,ip维

图解B树及C#实现(1)

前言 B树(B-tree),也常被记作 B-树,其中“-”不发音。B树的发明者 Rudolf Bayer 和 Edward M. McCreight 并没有给B树中的 B 明确的定义,大家也不必对此纠结太多。 B+树是B树的变体,两者的适用场景是不一样的,以后也会给大家带来B+树的介绍。 本系列将用

图解B树及C#实现(2)数据的读取及遍历

前言 本文为系列文章 B树的定义及数据的插入 数据的读取及遍历(本文) 数据的删除 前一篇文章为大家介绍了 B树 的基本概念及其插入算法。本文将基于前一篇的内容,为大家介绍插入到 B树 中的数据该怎么读取及遍历, 本文的代码基于前一篇文章的代码,已经实现的功能可能会被省略,只介绍新增的功能。 在本文

图解B树及C#实现(3)数据的删除

前言 本文为系列文章 B树的定义及数据的插入 数据的读取及遍历 数据的删除 阅读本文前,建议先复习前两篇文章,以便更好的理解本文。 从删除的数据所在的节点可分为两种情况: 从叶子节点删除数据 从非叶子节点删除数据 无论从叶子节点还是非叶子节点删除数据时都需要保证B树的特性:非根节点每个节点的 key

.NET AsyncLocal 避坑指南

AsyncLocal 用法简介 通过 AsyncLocal 我们可以在一个逻辑上下文中维护一份私有数据,该上下文后续代码中都可以访问和修改这份数据,但另一个无关的上下文是无法访问的。 无论是在新创建的 Task 中还是 await 关键词之后,我们都能够访问前面设置的 AsyncLocal 的数据。

.NET Task 揭秘(3)async 与 AsyncMethodBuilder

前言 本文为系列博客 什么是 Task Task 的回调执行与 await async 与 AsyncMethodBuilder(本文) 总结与常见误区(TODO) 上文我们学习了 await 这个语法糖背后的实现,了解了 await 这个关键词是如何去等待 Task 的完成并获取 Task 执行结

LRU缓存替换策略及C#实现

LRU缓存替换策略 缓存是一种非常常见的设计,通过将数据缓存到访问速度更快的存储设备中,来提高数据的访问速度,如内存、CPU缓存、硬盘缓存等。 但与缓存的高速相对的是,缓存的成本较高,因此容量往往是有限的,当缓存满了之后,就需要一种策略来决定将哪些数据移除出缓存,以腾出空间来存储新的数据。 这样的策

C#中使用CAS实现无锁算法

CAS 的基本概念 CAS(Compare-and-Swap)是一种多线程并发编程中常用的原子操作,用于实现多线程间的同步和互斥访问。 它操作通常包含三个参数:一个内存地址(通常是一个共享变量的地址)、期望的旧值和新值。 CompareAndSwap(内存地址,期望的旧值,新值) CAS 操作会比较

揭秘 Task.Wait

Task.Wait 是 Task 的一个实例方法,用于等待 Task 完成,如果 Task 未完成,会阻塞当前线程。 非必要情况下,不建议使用 Task.Wait,而应该使用 await。 本文将基于 .NET 6 的源码来分析 Task.Wait 的实现,其他版本的实现也是类似的。

如何在long-running task中调用async方法

# 什么是 long-running thread long-running task 是指那些长时间运行的任务,比如在一个 while True 中执行耗时较长的同步处理。 下面的例子中,我们不断从队列中尝试取出数据,并对这些数据进行处理,这样的任务就适合交给一个 long-running tas

揭秘 .NET 中的 TimerQueue(上)

[TOC] # 前言 TimerQueue 是.NET中实现定时任务的核心组件,它是一个定时任务的管理器,负责存储和调度定时任务。它被用于实现很多 .NET 中的定时任务,比如 System.Threading.Timer、Task.Delay、CancellationTokenSource 等。

揭秘 .NET 中的 TimerQueue(下)

[TOC] # 前言 上文给大家介绍了 TimerQueue 的任务调度算法。 https://www.cnblogs.com/eventhorizon/p/17557821.html 这边做一个简单的复习。 TimerQueue 中的基本任务单元是 TimerQueueTimer,封装待执行的定时

使用 OpenTelemetry 构建 .NET 应用可观测性(1):什么是可观测性

[TOC] # 什么是系统的可观测性(Observability) 对软件行业来说,可观测性(Observability)是一个舶来词,出自控制论(Control Theory)。 **可观测性是系统的一个属性**,它是指系统的状态能否被观测,也就是说,系统的状态能否被监控、收集、分析、查询、可视化

使用 OpenTelemetry 构建 .NET 应用可观测性(2):OpenTelemetry 项目简介

[TOC] # 前世今生 ## OpenTracing OpenTracing 项目启动于 2016 年,旨在提供一套分布式追踪标准,以便开发人员可以更轻松地实现分布式追踪。 OpenTracing 定义了一套 Tracing 模型,以及一套 API,用于在应用程序中创建和管理这些数据模型。 下面是

使用 OpenTelemetry 构建 .NET 应用可观测性(4):ASP.NET Core 应用中集成 OTel

目录前言使用 elastic 构建可观测性平台在 ASP.NET Core 应用中集成 OTel SDK安装依赖基础配置Instrumentation 配置创建自定义 Span 和 Metric完整的代码演示kibana 中查看数据TracingMetricsTracing 和 Logs 的关联 前

使用 OpenTelemetry 构建 .NET 应用可观测性(3):.NET SDK 概览

目录前言概览opentelemetry-dotnetopentelemetry-dotnet-contribopentelemetry-dotnet-instrumentationSDK 的基本使用安装依赖ResourcesResourceBuilder.CreateDefault()Resourc

[转帖]nginx 白名单处理

Nginx如何配置根据cookie或header自定义字段进行跳转 一、根据cookie中的值来判断跳转 $http_cookie这个关键词是读取cookie的全部信息,那么我们是需要判断cookie中包含的某个字段的值,比如我设置openid=5,我该如何获取那么,我们可以通过$cookie_op

5.1 缓冲区溢出与攻防博弈

在黑客安全圈子中,基于内存攻击技术的攻击手段在随着时代的变化而不断发展着,内存攻击是指通过利用软件的安全漏洞,构造恶意的输入,从而使正常程序造成拒绝服务或者是远程获得控制权,内存攻击技术中最先登上历史舞台的就是缓冲区溢出漏洞,时至今日能够被广泛利用的并具有较大破坏性的高危漏洞(CVE)几乎都属于缓冲区溢出。首先读者应该明白缓冲区溢出(Buffer Overflow),它分为栈溢出与堆溢出,此类漏洞