自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(522)
  • 资源 (2)
  • 收藏
  • 关注

原创 基准性能测试工具 BenchmarkDotNet

基准性能测试工具 BenchmarkDotNet

2022-09-22 16:16:52 1146 1

原创 .NET RulesEngine(规则引擎)

RulesEngine

2022-06-22 10:43:33 1142

转载 【ASP.NET Core 3.1_参考中间件源码实现自定义AOP】

AOP

2022-06-13 18:00:45 376

原创 Dapper UOW+事物AOP

Dapper UOW AOP

2022-06-09 11:06:14 368

转载 轻松实现AOP之Postsharp

Postsharp文档请参考:PostSharp Documentation - PostSharp 6.10 Documentation没有人喜欢样板代码。我们通常通过使用常见的面向对象编程模式来减少它,但使用模式的代码开销通常与我们最初使用样板代码时几乎相同——如果不是更大的话。以某种方式标记应该实现某些行为的部分代码,并在其他地方解决实现,这将是非常好的。例如,如果我们有一个,我们可以使用Dapper从关系数据库中获取所有学生:这是关系数据库存储库的一个非常简单的实现。如果学生列表没有太大变化并

2022-06-07 16:48:20 795

转载 MyCat | 分库分表实践

阅读目录一、引言 1.切分模式 2.为什么用MyCat 二、分库分表实践 1.基本环境 2.业务目标 3.创建实际数据库 4.安装配置MyCat 5.配置server 6.配置schema 7.启动MyCat 8.MyCat插入和查询 三、附录欢迎大家前往我的个人博客,获取更好的阅读体验和更多分享文章~返回顶部引言先给大家介绍2个概念:数据的切分(Sharding)根据其切分规则的类型,可以分为两种切分模式。切分模式一种是.

2022-03-31 13:46:38 96

转载 .net core xss攻击防御

SS攻击全称跨站脚本攻击,是为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS,XSS是一种在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。比如我们在表单提交的时候插入脚本代码如果不进行处理,那么就是这种效果,我这里只是演示一个简单的弹窗下面给大家分享一下我的解决方案。需要用到这个库:HtmlSanitizerhttps://github.com/mganss/HtmlSa

2022-02-23 14:20:58 647

转载 MSSQL清理日志\删除数据\收缩数据库

 首先解释一下数据库的版本是SQL Server 2012。清除的数据库800多G,磁盘空间就剩10多G,数据量最多的表有2亿。目的就是清楚去年的数据(2017年之前),遇到了一些问题,总结起来就是三方面问题:  1.如何清理日志文件。  2.删除千万级别的数据。  3.数据库的收缩操作。一、清除日志文件  刚开始直接用delete语句删除给报了两次错误:“The transaction log for database 'DB' is full due to 'ACTIVE_TR.

2022-01-28 11:54:36 3059

转载 Carter--模块化组织和管理.NET 6 Minimal API应用程序接口服务的利器

概述亲爱的.NET开发者们,大家好!!!我还是你们的老朋友,码友网的创建者和维护者–Rector。今天我为大家分享的是.NET 6 Minimal APIs应用程序开发中模块化服务接口的轻量组件–Carter。早在.NET 6发布预览版的时候,我就发布过一篇关于《创建API服务最小只要4行代码!!!尝新体验ASP.NET Core 6预览版本中发布的最小Web API(minimal APIS)新特性》的文章,和大家一起预览了.NET 6中Minimal API的新特性。如今(2021年1

2022-01-19 18:02:21 529

转载 Jmeter教程(一) - 入门

一、下载登录官网Jmeter下载,得到压缩包jmeter-5.0.tgz,下载地址:Apache JMeter - Download Apache JMeter二、安装将下载得到的压缩包解压即可,这里我解压到自己电脑的路径为E:\Mysoftware\apache-jmeter-5.0。三、运行点击bin目录下的jmeter.bat即可启动Jmeter。启动后可以看到一个java编写的图形界面。四、一个简单的压测实例现有一个http请求接口http://...

2022-01-07 15:15:39 211

转载 .NET Core 中正确使用 HttpClient 的姿势

为了更方便在服务端调用 HTTP 请求,微软在 .NET Framework 4.x 的时候引入了 HttpClient。但 HttpClient 有很多严重问题,一直饱受诟病,比如 InfoQ 的这篇文章t.cn/Evzy80y,吐槽了 HttpClient 不能立即关闭连接、性能消耗严重等的问题。.NET Core 2.1 开始引入的 HttpClientFactory 解决了 HttpClient 的所有痛点。有了 HttpClientFactory,我们不需要关心如何创建 HttpClient.

2022-01-07 14:22:29 720

转载 灰度发布方案

一、灰度发布定义灰度发布(又名金丝雀发布)是指在黑与白之间,能够平滑过渡的一种发布方式。在其上可以进行A/B testing,即让一部分用户继续用产品特性A,一部分用户开始用产品特性B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B 上面来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。二、实现思路方向1、在代码中做。一套线上环境,代码中做开关,对于不同的用户走不同的逻辑2、在接入层做。多套(隔离的)线上环境,接入层.

2021-12-16 11:02:42 5633

转载 centos8配置nfs教程本机系统mac

1 在服务器端 安装nfs 以及 rpcbindyum install -y nfs-utils rpcbindmkdir -p /data/nfschown -R nfsnobody:nfsnobody /data/nfs 2 配置权限vim /etc/exports文件写入#nfs dir /data/nfs/data/nfs 192.168.1.0/24(rw) #客户端ip(rw,sync,insecure) #不加insecure会connect ref

2021-12-15 17:27:22 869

转载 使用centos的nfs作为windows server2012的共享存储实现文件的共享

使用centos的nfs作为windows server2012的共享存储实现文件的共享srv1.chinasoft.iosrv2.chinasoft.io这两个域名是处理视频的windows server2012 服务器,之前是完全独立的,现在想打通存储处理视频服务器放在ibm的物理机中,配置是24核32G内存,2T磁盘cpu使用率较高,经常飙升到 80% 以上,内存是用不到8G,网络带宽合计大概在30M左右,如果迁移到阿里云是不合适的,费用会大增如果是在centos上用nfs或者nas的

2021-12-15 16:15:58 693

翻译 微服务监控zipkin+asp.net core

1、全链路追踪工具(查看依赖关系)2、查看每个接口、每个service的执行速度(定位问题发生点或者寻找性能瓶颈)zipkin包含: 收集器(Collector):主要是收集微服务所产生的数据(收集器有:http、kafka、rabbitmq)  UI(界面):主要是展示数据的界面  Storage(存储):存储数据(es、mysql、内存、cassandra)        in-memory:仅供测试        JDBC(mysql):数据采集量很大,查询速度...

2021-10-13 11:51:43 223

翻译 链路追踪Zipkin

介绍Zipkin是一个分布式跟踪系统,用来收集微服务架构中的时序数据以用于调用链分析。Zipkin提供了In-Memory、MySql、Elasticsearch等存储方式。安装配置服务端安装开发环境中,我们可以安装一个In-Memory的Zipkindocker run -d -p 9411:9411 openzipkin/zipkin安装完成后打开:http://localhost:9411/zipkin/可见:.NET下的使用Install-Package zi.

2021-10-13 11:31:25 123

翻译 ELK之Log4net配置ElasticSearch

<?xml version="1.0" encoding="utf-8"?><configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> </configSections> <startup> <s.

2021-10-13 10:10:11 332

转载 基于.net core微服务(Consul、Ocelot、Docker、App.Metrics+InfluxDB+Grafana、Exceptionless、数据一致性、Jenkins)

1、微服务简介一种架构模式,提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相沟通(RESTful API)。每个服务都围绕着具体的业务进行构建,并且能够被独立地部署到生产环境、类生产环境等。应尽量避免统一的、集中式的服管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言、工具对其进行构建。                    ——马丁•福勒1.1、.net core下的微服务构件.

2021-10-12 14:00:46 6060

转载 Exceptionless初尝笔记

安装简单试用了下Exceptionless本地部署并收集日志,在此记录下;根据官方文档使用docker安装Exceptionless:安装文档在浏览器中输入http://ip:5000进行访问如能出现如下页面就证明安装成功,此处需注册之后才能登陆。获取异常日志只需要在startup中加入Exceptionless中间件就可以使用Exceptionless捕获项目中的异常信息,并在Exceptionless中查看,代码如下:Install-Package Exceptionle.

2021-10-12 13:41:34 457

转载 .NET Core 集成Exceptionless

章目录一、使用步骤1.免费账号2.登录并创建项目3. 获得属于这个项目的API密钥4. 安装nuget包5. 创建一个类库,方便后期公用方法统一封装,结构如下6. 封装一个接口和一个实现类7. StudyCore项目下的Startup类修改8. Jmeter运行测试一、使用步骤1.免费账号2.登录并创建项目1.选择类型,会提示你需要安装的包和怎么使用3. 获得属于这个项目的API密钥4. 安装nuget包代码:Install-Package Exceptio.

2021-10-12 13:08:04 228

转载 .Net Core构建后台定时服务

在.Net Core2.1版本中,新增了一个名为BackgroundService的类,隶属于Microsoft.Extensions.Hosting命名空间,用来创建后台任务服务,比如定时推送数据与接收消息等。现在我们来实现一个简单的定时任务。注册服务首先我们先在Startup中注册该服务。services.AddSingleton<IHostedService,TimedExecutService>()其中TimedExecutService是我们基于继承Backgrou

2021-10-11 09:54:42 875

转载 ASP.NET Core3.1 集成Apollo快速安装与使用

1.介绍Apollo(阿波罗)是携程框架部研发并开源的一款生产级的配置中心产品,它能够集中管理应用在不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。2.架构和模块下面是Apollo架构模块图(来源自于波波微课):上图简要描述了Apollo的总体设计,我们可以从下往上看:●Config Service提供配置的读取、推送等功能,服务对象是Apollo客户端。●Admin Service提供配置的修改、发布等功能,服务

2021-09-14 15:16:07 524

转载 代码质量管理平台SonarQube的安装、配置与使用

SonarQube是管理代码质量一个开放平台,可以快速的定位代码中潜在的或者明显的错误,下面将会介绍一下这个工具的安装、配置以及使用。准备工作;1、jdk(不再介绍)2、sonarqube:http://www.sonarqube.org/downloads/3、SonarQube+Scanner:https://sonarsource.bintray.com/Distribution/sonar-scanner-cli/sonar-scanner-2.5.zip4、mysql数据库(不

2021-09-03 15:05:48 608

转载 Asp.NET Core 限流控制-AspNetCoreRateLimit

起因: 近期项目中,提供了一些调用频率较高的api接口,需要保障服务器的稳定运行;需要对提供的接口进行限流控制。避免因客户端频繁的请求导致服务器的压力。一、AspNetCoreRateLimit 介绍 AspNetCoreRateLimit是一个ASP.NET Core速率限制的解决方案,旨在控制客户端根据IP地址或客户端ID向Web API或MVC应用发出的请求的速率。AspNetCoreRateLimit包含一个IpRateLimitMiddleware和ClientRateLimitMid

2021-09-02 14:41:34 1098

转载 .Net Core结合AspNetCoreRateLimit实现限流

前言  相信使用过WebApiThrottle的童鞋对AspNetCoreRateLimit应该不陌生,AspNetCoreRateLimit是一个ASP.NET Core速率限制的解决方案,旨在控制客户端根据IP地址或客户端ID向Web API或MVC应用发出的请求的速率。AspNetCoreRateLimit包含一个IpRateLimitMiddleware和ClientRateLimitMiddleware,每个中间件可以根据不同的场景配置限制允许IP或客户端,自定义这些限制策略,也可以将限制策略

2021-09-02 14:40:31 815

转载 nginx 根据IP 进行灰度发布

灰度发布,简单来说,就是根据各种条件,让一部分用户使用旧版本,另一部分用户使用新版本。nginx 的语法本身可以看作是一门小型的编程语言,通过简单的编程,可以轻松实现基于IP的灰度发布。需求:搭建准生产环境,供开发人员/运维在线上做最后的调整。如果OK,直接用rsync推送至生产环境。条件:办公室网络出口有固定IP解决办法:nginx 负载均衡器判断客户端IP地址,如果是办公室IP,则反向代理到准生产环境;如果不是,则反向代理到生产环境。 1

2021-09-01 10:50:41 585

转载 .Net Core使用Ocelot网关(二) -鉴权认证

前言上一章已经简单的介绍了ocelot的使用了,但是网关暴露的接口如果什么人都能访问的话安全性就太低啦。所以我们需要去鉴权和认证。这里我们使用identityServer4给我们的网关来鉴权认证。创建Identity服务我们创建一个identity的服务来用于令牌的发放和鉴权。下图是我的项目结构。Api_Gatewat端口:5000Api_A端口:5001Api_B端口:5002IdentityServer端口:5003通过nuget添加IdentityServer4的包,.

2021-08-31 10:11:25 815

转载 .Net Core使用Ocelot网关(一) -负载,限流,熔断,Header转换

1.什么是API网关API网关是微服务架构中的唯一入口,它提供一个单独且统一的API入口用于访问内部一个或多个API。它可以具有身份验证,监控,负载均衡,缓存,请求分片与管理,静态响应处理等。API网关方式的核心要点是,所有的客户端和消费端都通过统一的网关接入微服务,在网关层处理所有的非业务功能。通常,网关也是提供REST/HTTP的访问API。服务端通过API-GW注册和管理服务。Ocelot介绍Ocelot是用.net Core实现的一款开源的网关,Ocelot其实就是一组按照顺序排列的.n

2021-08-31 10:05:39 861

转载 ASP.NET Core开发-后台任务利器Hangfire使用

SP.NET Core开发系列之后台任务利器Hangfire 使用。Hangfire 是一款强大的.NET开源后台任务利器,无需Windows服务/任务计划程序。可以使用于ASP.NET 应用也可以使用于控制台。Hangfire 只需简单几句代码即可创建新的不同种类的任务。目前 Hangfire 已经支持.NET Core ,现在就给大家讲解下在ASP.NET Core 里的使用。Hangfire GitHub:https://github.com/HangfireIO/Hangfire

2021-08-26 13:29:06 1139

转载 Polly简介

前言本节我们来介绍一款强大的库Polly,Polly是一种.NET弹性和瞬态故障处理库,允许我们以非常顺畅和线程安全的方式来执诸如行重试,断路,超时,故障恢复等策略。 Polly针对对.NET 4.0,.NET 4.5和.NET Standard 1.1以及.NET Core实现,该项目作者现已成为.NET基金会一员,项目一直在不停迭代和更新,项目地址【https://github.com/App-vNext/Polly】,你值得拥有。接下来我们以.NET Framework 4.5来演示它的强大功能.

2021-08-25 13:12:45 1150

转载 .Net Core with 微服务 - Polly 服务降级熔断

在我们实施微服务之后,服务间的调用变的异常频繁。多个服务之间可能是互相依赖的关系。某个服务出现故障或者是服务间的网络出现故障都会造成服务调用的失败,进而影响到某个业务服务处理失败。某一个服务调用失败轻则造成当前相关业务无法处理;重则可能耗尽资源而拉垮整个应用。为了尽可能的保证我们生产环境的可用性,至少是部分可用性我们就需要一些策略来保护我们的服务。服务降级比如我们的订单详情服务里面会调用会员信息服务接口。如果会员信息服务接口故障会造成订单详情服务也同样故障。这时候我们可以对会员信息服务接口进行降级,

2021-08-25 11:47:36 231

转载 最详细之教你Jenkins+github自动化部署.Net Core程序到Docker目录

环境 centos7.9,.NET5回到顶部一、Jenkins搭建1)下载Jenkins的war包在\home目录建一个jenkins目录放jenkins的包#进入\home目录cd \home#创建 jenkins目录mkdir jenkins在jenkins目录下载war包#进入jenkin目录cd \home\jenkins#下载jenkins的war包wget http://mirrors.jenkins.io/war-stable/latest/jenk

2021-08-20 11:48:28 236

转载 Visual Studio 2017 常用快捷键

1、窗口快捷键Ctrl+W,W: 浏览器窗口Ctrl+W,S: 解决方案管理器 (Solution)Ctrl+W,C: 类视图 (Class)Ctrl+W,E: 错误列表 (Error)Ctrl+W,O: 输出窗口(Output)Ctrl+W,P: 属性窗口 (Property)Ctrl+W,T: 任务列表 (Task)Ctrl+W,X: 工具箱 (Tool,t已被任务列表占用)Ctrl+W,B: 书签窗口 (Bookmark,方便寻找代码)Ctrl+W,U: 文档大纲 (OutLi

2021-05-28 13:35:56 1791

转载 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁

我在 使用 Task.Wait()?立刻死锁(deadlock) 一文中站在类库使用者的角度看 async/await 代码的死锁问题;而本文将站在类库设计者的角度来看死锁问题。阅读本文,我们将知道如何编写类库代码,来尽可能避免类库使用者出现那篇博客中描述的死锁问题。可能死锁的代码现在,我们是类库设计者的身份,我们试图编写一个 RunAsync 方法用以异步执行某些操作。private async Task RunAsync(){ // 某些异步操作。}1234类库的使用..

2021-05-28 09:13:23 401

转载 RabbitMQ的介绍及使用进阶(Docker+.Net Core)

目录:  一、什么是RabbitMQ  二、RabbitMQ运用场景  三、RabbitMQ优势及特点  四、Centos7中Docker安装RabbitMQ  五、.Net Core 中使用RabbitMQ一、什么是RabbitMQRabbitMQ是什么? --"RabbitMQ是基于AMQP协议的队列服务",.什么是AMQP?-- Advanced Message Queue,高级消息队列协议。它是应用层协议的一个开放标准,为面向消息的中间件设计,基于此协议的客户端.

2021-04-12 13:55:19 155

转载 假如易立竞吐槽程序员。。。

假如易立竞吐槽程序员。。。你的发际线那么高,你的技术水平有那么高吗?你没事就刷数据结构和算法,是真的喜欢,还是面试会考呢?如果面试不考算法,你还会学吗?就好像学了B树,但是每天的增删改查能不能用到B树你心里应该也有逼数吧。你当初入行,是真的喜欢代码,还是觉得这行收入高呢?现在入行了,收入真的高吗?听说你喜欢开源项目,你有自己的开源项目吗?还是说喜欢开源项目是为了方便抄开源项目的代码呢?当用的第三方包有问题,你会看源码解决还是直接换个轮子用呢?你当然不会看源码解决,因为

2021-04-09 17:24:11 5661 33

转载 windows使用jenkins 搭建 .net 自动发布IIS站点平台

前言  什么是持续集成呢?Continuous integration(CI)。持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误。许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发内聚的软件。  如果没有持续集成会有哪一些问题呢?模块项目接口部署不及时,接口不通。每次需要手动打包最新的代码进行部署、发布代码、线上部署都是纯手工。

2021-04-07 15:26:47 1000

转载 网关Ocelot

前言网关(Gateway)在微服务架构中至关重要,可以将其理解为是外部客户端(前端、MVC后台等调用方)与后台服务的连接点,通过这层可以做统一的处理,比如路由、身份认证和授权、服务治理等;网关的好处:统一入口,调用方(客户端)不在为调哪个服务而头大,统一入口即可,由网关路由到对应后台服务; 统一处理公共逻辑,比如认证和授权,避免相同逻辑多处实现,易于维护; 对后台服务可以做负载均衡,根据指定的负载算法找到合适的后台服务调用,而这些细节调用方都不用理会,只管调就行啦; 初步过滤非法请求,可以

2021-04-06 10:05:19 2458

转载 高并发秒杀系统架构解密,不是所有的秒杀都是秒杀!

前言很多小伙伴反馈说,高并发专题学了那么久,但是,在真正做项目时,仍然不知道如何下手处理高并发业务场景!甚至很多小伙伴仍然停留在只是简单的提供接口(CRUD)阶段,不知道学习的并发知识如何运用到实际项目中,就更别提如何构建高并发系统了!究竟什么样的系统算是高并发系统?今天,我们就一起解密高并发业务场景下典型的秒杀系统的架构,结合高并发专题下的其他文章,学以致用。电商系统架构在电商领域,存在着典型的秒杀业务场景,那何谓秒杀场景呢。简单的来说就是一件商品的购买人数远远大于这件商品的库存,而且

2021-03-30 11:09:08 103

转载 require.js

RequireJS由James Burke创建,他也是AMD规范的创始人。RequireJS会让你以不同于往常的方式去写JavaScript。你将不再使用script标签在HTML中引入JS文件,以及不用通过script标签顺序去管理依赖关系。当然也不会有阻塞(blocking)的情况发生。好,以一个简单示例开始。新建一个目录,结构如下目录r1下有index.html、jquery-1.7.2.js、main.js、require.js。require.js和jq...

2021-01-06 17:37:11 107

.net国际化语言封装类库

.net国际化语言封装类库,可直接引用类库进行.net站点的国际化

2019-01-30

异步同时将信息推送到多个接口中

很多时候我们可能有某个信息,需要同时推送到多个接口中,推送的信息是一样的,这里主要采用了异步进行同时进行推送到各个接口中进行处理,可扩展,可维护

2019-01-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除