- 博客(47)
- 资源 (12)
- 收藏
- 关注
原创 (4)Kafka消费者分区策略、Rebalance、Offset存储机制
Kafka主要有三种分区分配策略:Range(范围分配策略)、RoundRobin(轮询)和Sticky(粘性)。消费者端的配置参数 partition.assignment.strategy用于设置策略。以下分区分配策略均基于这两个主题和消费者组开展:Order订单主题有7个分区(P0-P6),Stock库存主题有5个分区,一个消费者组G1有3个消费者(C1, C2, C3)。
2025-11-13 21:47:52
803
原创 (3)Kafka生产者分区策略、ISR、ACK、一致性语义
语义生产者行为消费者行为优点缺点适用场景至少一次等待ACK,会重试先处理,后提交Offset数据不丢失可能重复消费可处理重复数据的业务至多一次不等待ACK,不重试先提交Offset,后处理吞吐量高,无重复可能丢失数据日志、metrics收集精确一次启用幂等性和事务配置为读取已提交事务最强一致性性能开销最大金融、交易等核心业务Kafka官网https://kafka.apache.org/documentation/#gettingStarted。
2025-10-23 20:17:11
844
原创 (2)Kafka架构原理与存储机制
Kafka的架构通过Topic/Partition/Replica实现了分布式、并行处理和高可用。通过Consumer Group实现了可扩展的并行消费。其存储机制的核心是分区+分段+顺序追加写入+稀疏索引,结合对页缓存的巧妙利用和零拷贝技术,最大限度地发挥了磁盘顺序I/O的性能优势,同时保证了高效的消息查找。ISR机制和acks配置共同协作,在可用性和数据一致性/持久性之间提供了灵活的权衡。理解这些原理和机制对于高效地使用、配置、监控和调优Kafka集群至关重要。
2025-10-11 23:29:39
1318
原创 (28)ASP.NET Core8.0 SOLID原则
原则带来的主要好处ASP.NET Core 中的实践SRP代码更清晰、更易维护瘦控制器、专用服务(Service)、仓储(Repository)OCP系统易于扩展,稳定策略模式、中间件模式、插件架构LSP继承体系安全可靠合理使用抽象类和接口,避免子类破坏契约ISP接口设计精准,避免冗余定义小而专一的接口(如 IOrderRepository,IEmailSender)DIP模块间解耦,易于测试依赖注入是整个框架的核心,构造函数注入是标准方式。
2025-09-30 23:04:45
1081
原创 (27)APS.NET Core8.0 堆栈原理通俗理解
特性栈 (Stack)堆 (Heap)存储内容值类型,函数调用帧引用类型对象管理方式自动,函数结束立即释放手动(由GC管理),不确定何时释放分配速度非常快,只是移动指针相对慢,需要查找可用空间灵活性不灵活,大小固定,生命周期严格灵活,空间大,生命周期不确定访问方式直接,直接访问变量间接,通过引用(地址)访问碎片无有(但GC会整理压缩)类比一摞储物箱,后进先出一个大货架,随意存取。
2025-09-30 18:45:04
1104
原创 (26)ASP.NET Core2.2 EF保存(基本保存、保存相关数据、级联删除、使用事务)
由于工作繁忙原因,EF系列在这里也就完结了,暂时没有太多时间记录下去了。今天这个章节也偷了个懒,稍微精简一点,具体官方说明,我会在下面贴上的,请见谅。基本保存保存相关数据级联删除使用事务。
2025-09-27 12:03:06
937
原创 (25)ASP.NET Core2.2 EF查询(复杂查询运算符、原生SQL查询、异步查询)
在生产场景中,我们经常用到LINQ运算符进行查询获取数据,现在我们就来了解下生产场景经常出现几种复杂查询运算符。
2025-09-26 22:34:22
946
原创 (24)ASP.NET Core2.2 EF查询(查询的工作原理、跟踪与非跟踪查询)
即使查询的结果类型不是实体类型,默认情况下EF Core也会跟踪结果中包含的实体类型。如果结果集不包含任何实体类型,则不会执行跟踪。在以下查询中,我们返回匿名类型(具有实体中的某些值,但没有实际实体类型的实例)。new});EF Core支持执行顶级投影中的客户端评估。如果EF Core具体化实体实例以进行客户端评估,则会跟踪该实体实例。if (!return url;
2025-09-26 22:15:46
609
原创 (23)ASP.NET Core2.2 EF关系数据库建模
一般而言,本部分中的配置适用于关系数据库。安装关系数据库提供程序时,此处显示的变为可用扩展方法(原因在于共享的Microsoft.EntityFrameworkCore.Relational包)。
2025-09-26 21:36:59
631
原创 (22)ASP.NET Core2.2 EF创建模型(索引、备用键、继承、支持字段)
索引是跨多个数据存储区的常见概念。尽管它们在数据存储中的实现可能会有所不同,但也可用于基于列(或一组列)更高效地进行查找。
2025-09-26 20:55:19
831
原创 (21)ASP.NET Core2.2 EF创建模型(关系)
有许多术语用于描述关系:●相关实体:这是包含外键属性的实体。有时称为关系的"子级"。●主体实体:这是包含主/备用键属性的实体。有时称为关系的 "父项"。●外键:依赖实体中的属性,用于存储与实体相关的主体键属性的值。●主体密钥:唯一标识主体实体的属性。这可能是主键或备用密钥。●导航属性:在主体和/或从属实体上定义的属性,该属性包含对相关实体的引用。●集合导航属性:一个导航属性,其中包含对多个相关实体的引用。●引用导航属性:保存对单个相关实体的引用的导航属性。
2025-09-26 20:36:04
1020
原创 (20)ASP.NET Core2.2 EF创建模型(必需属性和可选属性、最大长度、并发标记、阴影属性)
如果实体属性可以包含null,则将其视为可选。如果属性的有效值不可以包含null,则将其视为必需属性。映射到关系数据库架构时,必需的属性将创建为不可为null的列,而可选属性则创建为可以为null的列。
2025-09-26 20:06:58
624
原创 (19)ASP.NET Core2.2 EF创建模型(包含属性和排除属性、主键、生成的值)
EF中内嵌的约定将POCO类映射到表。但是,有时您无法或不想遵守这些约定,需要将实体映射到约定指示外的其他对象,所以Fluent API和注解都是一种方法,这两种方法是用来配置EF在映射属性时绕开约定。Code first fluent API最常访问通过重写OnModelCreating方法在派生DbContext。
2025-09-25 14:08:32
511
原创 (18)ASP.NET Core2.2 基于现有数据库创建EF模型(反向工程)
Entity Framework Core可通过数据库提供给应用程序的插件访问许多不同的数据库。我们可以通过使用Entity Framework Core构建执行基本数据访问的ASP.NET Core MVC应用程序,对现有数据库进行反向工程以便创建Entity Framework模型。
2025-09-25 13:50:40
933
原创 (17)ASP.NET Core2.2 EF基于数据模型创建数据库
使用Entity Framework Core构建执行基本数据访问的ASP.NET Core MVC应用程序。使用迁移(Migrations)基于数据模型创建数据库,你可以在Windows上使用Visual Studio 2017 PowerShell或在Windows、macOS或Linux上使用.NET Core CLI来学习创建数据库。
2025-09-25 13:41:22
938
原创 (16)ASP.NET Core2.2 通用主机(HostBuilder)
IHostedService是执行代码的入口点。每个IHostedService实现都按照ConfigureServices中服务注册的顺序执行。主机启动时,每个IHostedService上都会调用StartAsync,主机正常关闭时,以反向注册顺序调用StopAsync。
2025-09-25 13:13:32
706
原创 (15)ASP.NET Core2.2 Web主机(IWebHostBuilder)
ConfigureAppConfiguration、ConfigureLogging以及IWebHostBuilder的其他方法和扩展方法可重写和增强CreateDefaultBuilder定义的配置。下面是一些示例:●ConfigureAppConfiguration:用于指定应用程序的其他IConfiguration。下面的ConfigureAppConfiguration调用添加委托,以在appsettings.xml文件中添加应用程序配置,该示例在Core系列第11章节有演示。
2025-09-25 12:57:19
815
原创 (14)ASP.NET Core2.2 中的日志记录
这篇主要讲了asp.net core内置的日志提供程序,内置的日志自带功能还是有限,比如不能写入到.txt文件或数据库中。在项目使用中还是要考虑使用第三方日志提供程序。本篇对于内置的日志提供程序还有:日志消息模板、日志作用域、Azure中的日志记录、日志事件ID等未介绍,具体再参考官方文档。ASP.NET Core 中的日志记录。
2025-09-25 12:33:40
1139
原创 (13)ASP.NET Core2.2 中的选项模式(Options)
选项(Options)模式是对配置(Configuration)的功能的延伸。在12章(ASP.NET Core中的配置二)Configuration中有介绍过该功能(绑定到实体类、绑定至对象图、将数组绑定至类)而选项模式又有个选项类(TOptions),该选项类作用是指:把选项类中的属性与配置来源中的键关联起来。举个例,假设json文件有个Option1键,选项类中也有个叫Option1的属性名,经过选项配置,这样就能把json中的键的值映射到选项类属性值中。
2025-09-25 12:22:34
841
原创 (12)ASP.NET Core2.2 中的配置二(Configuration)
MemoryConfigurationProvider使用内存中集合作为配置键值对。若要激活内存中集合配置,请在ConfigurationBuilder的实例上调用AddInMemoryCollection扩展方法。可以使用IEnumerable<KeyValuePair<String,String>> 初始化配置提供程序。
2025-09-25 12:01:15
740
原创 (11)ASP.NET Core2.2 中的配置一(Configuration)
ASP.NET Core在应用程序上引入Microsoft.Extensions.Configuration配置,可以支持多种方式配置,包括命令行配置、环境变量配置、文件配置、内存配置,自定义配置等等。下面我们就其中几个配置来聊聊。
2025-09-25 11:17:20
1007
原创 (10)ASP.NET Core2.2 中的环境(dev, stage, pro)
ASP.NET Core在应用程序启动时读取环境变量(Properties\launchSettings.json)ASPNETCORE_ENVIRONMENT,并将该值存储在IHostingEnvironment.EnvironmentName中。ASPNETCORE_ENVIRONMENT可设置为任意值,但框架只支持三个值:Development(开发)、Staging (分阶段)和 Production(生产)。
2025-09-24 21:43:26
878
原创 (9)ASP.NET Core2.2 中的MVC路由二
MVC应用程序可以使用路由的URL生成功能,生成指向操作(Action)的URL链接。IUrlHelper 接口用于生成URL,是MVC与路由之间的基础部分。在控制器、视图和视图组件中,可通过Url属性找到IUrlHelper的实例。响应结果:如果Url.Action方法都只设置Action名称,那么IUrlHelper接口会获取通过指向当前所在控制器里存在的Action操作,然后生成URL。如果当前控制器里Action操作自定义路由模版,则会生成对应路由模版URL。
2025-09-24 21:31:10
777
原创 (8)ASP.NET Core2.2 中的MVC路由一
/第一个路由//第二个路由}");});第一个路由里{*article}是表示使用catch-all路由参数来捕获URL路径的剩余部分。下面我们通过测试来验证下:通过上述测试可以知道,加星号的路由在传参字符串中加了斜杠依然能够打开,没加星号的路由在传参字符串中加了斜杠就不能打开了。还有一点要注意的是controller.action接收参数必须跟*后面参数名称一致,不然会接收不到参数值。
2025-09-24 21:08:12
714
原创 (7)ASP.NET Core2.2 中的错误处理
ASP.NET Core处理错误环境区分为两种:开发环境和非开发环境。●开发环境:开发人员异常页。●非开发环境:异常处理程序页、状态代码页。env.IsDevelopment()是判断应用程序运行是在开发环境还是非开发环境,具体配置在Properties/launchSettings.json,找到ASPNETCORE_ENVIRONMENT属性,默认值是开发环境(Development),具体环境配置知识点后面我们再来学习下。
2025-09-24 20:46:49
878
原创 (6)ASP.NET Core2.2 中使用IHttpClientFactory发出HTTP请求
HttpClient类的使用所存在的问题,百度搜索的文章一大堆,好多都是单纯文字描述,让人感觉不太好理解,为了更好理解HttpClient使用存在的问题,下面让我们通过代码跟示例来描述。
2025-09-24 19:22:43
1020
原创 (5)ASP.NET Core2.2 中的静态文件
当我们创建Core项目的时候,Web根目录下会有个wwwroot文件目录,wwwroot文件目录里面默认有HTML、CSS、IMG、JavaScript等文件,而这些文件都是Core提供给客户端使用的静态文件。但是这些静态文件需要在Core里面配置才可以对外公开访问。
2025-09-24 19:04:21
912
原创 (4)ASP.NET Core2.2 中间件
整个HTTP Request请求跟HTTP Response返回结果之间的处理流程是一个请求管道(request pipeline)。而中间件(middleware)则是一种装配到请求管道以处理请求和响应的组件。每个组件:●可选择是否将请求传递到管道中的下一个组件。●可在管道中的下一个组件前后执行工作。
2025-09-24 18:32:18
556
原创 (3)ASP.NET Core2.2 DI服务生命周期
ASP.NET Core的依赖注入(DI)提供三种服务生命周期:Transient(每次请求创建新实例,适合无状态服务)、Scoped(同一请求共享实例,适合数据库上下文等)和Singleton(全局共享实例,适合配置服务等)。通过OperationService示例演示了不同生命周期下实例GUID的变化,验证了各生命周期的特性。Scoped适用于请求内共享状态的服务,Transient适合轻量级工具类,Singleton则用于全局共享资源。
2025-09-18 10:06:03
842
原创 (2)ASP.NET Core2.2 依赖关系注入(服务)
本文介绍了面向对象设计中的依赖倒置原则(DIP)及其相关概念。首先解释了DIP原则:高层模块定义接口,低层模块实现接口。然后阐述了依赖注入(DI)的实现方式,通过构造函数将依赖传递给使用类,而非直接实例化。接着区分了DIP原则和控制反转(IOC)的关系,指出IOC是实现DIP的模式。最后详细说明了.NET Core中的DI实现,包括服务注册、注入过程,并演示了如何替换默认容器为第三方容器(如Autofac)。全文通过代码示例展示了从依赖正转到控制反转的演变过程,帮助理解这些核心设计概念。
2025-09-18 07:47:39
648
原创 (1)ASP.NET Core2.2 应用启动Startup类简介
摘要:ASP.NET Core通过Program.cs和Startup.cs取代了早期版本的配置方式。Program.cs作为入口调用Startup.cs中的ConfigureServices和Configure方法。Startup类负责配置服务和请求管道,其中ConfigureServices(可选)用于注册服务(如EF、Identity、MVC),Configure(必需)通过中间件配置HTTP请求响应流程。核心流程包括:创建WebHost、注入服务到容器、配置请求管道中间件。
2025-09-18 07:32:54
748
原创 (1)Kafka在linux上集群部署(KRaft模式)
kafka本质上是一个开源的、分布式的流处理平台。它被设计用来高效地处理实时数据流。核心功能是作为一个高吞吐量、低延迟、可水平扩展、持久化、容错的发布-订阅消息系统。
2025-08-19 22:49:15
1045
原创 (2)Conda在Linux上部署
上个章节已经介绍Conda相关概念与部署方案,但是那都是基于Window系统上部署的,现在让我们来学习下如何在Linux上部署Miniconda环境管理工具。
2025-04-28 14:09:03
636
原创 (1)使用Unsloth微调工具对模型进行微调
Unsloth是一个专注于高效微调大语言模型(LLMs)的开源工具,旨在显著提升模型训练速度并优化资源利用率。其名称中的"Un-"前缀与"Sloth"(树懒)结合,寓意打破传统训练中的低效问题,帮助开发者以更快的速度完成模型迭代。
2025-04-28 10:58:07
1703
1
原创 (1)使用vLLM在Linux上部署模型
vLLM是一个专为大规模语言模型(LLMs)设计的高效推理和服务框架,旨在优化模型的推理速度、吞吐量和内存利用率。它由加州大学伯克利分校的研究团队开发,特别适合在生产环境中部署大模型(如GPT、LLaMA等)。
2025-04-28 10:38:40
1326
原创 (1)ModelScope在Linux上部署与模型下载
ModelScope是由阿里巴巴达摩院推出的开源模型社区与服务平台,旨在为开发者、研究者及企业提供便捷的模型即服务(MaaS, Model-as-a-Service)体验。它通过集成丰富的预训练模型和工具,降低AI技术的应用门槛,推动AI生态的开放与协作。1.1核心功能与特点◎覆盖自然语言处理(NLP)、计算机视觉(CV)、语音、多模态等领域的超千个模型,例如:NLP:文本生成、翻译、情感分析(如GPT、ChatGLM等)。
2025-04-28 10:15:49
1251
原创 (1)HuggingFace在Linux上部署与模型下载
HuggingFace 是一个专注于自然语言处理(NLP)和机器学习领域的开源平台和社区,旨在为开发者和研究人员提供高效的工具和资源来构建、训练和部署人工智能模型。目前主流的两个开源大模型平台分别是HuggingFace、ModelScope。
2025-04-28 10:10:31
517
原创 (3)Canal高可用集群
在最近项目开中,为了减少前台搜索对数据库访问压力,入库的物料都需要同步一份数据到ES,让前台搜索直接访问ES,不直接访问数据库获取数据。一开始做法是代码串行先保存到数据库,再同步到ES。但是会有一个坑,如果两者其一保存数据不成功,就会导致数据库跟ES数据不一致,而且这种方式是对站点代码是有侵入式的。搜索相关资料发现阿里的canal这个增量数据订阅&消费的中间件可以无侵入式地有效解决该问题,canal伪造从库拉取mysql库每次修改binary log对象解析后,再通过MQ同步数据到ES。
2025-02-06 16:49:50
1371
原创 (1)Conda在Window上部署
Conda是一个流行的开源包管理和环境管理工具,可以快速安装、管理、运行、部署和更新Python软件包及其依赖项。Conda可以轻松地在本地计算机上创建、保存、加载和切换环境。它是为 Python 程序创建的,但它可以为任何语言打包和分发软件。它的主要优势在于跨平台性能强大(支持Windows、macOS和Linux)、易于使用的环境管理,以及支持多种编程语言和非Python软件包的管理。Conda作为包管理器可帮助您查找和安装包。
2023-12-27 14:13:17
1597
2
原创 (2)Scrapy的Spiders(蜘蛛)
这是最简单的爬虫蜘蛛(Spider)类,也是所有其他Spider类的父类。该类不提供任何特殊功能,它只是提供了一个默认start_requests()请求实现,它根据自身属性发送请求并为每个结果(response)调用Spider类的parse()方法解析数据。允许Spider抓取的域名字符串数组。Spider名称是Scrapy组件定位和实例化Spider类的方式,因此它必须是唯一的。这是最重要的Spider属性,它是必需的。Spiders(蛛蛛)文件下是定义抓取某个站点或一组站点的类。
2023-12-26 10:18:31
835
oracle64位客户端instantclient-basic-windows.x64-11.2.0.2.0
2015-06-05
AOP_Filter
2012-11-16
Lucene.net概念介绍
2012-11-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅