- 博客(303)
- 资源 (16)
- 收藏
- 关注
转载 .Net面试
45.CLR的内存映射(EnableWriteXorExecute)的作用主要是什么。48.基础类型优化,循环克隆优化,矢量化优化分别是什么,如何优化的。22.类型信息(MT),对象头(ObjHeader),它们的作用。28.分层编译,OSR,GDV,常量分别是如何做到极致优化的。29.MSIL的二进制的作用已经与IL代码段区别在哪儿。31.GCInfo,EHinfo是如何运行和解码的。18.托管堆,堆段,区域,分配上下文,都是什么。9 .GC计划阶段的二叉树是如何构建的。
2023-12-14 16:17:00 50
转载 阿里终面:10亿数据如何快速插入MySQL?
但如果是HDD的话,虽然顺序读写会有非常高的表现,但HDD无法应对并发写入,例如每个库10张表,假设10张表在并发写入,每张表虽然是顺序写入,由于多个表的存储位置不同,HDD只有1个磁头,不支持并发写,只能重新寻道,耗时将大大增加,失去顺序读写的高性能。回到SSD的场景,不同SSD厂商的写入能力不同,对于并发写入的能力也不同,有的支持500M/s,有的支持1G/s读写,有的支持8个并发,有的支持4个并发。使用主节点轮训任务,可以减少任务的争抢,通过kafka发布消息,接收到消息的进程处理任务。
2023-12-14 16:15:09 122
转载 没用过微服务?别慌,丐版架构图,让你轻松拿捏面试官
在串行的内存和存储访问能防止这种情况,当读写命令同时发生的时候,默认是先执行读操作的。静态资源服务,Nginx可以提供静态资源服务,如图片、视频、JavaScript文件、CSS文件、HTML静态文件等,减轻后端服务的压力,提高系统的响应速度和性能。很多人都说现在是云原生、大模型的时代,微服务已经过时了,但现实的是,很多人开发多年,都没有在实际的开发中用过微服务,更别提搭建微服务框架和技术选型了。脑中有图,口若悬河,一套组合拳下来,面试官只能拍案叫好,大呼快哉,HR更是惊呼,我勒个乖乖,完全听不懂。
2023-12-14 15:58:52 147
转载 .NET Core 使用 HttpClient 的正确方式
在 TCP/IP 网络通信中,每个端口上最多只能建立一个连接,这就限制了服务器可以处理的连接数。这就是套连接的问题,套接字耗尽是指服务器上的可用套接字资源已经全部被占用,无法为新的连接提供服务。本文用四种方法渐进讲述了HttpClient的使用方法以及在使用过程中的问题,最终用IHttpClientFactory解决了出现的问题。首先我们用VS 2022创建一个带默认 WeatherForcast 模板的 Web API 应用程序,以及一个普通的API的程序,项目使用的是.NET6。接下来换第二种方法。
2023-12-14 15:41:38 833
转载 开发微服务的9个最佳实践
组织可以拥有基于角色的团队,例如 UI/UX 开发人员、前端开发人员、后端开发人员、数据库管理员、QA、中间件开发人员等,他们独立工作,但每天通过会议进行互动(无论是面对面的)或者使用各种通讯工具,如 JIRA、Slack 等。如果您单独部署每个微服务,那么在维护或升级工作的同时,您肯定会节省大量与多个团队协调的时间。我们都知道微服务设计对现代架构的网络弹性有直接影响,当企业决定使用微服务进行构建时,高效且有效地开发它们非常重要,以便它们可以在网络上运行,而不会导致过多的延迟、带宽消耗和数据包丢失。
2023-12-14 14:18:06 305
转载 在BlogCore中,上传附件到MinIO分布式文件服务器
由于MinIO是非常轻量级的软件,所以架构上也没有这么复杂,他使用操作系统的文件系统作为存储介质,我们在向任意节点写数据的时候,MinIO会自动同步数据到另外的节点,这个机制叫做erasure code(纠删码)来保证集群的稳定,保证数据可用,所以我们建议至少使用4个节点来构建集群。也就是说,一个进程对应一个实例,一个实例对应一个租户。极简理念——采用尽可能简单可靠的集群管理方案,摒弃复杂的大规模集群调度管理,减少风险因素与性能瓶颈,聚焦产品的核心功能,打造高可靠的集群、灵活的扩展能力以及超高的性能;
2023-12-12 10:59:41 168
转载 在BlogCore中,上传附件到SeeweedFS分布式文件服务器
seaweedfs的中心节点(center master)并不会管理所有文件的元数据而仅仅管理文件卷(file volmume),文件及其元数据的管理是由volume server实现的。下面,我们借助官网和网上的资料,来看看SeaweedFS的整体架构设计原理。(在启动前,先要创建相应的目录,/data/fileData,/data/t_v1,/data/t_v2,/data/t_v3)通常,分布式文件系统将每个文件拆分为块,中央主服务器保持文件名,到块句柄的块索引以及每个块服务器具体的块。
2023-12-12 10:51:24 217
转载 Apisix 使用docker快速搭建步骤
本文是一个Apisix的快速搭建文章记录,如果想要了解更多Apisix的相关概念,请查看官网进行学习。https://apisix.apache.org/首先将挂载的grafana.ini配置文件中的匿名访问改成false,取消匿名。分别是dashboards中的看板json、ini的grafana配置文件。默认账号密码在挂载的ini文件中,默认admin/admin。可以挂载文件 , 账号密码在自定义的挂载文件中。注意其中有关于apisix的job信息。本次安装,涉及到的dockers镜像。
2023-12-12 10:44:25 745
转载 APISIX集成统一鉴权中心
这里使用forward-auth作为身份认证插件,具体的配置方法可以查看官网 https://apisix.apache.org/docs/apisix/plugins/forward-auth/Apisix提供了很多插件,通过鉴权插件,并配合自定义服务接口,可以很好实现网关层面的统一鉴权,认证还是可以走统一认证中心。也可以和其他子服务共用一个,但是必须是一个单独的apisix路由接口。将刚刚创建好的鉴权服务路由接口,配置在插件中,并启动该插件。与普通创建路由一致,可以参考其他创建路由具体步骤。
2023-12-12 10:38:06 705 1
转载 云原生 API 网关 APISIX 入门教程
它可以减少对你的端点的调用次数,也可以通过缓存上游的响应来改善对你的 API 请求的延迟。在很多时候,我们的 API 并不是处于一个非常安全的状态,它随时会收到不正常的访问,一旦访问流量突增,可能就会导致你的 API 发生故障,这个时候我们就可以通过速率限制来保护 API 服务,限制非正常的访问请求。我们这里主要了解的是 API 网关层的缓存,也就是 APISIX 提供的 API 缓存,它也可以和其他插件一起使用,目前支持基于磁盘的缓存,也可以在插件配置中指定缓存过期时间或内存容量等。
2023-12-12 10:34:51 1053
转载 告别了Jenkins,我将开源的所有项目迁移到了Spug
因为我的8G的服务器,涵盖了开源所有的产品,其中有两个大头:Mysql和Jenkins(其实可以限制它的大小1G左右),数据库可不能放弃吧,就指望着它呢,虽然Mysql腾讯云有卖的,但是舍不得买,开源这六年来,光腾讯云就快两万的花费,还不考虑其他的花销,有没有腾讯云的粉丝老铁,给个好用的优惠券?通过整体对比,正好能满足我的需求,所以这里给大家分享下,因为是Python和JS开发的,面向中小型企业设计自动化运维平台,无 Agent,非常的轻量。比如告警,日志,配置中心,定时任务和主机管理等等。
2023-12-12 10:15:22 166
转载 [下篇] 搭建高级的性能监控系统(Prometheus+Grafana+Node Exporter+Alertmanager)
填写上刚刚部署的Prometheus的地址,并设置为默认数据源,然后拉到最下面保存便接入完成了。/var/lib/grafana是 grafana的持久化数据目录,需要从容器中映射出。件提醒,微信提醒,WebHook等等的推送操作,以便我们运维等人员及时发现并处理。然后接着导入面板,这里提供三个好看的面板,分别是8919,9276,11074。#内容太多,就不贴出来了,可自行启动容器拷贝一份出来进行修改,这里一般不修改。通过观察仪表盘,我们可以发现服务器中一些细微的问题,然后对其进行解决。
2023-12-12 10:00:30 44
转载 [上篇] 搭建高级的性能监控系统(Prometheus+Grafana+Node Exporter+Alertmanager)
Node Exporter 通常与 Prometheus 配合使用,以监控主机上的各种系统级别的指标,例如 CPU 使用率、内存使用率、磁盘空间等。Node Exporter用于收集主机级别的指标,Prometheus存储和查询这些指标,Grafana提供可视化界面,而Alertmanager则负责管理和发送告警。接下来我们接着安装prometheus,除了Node Exporter,其他的我们都将采用docker进行安装,因为除了Node Exporter安装在客户端上,其他都在服务端上既可。
2023-12-12 09:54:03 125
转载 WPF开发新境界:MVVM设计模式解析与实战,构建清晰可维护的用户界面
MVVM(Model-View-ViewModel)是一种用于构建用户界面的软件设计模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和视图模型(ViewModel)。MVVM的目标是实现界面逻辑与用户界面的分离,提高代码的可维护性和可测试性。:MVVM是一种在WPF开发中广泛应用的设计模式,通过将应用程序分为模型、视图、和视图模型,实现了解耦、提高可维护性的目标。MVVM设计模式通过将应用程序分为模型、视图和视图模型,实现了解耦和分离关注点的目标。
2023-12-11 17:43:44 447
转载 .NET开源且好用的权限工作流管理系统
源于Martin Fowler企业级应用开发思想及最新技术组合(SqlSugar、EF、Quartz、AutoFac、WebAPI、Swagger、Mock、NUnit、Vue2/3、Element-ui/plus、IdentityServer等)。该项目已收录到C#/.NET/.NET Core优秀项目和框架精选中,关注优秀项目和框架精选能让你及时了解C#、.NET和.NET Core领域的最新动态和最佳实践,提高开发工作效率和质量。在线文档地址:http://doc.openauth.net.cn/
2023-12-11 17:39:22 73
转载 .NET Core 3.1 升级到 .NET 8
上面代码中的 DistinctBy 方法在 .NET Core 3.1 中是没有的,所以我们扩展了一个 DistinctBy 方法,没想到 .NET8 中已经默认提供了,会导致方法冲突,只需要将我们的扩展方法去掉,使用默认就好。解决了上面的几个编译问题后,程序就能正常启动运行了,整个过程还是非常快速的,不得不说,微软的技术向下兼容做的是非常不错的,再加上工具的加持,升级到新的版本没有什么压力和负担。我验证过好几个低版本的项目,使用工具升级的过程没有出现果任何错误,但升级完后进行代码编译就会出现各种问题了。
2023-12-11 17:32:15 1466
转载 什么才是真正的架构设计
紧接着业务模式越来越复杂,订单、商品、库存、价格等各个模块都很深入,比如价格区分会员等级,访问渠道(app还是PC),销售方式(团购还是普通)等,还有大量的价格促销,这些规则很复杂,容易相互冲突,需要把分散到各个业务的价格逻辑进行统一管理,以基础价格服务的方式透明地提供给上层应用,变成一个微内核的服务化架构,即微服务。拓扑架构,包括架构部署了几个节点,节点之间的关系,服务器的高可用,网路接口和协议等,决定了应用如何运行,运行的性能,可维护性,可扩展性,是所有架构的基础。开发和维护单个微服务相对简单。
2023-12-11 17:26:12 55
转载 Promethues (普罗米修斯)详细介绍
1、什么是PrometheusPrometheus 是一个开源的服务监控系统和时序数据库,其提供了通用的数据模型和快捷数据采集、存储和查询接口。它的核心组件Prometheus server会定期从静态配置的监控目标或者基于服务发现自动配置的自标中进行拉取数据,当新拉取到的数据大于配置的内存缓存区时,数据就会持久化到存储设备当中。
2023-11-17 10:43:58 6684
转载 Grafana,监控神器!(免费用)
前言随着公司业务的不断发展,业务的种类在不断增加,服务数量的不断增长,网络环境的越发复杂,我们发版更加频繁。这样就会不可避免地导致线上事故的增多,因此需要对服务器到应用的全方位监控和预警,我们急需一个工具来解决这些问题,而Grafana的出现正好完美的解决了这个问题。
2023-11-17 10:37:57 499
原创 重写abp框架OrganizationUnitManager类
背景:上一篇中我们重写了UserManager类,本文中我们对OrganizationUnitManager动手,原因呢,当然还是封装的方法中有一些不必要的验证,当然像组织机构名这种几乎不会重复的,但是它限制我们不让我们重复,就对它很不爽(开玩笑),这里主要目的,还是去掉不必要 的校验,添加一些辅助方法,方便我们更好 的使用abp框架。这里我们继承OrganizationUnitManager(这里没有对应的泛型类),同样是因为不必重写所有的方法,我们就挑有校验的方法下手。创建成功了,code值也有。
2023-11-07 10:44:16 154
原创 重写abp框架UserManager类
但是这些封装的方法总是会有各种各样的校验,当然如果我们没有特殊需求,可以直接使用它提供的方法,本文就是基于创建、更新用户信息时,用户名重复的校验所写,像密码规则的校验,这里预留了参数来操作校验与否。第一个:看参数很明显,这个是需要带着密码来创建的,里面校验了一些基本信息,其中validatePassword就是设置是否按照设定的密码规则进行校验。这里我们继承了UserManager的泛型类,这是为了偷个懒,毕竟不是要重写所有的方法,其他的方法我们可继续使用。完全相同的参数,我们这里调用了两次,都是成功。
2023-11-07 10:41:26 297
原创 abp框架 设置GC模式
在json文件中设置configProperties中的System.GC.Server,如果 是true,默认是服务器模式,设置为false默认是Workstation模式。例如ProjectName.HttpApi.Host.runtimeconfig.json,如果看不到 就查看 所有文件,如果全局查会出现多个文件,确定修改的是对的。在PreConfigureServices中打印日志就可以看到GC模式的变化。在对应 api项目文件名下的有一个runtimeconfig.json文件。
2023-11-07 10:35:47 111
原创 abp框架使用easyabp解析code获取用户手机号、获取小程序码等
MiniProgramCodeService是我重写的一个service,因为easyabp的GetUnlimitedACodeAsync方法,没有入参envVersion,如果是体验版的小程序,就没办法获取小程序码 ,加了这个参数我们就可以控制是体验版还是正式版了。添加完成后执行migration,将新的授权添加的到数据库(没执行成功的话就自己写个sql更新一下授权信息,在openiddictapplications表中,4条记录的Permissions字段全部更新)。git上或者博文写的也比较详细。
2023-11-07 10:27:06 267
原创 netcore项目中使用miniexcel
常工作中经常与数据打交道的同学肯定会难以避免对Excel的一些数据操作如导入、导出等,但是当对一些大数据量操作Excel时经常会遇到一个常见的问题内存溢出。今天给大家推荐一个简单、高效、低内存避免OOM(内存溢出)的.NET操作Excel开源框架:MiniExcel。MiniExcel简单、高效避免OOM的.NET处理Excel查、写、填充数据工具。
2023-10-27 15:20:18 501
转载 netcore项目Linux,docker部署内存分析
说明:要使用这条命令获取dump,如果在docker中,需要提供docker的–private参数,如果是在AWS的ECS中使用的Fargate模式运行,则不支持此参数。需要在EC2上运行。从结果来看,GC中的Gen2占用了较多的内存,理论上,不应该有很多的Gen2,我们需要分析一下Gen2里面到底是什么?从结果来看,有很多string类型的数据在gen2中,以及mysql的一些数据,我们打开看看具体是什么内容。看输出,有很多一样的内容,我们随便打开一个看看。有非常多的对象,我们也是随便打开一个看看内容。
2023-10-11 15:02:56 250
原创 netcore项目中的GC模式
不同使用场景的程序对 GC 的风格也有不同的要求,比如桌面程序更注重界面的响应速度,web 程序注重的是吞吐量。工作站模式下 GC 的回收频次会加快,但是每一次 GC 造成的停顿很短暂。工作站模式下只会分配一个 GC 堆,在工作站模式下 GC 分配的内存会更少。System.GC.Server对应的配置项就是对应的GC模式,如果 是true,就是服务器模式(Server GC),如果是false就是工作站模式(Workstation GC)。服务器模式下 GC 的回收会尽量的延迟,从而减少停顿。
2023-10-11 14:54:31 303
转载 查看redis里的数据
在开发和维护过程中,我们经常需要查看Redis中存储的数据,以便调试和分析问题。在实际应用中,你可以根据需要选择合适的方法来查看Redis中的数据。上述代码使用redis-py库连接到Redis,并通过各个方法来查看不同类型的数据。其中,sorted_set_key是要查看的有序集合的键。其中,hash_key是要查看的哈希表的键。其中,key_name是要查看的键的名称。其中,list_key是要查看的列表的键。其中,set_key是要查看的集合的键。该命令将返回Redis中所有键的列表。
2023-10-10 16:14:40 8040
原创 docker本地容器化部署项目
3.如果要关联使用一些redis、mysql等,可以使用docker-compose.yml,同样放在项目根目录。1.首先确保手机有一个netcore项目,或者直接创建一个abp项目,可以启动发布就行。使用docker-compose部署就不用再另外使用DockerFile启动部署了。2.添加Dockerfile文件配置部署文件等。tail命令可以实时查看文件,但有行数限制。Dockerfile文件在项目根目录添加。编辑完成后点击ESC键退出编辑状态。docker查看某一个镜像。点击a或者i进入编辑状态.
2023-09-22 17:38:48 494
原创 vscode往github推送代码:Updates were rejected because the tip of your current branch is behind
【代码】vscode往github推送代码:Updates were rejected because the tip of your current branch is behind。
2023-09-07 16:24:43 340
转载 sh: vue-cli-service: command not found
2.执行命令sudo rm -rf node_modules package-lock.json && npm install。3.输入密码,安装完成就可以正常运行了。
2023-09-07 15:39:54 796
原创 gitlab Can‘t update,dev has no tracked branch
第一个dev是本地分支名字,origin/dev分别是自己配置的远程仓库名和分支名字。
2023-06-19 10:11:54 1503
原创 cannot be loaded because the entity is not being tracked.
1.发生背景,是在项目中使用abp框架,新建用户后,实际上用户没有创建成功,下面操作和用户相关的表 都会报这个错。2.解决办法,大概率是用户名和密码规则 的限制导致的创建用户失败。然后在ConfigureServices里调用即可。在相应项目的Module文件里配置用户名和密码规则。
2023-06-08 17:03:15 179
转载 An exception was thrown while activating Castle.Proxies.PersonAppServiceProxy. ABP Netcore
message”: “对不起,在处理你的请求期间,产生了一个服务器内部错误!
2023-06-08 15:40:53 1559
转载 beego使用Swagger
beegoApi:目录结构如图所示:(在这里多说一句,bee new 项目名 和 bee api 项目名 ,这两个命令最后生成的项目区别,在于后者别前者少一个 views目录)使用命令 bee run -downdoc=true 更新 swagger-ui ,如果 swagger 目录没有 swagger-ui 则会自动下载安装。Swagger 是一套围绕OpenAPI规范构建的开源工具,可以帮助我们设计,构建,编写和使用 REST API。第四步:刷新一下浏览器,会发现。
2023-05-17 16:42:17 495
原创 go mod 、go sum版本信息不对导致项目报错
1.下载Beego时包的 版本比go版本超前,导致我项目new出来后提示报错。此时我新建出来的项目go.mod文件报错,连累其他引用的.go文件 都报错。删除掉当前项目中的go.mod文件,如果有go.sum文件一起删除。初始化mod(当前项目根目录下)4.使用 bee new 命令。成功 ,项目不再报错。
2023-05-17 14:03:52 898
tcp、udp、串口等监控工具
2024-05-09
DotNetCore.1.0.1-VS2015Tools.Preview2.0.4.exe
2019-03-25
Extjs读取大华监控
2018-11-05
ASP.net MVC SportsStore项目开发三
2018-07-04
C#winform实现串口通信读取电子天平数据
2018-06-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人