自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(138)
  • 收藏
  • 关注

转载 .Net Core中间件和过滤器实现错误日志记录

1.中间件的概念ASP.NET Core的处理流程是一个管道,中间件是组装到应用程序管道中用来处理请求和响应的组件。 每个中间件可以:选择是否将请求传递给管道中的下一个组件。可以在调用管道中的下一个组件之前和之后执行业务逻辑。  中间件是一个请求委托(public delegate Task RequestDelegate(HttpContext...

2019-10-03 13:11:00 764

转载 快速掌握mongoDB(六)——读写分离的副本集实现和Sharing介绍

1 mongoDB副本集1 副本集简介  前边我们介绍都是单机MongoDB的使用,在实际开发中很少会用单机MongoDB,因为使用单机会有数据丢失的风险,同时单台服务器无法做到高可用性(即当服务器宕机时,没有替代的服务器顶上来,我们的业务也就挂了),MongoDB中的副本集可以完美地解决上边的两个问题。   MongoDB的副本集本质上就是一组mongod进程。复制集的成...

2019-07-23 20:28:00 369

转载 快速掌握mongoDB(五)——通过mongofiles和C#驱动操作GridFS

1 GridFS简介  当前Bson能存储的最大尺寸是16M,我们想把大于16M的文件存入mongoDB中怎么办呢?mongoDB提供的GridFS就是专门做这个的。使用GridFS存储大文件时,文件被分成一个个的块(默认大小是255kb),将每一块存放在一个单独的document中。GridFS将文件存储在两个collection中:chunks collection和files...

2019-07-22 17:02:00 696

转载 快速掌握mongoDB(四)—— C#驱动MongoDB用法演示

  前边我们已经使用mongo shell进行增删查改和聚合操作,这一篇简单介绍如何使用C#驱动MongoDB。C#驱动MongoDB的本质是将C#的操作代码转换为mongo shell,驱动的API也比较简单明了,方法名和js shell的方法名基本都保持一致,熟悉mongo shell后学习MongoDB的C#驱动是十分轻松的,直接看几个栗子吧。0.准备测试数据  使用js ...

2019-07-20 11:42:00 701

转载 快速掌握mongoDB(三)——mongoDB的索引详解

1 mongoDB索引的管理  本节介绍mongoDB中的索引,熟悉mysql/sqlserver等关系型数据库的小伙伴应该都知道索引对优化数据查询的重要性。我们先简单了解一下索引:索引的本质就是一个排序的列表,在这个列表中存储着索引的值和包含这个值的数据(数据row或者document)的物理地址,索引可以大大加快查询的速度,这是因为使用索引后可以不再扫描全表来定位某行的数据,而是...

2019-07-19 14:47:00 216

转载 快速掌握mongoDB(二)——聚合管道和MapReduce

  上一节简单介绍了一下mongoDB的增删改查操作,这一节将介绍其聚合操作。我们在使用mysql、sqlserver时经常会用到一些聚合函数,如sum/avg/max/min/count等,mongoDB也提供了丰富的聚合功能,让我们可以方便地进行数据的分析和计算。这里主要介绍两种聚合方式:聚合管道和MapReduce.1聚合管道  官网文档:https://docs.mon...

2019-07-18 12:37:00 344

转载 快速掌握mongoDB(一)——mongoDB安装部署和常用shell命令

1.mongoDB简介  mongoDB 是由C++语言编写的,是一种分布式的面向文档存储的开源nosql数据库。nosql是Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称。  mongoDB是无模式的文档数据库,在关系型数据库中,数据表的每一行都拥有一样的字段,字段的名字和数据类型在创建table的时候就基本确定了,如student表的每一行...

2019-07-16 08:32:00 292

转载 快速掌握RabbitMQ(五)——搭建高可用的RabbitMQ集群

  RabbitMQ的集群是依赖erlang集群的,而erlang集群是通过.erlang.cookie文件进行通信认证的,所以我们使用RabbitMQ集群时只需要配置一下.erlang.cookie文件即可。下边简单演示一下RabbitMQ高可用集群的搭建,附带一个简单使用C#驱动RabbtiMQ集群的小栗子。1 搭建RabbitMQ高可用集群  首先准备三台设备,这里采用的三...

2019-05-27 08:38:00 207

转载 快速掌握RabbitMQ(四)——两种消费模式和QOS的C#实现

  本篇介绍一下RabbitMQ中的消费模式,在前边的所有栗子中我们采用的消费者都是EventingBasicConsumer,其实RabbitMQ中还有其他两种消费模式:BasicGet和QueueBaicConsumer,下边介绍RabiitMQ的消费模式,及使用它们时需要注意的一些问题。1 RabbitMQ的消费模式0 准备工作  使用Web管理工具添加exchange...

2019-05-25 13:26:00 511

转载 快速掌握RabbitMQ(三)——消息确认、持久化、优先级的C#实现

1 消息确认  在一些场合,如转账、付费时每一条消息都必须保证成功的被处理。AMQP是金融级的消息队列协议,有很高的可靠性,这里介绍在使用RabbitMQ时怎么保证消息被成功处理的。消息确认可以分为两种:一种是生产者发送消息到Broke时,Broker给生产者发送确认回执,用于告诉生产者消息已被成功发送到Broker;一种是消费者接收到Broker发送的消息时,消费者给Broker...

2019-05-24 17:28:00 242

转载 快速掌握RabbitMQ(二)——四种Exchange介绍及代码演示

  在上一篇的最后,编写了一个C#驱动RabbitMQ的简单栗子,了解了C#驱动RabbitMQ的基本用法。本章介绍RabbitMQ的四种Exchange及各种Exchange的使用场景。1 direct类型1 direct路由规则  上一篇最后一个栗子使用的Exchange就是direct类型的,direct类型的exchange路由规则很简单:  exchan...

2019-05-23 19:16:00 215

转载 快速掌握RabbitMQ(一)——RabbitMQ的基本概念、安装和C#驱动

1 RabbitMQ简介 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现,官网地址:http://www.rabbitmq.com。RabbitMQ作为一个消息代理,主要负责接收、存储和转发消息,它提供了可靠的消息机制和灵活的消息路由,并支持消息集群和分布式部署,常用于应用解耦,耗时任务队列,流量削锋等场景。...

2019-05-23 09:13:00 297

转载 docker部署Asp.net core应用

1 容器概念  使用Docker前我们首先要简单了解一下容器的概念。MSDN上有一张虚拟机和容器的对比图,很好的展示了虚拟机和容器的区别,如下所示,虚拟机包括应用程序、必需的库或二进制文件以及完整的来宾操作系统,每台虚拟机都有一个单独的内核,我们完全可以把虚拟机看做是一台真实的物理机。容器包括应用程序及其所有依赖项,与其他容器共享 OS 内核,容器在主机操作系统上作为独立进程运行,...

2019-04-30 20:58:00 134

转载 快速掌握Nginx(四) —— Nginx日志切片和常用配置总结

1.Nginx日志管理1.日志简单介绍  Nginx提供了日志记录的功能,日志文件在对我们管理网站十分有用,通过访问日志(access_log)我们可以获取请求来源、客户端信息、请求的资源等信息;通过错误日志(error_log)可以获取错误发生时间、错误信息等,方便我们及时定位和修复错误。看一下Nginx中日志相关的指令。#设置访问日志:访问日志文件为nginx/log...

2019-04-13 17:09:00 225

转载 快速掌握Nginx(三) —— Nginx+Systemd托管netcore应用

  以前dotnet web应用程序开发完成后,我们都是使用IIS部署在Windows Server上,如今netcore技术发展迅速,因为其跨平台的特性,将dotnet web应用程序部署在更方便部署和更廉价的Linux服务器上日益流行。这里简单介绍如何使用Nginx/Systemd/Kestrel将netcore web应用程序部署在Centos系统上。将会涉及两个概念:反向代理和负...

2019-04-11 20:22:00 449

转载 快速掌握Nginx(二) —— Nginx的Location和Rewrite

1 location详解1.location匹配规则  Nginx中location的作用是根据Url来决定怎么处理用户请求(转发请求给其他服务器处理或者查找本地文件进行处理)。location支持正则表达式,配置十分灵活。我们可以在一个虚拟主机(nginx中的一个server节点)下配置多个location以满足如动静分离,防盗链等需求。  location语法是: loc...

2019-03-31 18:14:00 162

转载 快速掌握Nginx(一) —— 安装Nginx和简单配置虚拟主机

Nginx安装和简单配置虚拟主机1 Nginx简介  Nginx是近几年最火热的http、反向代理服务器,百度阿里等互联网公司也都在使用Nginx,它也可以用作邮件代理服务器、TCP/UDP代理服务器等。Nginx功能和Apache相似,其优点主要在于以下几点:①高并发响应性能好,官方nginx处理静态文件并非为5w/s;②反向代理性能好(可用于负载均衡);③内存...

2019-03-17 21:22:00 134

转载 netcore项目在Windows部署:使用NSSM部署Windows服务

NSSM部署Windows服务1 准备工作  在Windows平台部署Asp.net core应用程序一般采用IIS,但是如果我们的net core应用执行的是定时任务,需要开机自启,稳定运行的话,使用NSSM将其部署为Winodows服务是一种不错的选择。NSSM官网地址:http://www.nssm.cc/。我们知道netcore应用本质都是Console应用程序,所以...

2019-03-16 20:41:00 323

转载 netcore项目在Centos部署:nohup和supervisor方式

Centos上部署netcore项目1 准备工作  在Centos上部署netcore应用程序有两种常用方式:nohup和supervisord,这里简单演示一下这两种部署方式。首先我们写一个简单的netcore控制台项目(netcore mvc、webapi本质都是一个控制台项目),项目名称就叫HelloWorld,代码如下: class Program ...

2019-03-16 16:27:00 621

转载 netcore中的缓存介绍

  Cache(缓存)是优化web应用的常用方法,缓存存放在服务端的内存中,被所有用户共享。由于Cache存放在服务器的内存中,所以用户获取缓存资源的速度远比从服务器硬盘中获取快,但是从资源占有的角度考虑缓存也不是越多越好。经常要用到且不会频繁改变且被用户共享的数据很适合放在缓存中。在介绍netcore的缓存前我们先回顾下net framework中的缓存技术。  net frame...

2019-03-12 21:10:00 569

转载 Linux工具安装和常用配置

1 常用开发工具安装1 Nginx系列2 mongoDB系列3 RabbitMQ系列4 安装Mysql①基本安装wget http://repo.mysql.com/mysql57-community-release-el7-10.noarch.rpm;sudo rpm -ivh mysql57-community-release-el7-10.noarc...

2019-03-05 08:42:00 75

转载 .Net Core配置文件介绍

Net Core中的配置文件介绍1 简单回顾.Net Framework配置文件  .Net Core中的配置文件操作较.Net Framework有了很大的改动。介绍.Net Core中配置文件操作前,我们先回顾下.Net Framework中配置文件的操作。在.Net Framework中应用程序的配置文件只支持XML形式,应用程序的配置文件一般是App.Config或者We...

2019-02-26 10:53:00 198

转载 Centos7上开发.Net Core项目

本文主要内容是简单介绍如何在centos7上开发.Net Core项目,在此之前我们首先了解下.Net Core的基本特性。1 .Net Core和.Net FrameWork的异同1.1 .Net Core优势  .Net Core发布两年了,这两年.Net Core的发展十分迅速,到目前已经推出来了.Net Core3.0预览版,支持通过.Net Core来开发桌面应用程...

2019-02-25 13:22:00 215

转载 VMWare的host-only/bridged/NAT连接图文介绍

1 VMware简介  VMWare虚拟机软件是一个“虚拟PC”软件,它使我们可以在一台机器上同时运行二个或更多Windows、Linux等系统。如果我们需要使用多个系统的话,传统的方式有两种:1.使用多台设备:如一台安装windows系统,一台安装Linux系统//缺点:购买多台设备成本较高2.使用多启动系统:安装windows/Linux双系统//缺点:同...

2019-02-22 13:25:00 224

转载 Quartz.net 3.x使用总结(二)——Db持久化和集群

  上一篇简单介绍了Quartz.net的概念和基本用法,这一篇记录一下Quartz.net通过数据库持久化Trigger和Jobs等数据,并简单配置Quartz.net的集群。1.JobStore介绍  学习持久化和集群前我们先了解一下Quartz.net中的JobStore,JobStore用于追踪任务调度相关的所有数据,如Job,Trigger,Calendar等。Quar...

2019-02-01 21:15:00 210

转载 Vuex实现状态管理

Vuex使用总结1 Vuex简介  Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式,Vuex抽取了各个组件的共享部分,以全局单例模式进行状态的管理。在原生vue中各个组件之间传值使用的是props和event,如果组件嵌套层数过多使用props进行传参会十分繁琐,vuex使用“唯一数据源”进行管理,所有的组件直接从vuex获取数据即可;在使用原生vue时,如果多个...

2019-01-16 18:11:00 200

转载 Quartz.net 3.x使用总结(一)——简单使用

1.Quartz.net简介  Quartz.NET是一个强大、开源、轻量级的任务调度框架。任务调度在我们的开发中经常遇到,如说:每天晚上三点让程序或网站执行某些代码,或者每隔5秒种执行一个方法等。Windows计划任务也能实现类似的任务调度,但是Quartz.net有一些有优秀的特性,如:数据库支持,集群,插件,支持cron-like表达式等等。官网:http://www....

2019-01-16 18:09:00 1280

转载 C#获取根目录的方法总结

1.控制台应用程序 static void Main(string[] args) { //1.Environment.CurrentDirectory Console.WriteLine(Environment.CurrentDirectory); //2.AppDom...

2019-01-04 14:48:00 290

转载 C#开发Windows服务详细流程

1.Windows服务简单介绍  Windows服务程序是在Windows操作系统下能完成特定功能的可执行的应用程序,主要用于长时间运行的功能或者执行定时任务。一般情况下,用户不能通过用户界面来安装和启动Windows服务程序,服务的启动方式有自动启动和手动启动两种。我们可以在运行中输入services.msc命令打开服务管理界面,在这里可以进行启动或者停止服务:2.C#开...

2018-12-28 17:46:00 307

转载 C#连接和操作Oracle数据

最近业务需要读取远程Oracle数据库的数据,这里简单记录一下。  这里采用的是Oracle.ManagedDataAccess方式连接Oracle数据库,这种方式有几个优点:①不用安装Oracle客户端;②不用区分32bit还是64bit;③使用简单方便,可通过Nuget直接引入;④对EF和.Net Core提供了支持。下边简单的使用一下,我们首先在Oracle数据库存入两条简...

2018-12-21 17:35:00 180

转载 C#设计模式(17)——观察者模式

1.观察者模式介绍  观察者模式又叫发布-订阅模式,它定义了对象间的一种一对多关系,当一个对象的状态发生改变时,所有依赖于它的对象都会收到通知并被自动更新。观察者模式就四个角色:抽象主题,具体主题,抽象观察者,具体观察者。抽象主题是一个抽象的接口或者抽象类,对主题的功能进行抽象,抽象观察者对具体的观察者进行抽象。观察者模式在软件开发中的应用十分广泛,如微信订阅号、微博订阅等都采用了观...

2018-12-12 21:30:00 130

转载 C#设计模式(16)——中介者模式

1.中介者模式介绍  中介者模式,定义了一个中介对象来封装一系列对象之间的交互关系,中介者使各个对象之间不需要显式地相互引用,从而降低耦合性。在开发中我们会遇到各个对象相互引用的情况,每个对象都可以和多个对象进行交互,这时将会形成复杂的一对多结构的网状结构,各个对象之间过度耦合,这样不利于类的复用和扩展。如果引入了中介者模式,各个对象都通过中介者进行交互,那么对象之间的关系将变成一对...

2018-12-10 21:22:00 162

转载 C#设计模式(14)——模板方法模式

1.模板方法模式介绍  提到模板我们经常会想到简历模板/PPT模板等,以简历模板为例,不同的人可以使用一样的简历模板,在填充内容时根据自己的名字/工作经历等填写自己的内容,从而形成不同的简历。在OO中模板方法模式和现实中的模板十分相似,首先要有一个封装了不可变部分的抽象类(简历的大致结构,都有姓名、性别、年龄、工作经历等),然后将可变部分延迟到子类中(不同人的简历内容不同,这些不同的...

2018-12-01 15:52:00 68

转载 C#设计模式(13)——享元模式

1.享元模式介绍  在软件开发中我们经常遇到多次使用相似或者相同对象的情况,如果每次使用这个对象都去new一个新的实例会很浪费资源。这时候很多人会想到前边介绍过的一个设计模式:原型模式,原型模式通过拷贝现有对象来生成一个新的实例,使用拷贝来替代new。原型模式可以很好的解决创建多个相同/相似实例的问题,为什么还要用享元模式呢?这是因为这两种模式的使用场景是不同的,原型模式侧重于”创建...

2018-11-29 23:15:00 86

转载 NPOI使用教程附Helper

1 NPOI简介1.1 NPOI是什么  NPOI是POI的.NET版本,POI是一套用Java写成的库,我们在开发中经常用到导入导出表格、文档的情况,NPOI能够帮助我们在没有安装微软Office的情况下读写Office文件,如xls, doc, ppt等。NPOI采用的是Apache 2.0许可证(poi也是采用这个许可证),这意味着它可以被用于任何商业或非商业项目,我们不用...

2018-11-29 17:30:00 1067

转载 C#设计模式(12)——组合模式

1.组合模式  在软件开发中我们经常会遇到处理部分与整体的情况,如我们经常见到的树形菜单,一个菜单项的子节点可以指向具体的内容,也可以是子菜单。类似的情况还有文件夹,文件夹的下级可以是文件夹也可以是文件。举一个例子:一个公司的组织架构是这样的,首先是总公司,总公司下边有直属员工和各个部门,各个部门下边有本部门的子部门和员工。我们去怎么去获取这个公司的组织架构呢(就是有层次地遍历出公司...

2018-11-27 22:17:00 121

转载 C#设计模式(11)——装饰者模式

1.装饰者模式介绍  装饰者顾名思义就是对一个类添加一些额外的装饰(功能)。我们想给一个对象添加一些额外的功能又不改变对象内方法的签名怎么做呢?最常用的方法就是继承了,子类继承父类,然后重写父类的方法。考虑一种情况,如我们要给父类中的Show方法添加三个新功能功能a、功能b、功能c,这三种功能组合在一起时数目和执行顺序不同,效果也是不同的,为了现实所有的功能,我们需要创建很多子类,如...

2018-11-25 20:35:00 71

转载 C#设计模式(10)——桥接模式

1.桥接模式介绍  桥接模式用于将抽象化和实现化解耦,使得两者可以独立变化。在面向对象中用通俗的话说明:一个类可以通过多角度来分类,每一种分类都可能变化,那么就把多角度分离出来让各个角度都能独立变化,降低各个角度间的耦合。这样说可能不太好理解,举一个画几何图形的例子:我们画的几何图形可以按照形状和颜色两个角度的进行分类,按形状分类,分为圆形、长方形、三角形,按照颜色分类分为蓝色图形...

2018-11-25 16:26:00 115

转载 C#设计模式(9)——代理模式

1.代理模式介绍  在软件开发中有时会遇到不能直接使用对象的问题,如我们要使用的对象在进程外,甚至在远程的机器上,但是我们要使用这个对象的功能怎么办呢?代理模式就可以用来解决这个问题。举一个生活中的例子:一个害羞男孩追求一个叫如花的女孩,但是自己不敢送礼物,就找了一个朋友代理他给如花送礼物。就以这个例子介绍代理模式的角色:  抽象主题角色:定义了真实主题和代理主题的公共接口,害羞...

2018-11-24 20:41:00 71

转载 C#设计模式(8)——外观模式

1.外观模式介绍  外观模式也被叫做门面模式,这种模式的作用是:隐藏系统的复杂性,并向客户端提供了一个可以访问系统的统一接口,这个统一的接口组合了子系统的多个接口。使用统一的接口使得子系统更容易被访问或者使用。 以去医院看病为例,去医院看病时可能要去挂号、门诊、划价、取药等,让患者或患者家属觉得很复杂,如果有提供接待人员,只让接待人员来处理,就很方便。我们先了解下外观模式的三种角色:...

2018-11-24 18:25:00 121

空空如也

空空如也

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

TA关注的人

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