- 博客(220)
- 资源 (6)
- 收藏
- 关注
原创 Java、数据库、Redis 、RabbitMQ&kafka、Docker、设计模式 ⾯试题汇总系列面试题目录
Java 基础面试题Java SpringCloud面试题Java SpringBoot面试题Java MyBatis的面试题Java Spring面试题Java面试题Spring MVCJava 设计模式面试题数据库-MySQL面试题系列 001数据库-MySQL面试题系列 002数据库-MySQL面试题系列 003数据库-MySQL面试题系列 004数据库-MySQL面试题系列 005数据库-SqlServer面试题系列 001数据库-综合⾯试题汇总系列 001数据库-综合⾯试题汇总系列 002Redi
2024-07-11 11:24:49
194
原创 .NET/C# 多线程和异步-Task和async/await使用
通过上边的介绍,我们知道async/await是基于Task的,而Task是对ThreadPool的封装改进,主要是为了更有效的控制线程池中的线程(ThreadPool中的线程,我们很难通过代码控制其执行顺序,任务延续和取消等等);task.WhenAll(Task[] tasks) 表示所有的task都执行完毕后再去执行后续的操作, task.WhenAny(Task[] tasks) 表示任一task执行完毕后就开始执行后续操作。上边的所有示例中Task的执行都是异步的,不会阻塞主线程。
2024-07-10 22:49:03
649
原创 RabbitMQ面试题系列 003
RabbitMQ就是 AMQP 协议的 Erlang 的实现(当然 RabbitMQ 还支持 STOMP2、 MQTT3 等协议 ) AMQP 的模型架构 和 RabbitMQ 的模型架构是一样的,生产者将消息发送给交换器,交换器和队列绑定。RabbitMQ 确保持久性消息能从服务器重启中恢复的方式是,将它们写入磁盘上的一个持久化日志文件,当发布一条持久性消息到持久交换器上时,RabbitMQ 会在消息提交到日志文件后才发送响应。,作为去重和幂等的依据(消息投递失败并重传),避免重复的消息进入队列;
2024-07-10 21:28:26
5
原创 Redis 面试题锦集004
Redis 的全称是:Remote Dictionary.Server,本质上是一个 Key-Value 类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据 flush 到硬盘 上进行保存。因为是纯内存操作,Redis 的性能非常出色,每秒可以处理超过 10 万次读写操作,是已知性能最快的Key-Value DB。
2024-07-10 21:15:17
6
原创 使⽤ LLM API使用
注:本⽂对应源代码在2. 使⽤ LLM API.ipynb,如需复现可下载运⾏源代码。主要介绍四种⼤语⾔模型(ChatGPTAPI、⽂⼼⼀⾔、讯⻜星⽕、智谱 GLM)的 API 申请指引和 Python 版本的原⽣ API 调⽤⽅法,读者按照实际情况选择⼀种⾃⼰可以 申请的 API 进⾏阅读学习即可。如果你需要在 LangChain 中使⽤ LLM,可以参照LLM 接 ⼊ LangChain中的调⽤⽅式。
2024-07-10 19:08:37
658
原创 .NET 高级编程高并发-锁
造成次问题的原因很简单,就是在库存还没完全减的情况下,有另外一个、或多个线程同时发出了请求,而库存只减少了1。只要还有库存,就可以继续请求,到了库存完全为0的时候,已经超过1000个人进行了请求。直接看代码,每请求一次库存-1. 假如库存1000,在1000个人请求之后,库存将变为0。发现请求后,还有279的库存。但是还有279的库存,明显不对。发现 请求1000次后,库存为0。锁最为常见的应用就是高并发的情况下,库存的控制。调整一下测试参数,5个人同时请求,各请求200次。到此为止,问题解决。
2024-07-10 09:02:26
165
原创 C#语法特性总结
有返回值类型的委托可以使用Func类型,Func类型的变体最多同样16个参数,返回类型为Func声明中的最后一个类型参数。文件范围的命名空间不能声明嵌套的命名空间或第二个文件范围的命名空间,且它必须在声明任何类型之前,该文件内的所有类型都属于该命名空间。可选参数通过指定参数默认值,可以省略实参。C# 9开始引入了with表达式,它使用修改的特定属性和字段生成其操作对象的副本,未修改的值将保留与原对象相同的值。下面介绍的语法特性,会说明引入C#的版本,在使用过程中,需要注意使用C#的版本是否支持对应的特性。
2024-07-10 00:40:19
742
原创 ASP.NET 中Linq详细使用指南
语言集成查询 (LINQ) 是 Visual Studio 2008 和 .NET Framework 3.5 版中引入的一项创新功能。传统上,针对数据的查询都是以简单的字符串表示,而没有编译时类型检查或 IntelliSense 支持。此外,您还必须针对以下各种数据源学习一种不同的查询语言:SQL数据库、XML 文档、各种 Web 服务等等。通过LINQ, 您可以使用语言关键字和熟悉的运算符针对强类型化对象集合编写查询。
2024-07-10 00:31:02
797
原创 .NET/C# ⾯试题汇总系列:ASP.NET Core 005
创建一个自定义的中间件,捕获异常并处理。这样可以在请求管道中的任何位置进行全局异常处理。try// 处理异常,例如记录日志等// 返回自定义错误响应在ASP.NET Core中,服务的生命周期管理是通过依赖注入(DI)系统来实现的。ASP.NET Core支持三种主要的服务生命周期,每种生命周期都适用于不同的场景和需求。依赖注入(Dependency Injection,简称DI)是一种软件设计模式,旨在实现组件之间的松耦合。
2024-07-10 00:08:03
109
原创 LLM 的能力、特点、应用与影响
大型模型不仅可以缩短每个具体应用的开发周期,减少所需人力投入,也可以基于大模型的推理、常识和写作能力,获得更好的应用效果。因此,大模型可以成为 AI 应用开发的大一统基座模型,这是一个一举多得、全新的范式,值得大力推广。在 2021 年,斯坦福大学等多所高校的研究人员提出了基座模型(foundation model)的概念,清晰了预训练模型的作用。这是一种全新的 AI 技术范式,借助于海量无标注数据的训练,获得可以适用于大量下游任务的大模型(单模态或者多模态)。LLM 已经在许多领域产生了深远的影响。
2024-07-09 23:26:09
536
原创 数据仓库-离线数据仓库架构-002
切分多个Task之后,DataX Job会调用Scheduler模块,根据配置的并发数据量,将拆分成的Task重新组合,组装成TaskGroup(任务组)。对于sqoop和datax,如果只是单纯的数据同步,其实两者都是ok的,但是如果需要集成在大数据平台,还是比较推荐使用datax,原因就是支持流量控制,支持运行信息收集,及时跟踪数据同步情况。ETL是将业务系统的数据经过抽取、清洗转换之后加载到数据仓库的过程,目的是将企业中的分散、零乱、标准不统一的数据整合到一起,为企业的决策提供分析依据。
2024-07-09 09:01:53
821
原创 数据仓库-用户分析-008
根据用户生命周期以及运营目标,对目标进行拆解,新客运营组负责拉增长、促成长,老客运营组目标为促活跃、提频提值。用户运营组将用户生命周期运营作为顶层运营策略,对不同阶段用户采取不同运营策略。目前用户现状,用户转新后,前n单总流失率约xx%,需培养新客增加前n单转化,提认知、培养用户习惯和提高用户忠诚度是新客目前运营重点内容。用户运营:新客运营重点关注拉新和新客成长,老客运营组关注活跃用户数、价值最大化。商分统筹:关注用户整体规模,关注用户构成与用户质量以及消耗成本、目标达成情况;2 让来的潜客更多的支付。
2024-07-09 09:00:01
690
原创 数据仓库-流量域-007
DATEDIFF(TO_DATE('${bizdate}','yyyymmdd'),TO_DATE(t1.date_id,'yyyymmdd'),'dd') AS stay_seq_cnt --新增活跃间隔天数。,COUNT(DISTINCT t1.dvc_id) as act_dvc_cnt --活跃用户数。,COUNT(DISTINCT t1.dvc_id) as act_dvc_cnt --活跃用户数。tmp.act_dvc_cnt --活跃用户数。
2024-07-09 08:59:55
465
原创 数仓建库-数据治理-004
元数据通常定义为”关于数据的数据”,元数据贯穿了数据仓库的整个生命周期,使用元数据驱动数据仓库的开发,使数据仓库自动化,可视化。元数据打通了源数据、数据仓库、数据应用,记录数据从产生到消费的全过程。例如我们看一部电影,电影本身就是数据,那么元数据就是用来描述这部电影的数据。如下图所示:元数据主要记录数据仓库中模型的定义、各层级间的映射关系、监控数据仓库的数据状态及 ETL 的任务运行状态。
2024-07-09 08:59:27
859
原创 数据仓库-数据建模-003
通过业务模型的建设,我们应该能够全面了解该单位的业务架构图和整个业务的运行情况,能够将业务按照特定的规律进行分门别类和程序化,同时,帮助我们进一步的改进业务的流程,提高业务效率,指导我们的业务部门的生产。通过数据仓库的模型建设,能够为企业提供一个整体的数据视角,不再是各个部门只是关注自己的数据,而且通过模型的建设,勾勒出了部门之间内在的联系,帮助消灭各个部门之间的信息孤岛的问题,更为重要的是,通过数据模型的建设,能够保证整个企业的数据的一致性,各个部门之间数据的差异将会得到有效解决。
2024-07-09 08:59:06
416
原创 数据仓库-指标体系建设-005
5.1拆解业务模块5.1.1拆分准备产品形态 业务逻辑 业务流程图5.1.2拆分方法用户行为法 业务拆分法 指标推进法5.2定义核心业务指标5.2.1定义核心指标标准反映用户体验和产品核心价值 反映用户的活跃程度 能够反映公司发展的状态 容易被团队理解和交流 具有先导性 具有可操作性5.2.2参考产品的生命周期引入期:核心指标是用户留存 成长期:核心是用户转化情况 成熟期:核心指标是营收 衰退期5.3梳理常见指标5.3.1流量类指标独立
2024-07-09 08:58:48
179
原创 数据仓库-什么是数据仓库-001
不进行一般意义上的更新(数据集成前的操作型数据库主要完成数据的增加、修改、删除、查询),一旦某个数据进入到数据仓库后,一般情况下数据会被长期保留,当超过规定的期限才会被删除。而数据仓库中的数据是经过数据的抽取、清洗、切换、加载得到的,所以为了保证数据不存在二义性,必须对数据进行编码统一和必要的汇总,以保证数据仓库内数据的一致性。是数据库概念的升级。是一种逻辑概念,用来存放数据的仓库,通过数据库软件来实现,数据库由许多表组成,表是二维的,一张表里面可以有很多字段,数据库的表,在与能够用二维表现多维关系。
2024-07-09 08:58:09
842
原创 大型语言模型(LLM)理论简介
大语言模型(LLM,Large Language Model),也称大型语言模型,是一种旨在理解和生成人类语言的人工智能模型。LLM 通常指包含数百亿(或更多)参数的语言模型,它们在海量的文本数据上进行训练,从而获得对语言深层次的理解。目前,国外的知名 LLM 有 GPT-3.5、GPT-4、PaLM、Claude 和 LLaMA 等,国内的有文心一言、讯飞星火、通义千问、ChatGLM、百川等。为了探索性能的极限,许多研究人员开始训练越来越庞大的语言模型,例如拥有1750 亿参数的GPT-3和。
2024-07-08 23:25:34
964
原创 ASP.NET Core 中的文件提供程序
ASP.NET Core 通过文件提供程序来抽象化文件系统访问。在 ASP.NET Core 框架中使用文件提供程序。
2024-07-08 22:32:07
999
原创 写入自定义 ASP.NET Core 中间件
中间件是一种装配到应用管道以处理请求和响应的软件。ASP.NET Core 提供了一组丰富的内置中间件组件,但在某些情况下,你可能需要写入自定义中间件。
2024-07-08 22:12:35
269
原创 ASP.NET Core 中的 URL 重写中间件
URL 重写是根据一个或多个预定义规则修改请求 URL 的行为。URL 重写会在资源位置和地址之间创建一个抽象,使位置和地址不紧密相连。URL 重写可能会降低应用的性能。请限制规则的数量和复杂度。
2024-07-08 22:10:33
639
原创 .NET 中的高性能日志记录
使用创建一个用于记录消息的Action委托。Define重载允许向命名的格式字符串(模板)传递最多六个类型参数。提供给Define方法的字符串是一个模板,而不是内插字符串。占位符按照指定类型的顺序填充。模板中的占位符名称在各个模板中应当具备描述性和一致性。它们在结构化的日志数据中充当属性名称。对于占位符名称,建议使用帕斯卡拼写法。每条日志消息都是一个Action,保存在由Action创建的静态字段中。对于Action日志级别。
2024-07-08 17:28:57
682
原创 ASP.NET Core 中基于工厂的中间件激活
是扩展方法检查中间件的已注册类型是否实现。如果是,则使用在容器中注册的实例来解析实现,而不使用基于约定的中间件激活逻辑。中间件在应用的服务容器中注册为服务。按客户端请求(连接)激活,因此作用域服务可以注入到中间件的构造函数中。
2024-07-08 16:35:10
234
1
原创 ASP.NET Core 中的内存管理和垃圾回收 (GC)
内存管理十分复杂的,即使在托管框架(如 .NET)中也是如此。分析和了解内存问题可能极具挑战性。
2024-07-08 13:31:33
682
原创 MySQL建表超级简单的规范
MySQL建表只有10条,大伙可以参考借鉴。1. 表达是否概念的字段,必须使用is_xxx的形式命名;2. 数据类型必须是 unsigned tinyint;3. 1表示是,0表示否;举例:是否删除正确:使用is_deleted,1表示删除,0表示未删除错误:deleted, if_deleted, delete_or_not1. 表名,字段名禁止出现大写;MySQL在Windows下不区分大小写,Linux下虽然区分,但为了避免节外生枝,统一禁止大写。
2024-07-08 12:56:40
363
原创 ASP.NET Core 中的请求超时中间件
应用可以选择性地对请求应用超时限制。默认情况下,ASP.NET Core 服务器不会执行此操作,因为请求处理时间因方案不同存在很大差异。例如,WebSocket、静态文件和调用昂贵的 API 需要不同的超时限制。因此,ASP.NET Core 提供了中间件,可用于配置每个终结点的超时以及全局超时。达到超时限制时,中的会将设置为true。不会在请求中自动调用,因此应用程序仍可能生成成功或失败响应。如果应用不处理异常并生成响应,则默认行为将是返回状态代码 504。本文介绍如何配置超时中间件。
2024-07-08 12:45:27
471
原创 ASP.NET Core 中的分布式缓存
分布式缓存是由多个应用服务器共享的缓存,通常作为访问它的应用服务器的外部服务进行维护。分布式缓存可以提高 ASP.NET Core 应用的性能和可伸缩性,尤其是当应用由云服务或服务器场托管时。与其他将缓存数据存储在单个应用服务器上的缓存方案相比,分布式缓存具有多个优势。分布式缓存配置是特定于实现的。本文介绍如何配置 SQL Server 和 Redis 分布式缓存。还提供第三方实现,例如无论选择哪种实现,应用都将使用接口与缓存进行交互。
2024-07-08 12:21:53
885
原创 ASP.NET Core 中的内存中缓存
缓存可以通过减少生成内容所需的工作,显著提高应用的性能和可伸缩性。缓存最适用于不常更改且生成成本很高的数据。缓存生成的数据副本可以比从源中更快地返回。应该以从不依赖于缓存数据的方式编写和测试应用。ASP.NET Core 支持多个不同的缓存。最简单的缓存基于。表示存储在 Web 服务器内存中的缓存。在服务器场(多个服务器)中运行的应用应确保在使用内存中缓存时会话是粘滞的。粘滞会话可确保来自客户端的请求都转到同一服务器。例如,Azure Web 应用使用(ARR) 将所有请求路由到同一服务器。
2024-07-08 11:34:24
630
原创 ASP.NET Core 中的缓存概述
当经常使用的缓存条目被撤销,并且过多的请求尝试同时重新填充同一缓存条目时,会发生缓存踩踏。即使服务器有新的缓存响应,也会为每个请求返回新的响应。在缓存缺失的情况下,最终可能会有多个并发线程,这些线程均会出现缓存缺失、提取基础数据、对数据执行序列化,并将该数据发送到缓存。响应缓存不执行缓存重新验证。当经常使用的缓存条目被撤销,并且过多的请求尝试同时重新填充同一缓存条目时,会发生缓存踩踏。的即插即用替代品,并且提供了一个简单的 API 用于添加新的缓存代码。提供内存中缓存的速度以及分布式或永久性缓存的持久性。
2024-07-08 11:05:08
1005
原创 数据仓库开发 SQL 使用技巧总结
lag 提供对当前行之前的给定物理偏移的行的访问lead 提供对当前行之后的给定物理偏移量的行的访问通过这两个函数可以在一次查询中取出同一字段的前 n 行的数据 lag 和后 n 行的数据 lead 作为独立的列, 更方便地进行进行数据过滤可用场景在比较同一个相邻的记录集内两条相邻记录计算今日电表消耗(需计算今日电表度数和昨日差值)
2024-07-07 22:47:13
754
原创 异步编程指南
同步、异步,并发、并行、串行,这些名词在我们的开发中会经常遇到,这里对异步编程做一个详细的归纳总结,希望可以对这方面的开发有一些帮助。
2024-07-07 22:44:35
677
原创 MongoDB 全方位知识结构
因为是 100ms 刷盘一次,因此至多会丢失 100ms 的数据(这个可以通过 WriteConcern 的参数控制不丢失,只是性能会受影响,适合可靠性要求非常严格的场景)
2024-07-07 22:41:04
703
原创 浅谈缓存最终一致性的解决方案
在解决缓存一致性的过程中,有多种途径可以保证缓存的最终一致性,应该根据场景来设计合适的方案,读多写少的场景下,可以选择采用“ Cache-Aside 结合消费数据库日志做补偿”的方案,写多的场景下,可以选择采用“ Write-Through 结合分布式锁”的方案 ,写多的极端场景下,可以选择采用“ Write-Behind ” 的方案。
2024-07-07 20:17:29
870
原创 浅谈 RocketMQ、Kafka、Pulsar 的事务消息
事务是一个程序执行单元,里面的所有操作要么全部执行成功,要么全部执行失败。一个事务有四个基本特性,也就是我们常说的(ACIDAtomicity(原子性):事务是一个不可分割的整体,事务内所有操作要么全做成功,要么全失败。(一致性):事务执行前后,数据从一个状态到另一个状态必须是一致的(A 向 B 转账,不能出现 A 扣了钱,B 却没收到)。Isolation(隔离性):多个并发事务之间相互隔离,不能互相干扰。Durablity(持久性):事务完成后,对数据的更改是永久保存的,不能回滚。
2024-07-07 20:15:02
711
原创 C#/.NET/.NET Core相关书籍
今天给大家推荐一些C#/.NET方面书籍,希望能帮助到有需要的小伙伴,祝大家在编程的路上越来越好看还发布还失败不知道了。
2024-07-07 19:25:11
327
原创 .NET/C# ⾯试题汇总系列:ASP.NET常见面试题 001
从值类型接口转换到引用类型装箱。从引用类型转换到值类型拆箱。unsafe:非托管代码。不经过CLR运行。RTTI:类型识别系统。代码后植。都不能。动态获取程序集信息Web应用,类似Thread Pool,提高并发性能。虚函数:没有实现的,可由子类继承并重写的函数。抽象函数:规定其非虚子类必须实现的函数,必须被重写。XML即可扩展标记语言。eXtensible Markup Language.标记是指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种信息的文章等。
2024-07-07 13:50:14
263
原创 .NET/C# ⾯试题汇总系列:ASP.NET Core 003
在ASP.NET Core中,服务的生命周期管理是通过依赖注入(DI)系统来实现的。ASP.NET Core支持三种主要的服务生命周期,每种生命周期都适用于不同的场景和需求。以下是ASP.NET Core中的服务生命周期:1、瞬态(Transient)生命周期// 瞬态服务在每次请求时都会创建新的实例,并在请求处理结束后被销毁。每次注入瞬态服务时,都会得到一个新的实例。适用于轻量级且不需要保持状态的服务。2、作用域(Scoped)生命周期。
2024-07-07 12:30:46
352
原创 docker 面试题
基础概念什么是Docker? 答:Docker是一个开源的容器化平台,它允许开发者将应用及其依赖打包到一个轻量级、可移植的容器中,从而在任何Docker运行的环境中实现一致的运行。 Docker容器和虚拟机的区别是什么? 答:Docker容器在操作系统级别进行虚拟化,共享宿主机的内核,而虚拟机在硬件级别进行虚拟化,拥有独立的内核。容器通常更轻量级、启动更快,资源占用更少。 什么是Docker镜像? 答:Docker镜像是一个轻量级、只读的模板,用于创建Docker容器。它包含运行容器所需的代码
2024-07-07 12:28:47
7
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人