摘要:一、对象池 运用对象池化技术可以显著地提升性能,尤其是当对象的初始化过程代价较大或者频率较高。下面是ObjectPool源码中涉及的几个类。当你看过.Net Core源码很多时,你会发现,微软的开发很多都是这种模式,通过Policy构建Provider,通过Provider创建最终的类。 二、使用 阅读全文
posted @ 2019-10-19 02:06 MicroHeart! 阅读 (165) 评论 (0) 编辑
摘要:平时很少用到文件操作和流,所以每次用的时候都是百度,不明不白,Copy过去就行了,中间也有去整理,由于没有记笔记,用得少,一段时间又忘记了。这次来一次彻彻底底的梳理。 一、继承关系图 二、文件和文件夹操作类 File和FileInfo:是文件操作类,可以对文件进行创建、修改、删除、移动等,只要对文件 阅读全文
posted @ 2019-07-22 10:36 MicroHeart! 阅读 (59) 评论 (0) 编辑
摘要:一、配置简述 之前在.Net Framework平台开发时,一般配置文件都是xml格式的Web.config,而需要配置其他格式的文件就需要自己去读取内容,加载配置了。.而Net Core支持从命令行、环境变量、文件、内存、Key-per-file中加载配置,其中文件包括xml、ini、json三种 阅读全文
posted @ 2019-05-27 08:51 MicroHeart! 阅读 (405) 评论 (1) 编辑
摘要:一、依赖注入 引入依赖注入的目的是为了解耦和。说白了就是面向接口编程,通过调用接口的方法,而不直接实例化对象去调用。这样做的好处就是如果添加了另一个种实现类,不需要修改之前代码,只需要修改注入的地方将实现类替换。上面的说的通过接口调用方法,实际上还是需要去实例化接口的实现类,只不过不需要我们手动ne 阅读全文
posted @ 2019-05-16 17:33 MicroHeart! 阅读 (1011) 评论 (1) 编辑
摘要:1、消息中间件 消息队列中间件是指利用高效可靠地消息传递机制传递消息。有两种传递模式:点对点模式、发布/订阅模式。流行的消息中间件有RabblitMQ、Kafka、RockerMQ。它们都提供了基于存储和转发的应用程序之间的异步数据发送,即应用程序彼此不直接通信,而是与作为中介的消息中间件通信。 2 阅读全文
posted @ 2019-04-01 21:50 MicroHeart! 阅读 (514) 评论 (0) 编辑
摘要:通过ZooKeeper的有序节点、节点路径不回重复、还有节点删除会触发Wathcer事件的这些特性,我们可以实现分布式锁。 一、思路 二、实现 在实现是要了解一个类 AutoResetEvent。AutoResetEvent 常常被用来在两个线程之间进行信号发送。它有两个重要的方法: Set() : 阅读全文
posted @ 2019-02-28 23:26 MicroHeart! 阅读 (146) 评论 (0) 编辑
摘要:上一篇文章简单介绍了ZooKeeper,讲了分布式中,每个微服务都会部署到多台服务器上,那服务之间的调用是怎么样的呢?如图: 1、集群A中的服务调用者如何发现集群B中的服务提供者呢? 2、集群A中的服务调用者如何选择集群B中的某一台服务提供者去调用呢? 3、集群B中某台机器下线,集群A怎么避免下次调 阅读全文
posted @ 2019-02-25 01:07 MicroHeart! 阅读 (1778) 评论 (2) 编辑
摘要:一、服务注册中心介绍 分布式服务框架部署在多台不同的机器上。例如服务A是订单相关的处理服务,服务B是订单的客户的相关信息服务。此时有个需求需要在服务A中获取订单客户的信息。如下图: 此时就面临以下几个问题: 1、集群A中的服务调用者如何发现集群B中的服务提供者。 2、集群A中的服务调用者如何选择集群 阅读全文
posted @ 2019-02-24 18:03 MicroHeart! 阅读 (746) 评论 (0) 编辑
摘要:因为老项目用的Asp.Net Web API技术开发部署到Window系统上,而新项目用的是.Net Core部署到Ubuntu系统中,所以在管理切换上有些不便。于是决定将老项目的测试服部署到Ubuntu中,试试水。 一、简述 要实现Asp.Net项目部署到Linux中,必须要通过Mono。Mono 阅读全文
posted @ 2019-01-21 21:03 MicroHeart! 阅读 (499) 评论 (2) 编辑
摘要:项目中有时接口访问时间过长,但是通过浏览器F12查看时,接口访问时间很正常,所以就很奇怪,于是写一个中间件,记录所有接口访问时间的中间件。 一、中间件 中间件是应用程序处理管道中的组件,用来处理请求和响应。如下图,请求来之后,第一个中间件处理,处理完后调用下一个中间件(当然也可以选择不调用下一个中间 阅读全文
posted @ 2018-10-30 17:21 MicroHeart! 阅读 (637) 评论 (1) 编辑
摘要:一、介绍 主机地址过滤中间件相当于一个白名单,标记哪些主机地址能访问接口。 二、使用 新建WebAPI项目,修改Startup中的代码段如下所示。下面表示允许主机名为“localhost”的主机访问(不区分大小写),其他主机地址访问此项目的接口都会返回400错误。 (正常访问) 上面为正常访问情况, 阅读全文
posted @ 2018-09-19 02:48 MicroHeart! 阅读 (407) 评论 (0) 编辑
摘要:一、介绍 在介绍静态文件中间件之前,先介绍 ContentRoot和WebRoot概念。 ContentRoot:指web的项目的文件夹,包括bin和webroot文件夹。 WebRoot:一般指ContentRoot路径下的wwwroot文件夹。 介绍这个两个概念是因为静态资源文件一般存放在Web 阅读全文
posted @ 2018-09-10 14:30 MicroHeart! 阅读 (687) 评论 (1) 编辑
摘要:今天写了一个sql,其中涉及的表中的数据量都差不多为50w左右,查询发现用了8s。这个只是测试服上数据,放到正式服上,肯定一运行就挂了。 然后就用EXPLAIN分析了一下,发现Orders表没有命中索引,但是查询Orders中的GuidNo已经设置了索引,但就是不能命中。 然后我将上面的语句分为两个 阅读全文
posted @ 2018-09-06 15:47 MicroHeart! 阅读 (186) 评论 (0) 编辑
摘要:一、安装 我使用的系统是Ubuntu16.04,不同版本系统参照官网安装步骤。安装官网4个步骤安装