摘要: 一、依赖注入 引入依赖注入的目的是为了解耦和。说白了就是面向接口编程,通过调用接口的方法,而不直接实例化对象去调用。这样做的好处就是如果添加了另一个种实现类,不需要修改之前代码,只需要修改注入的地方将实现类替换。上面的说的通过接口调用方法,实际上还是需要去实例化接口的实现类,只不过不需要我们手动ne阅读全文
posted @ 2019-05-16 17:33 MicroHeart! 阅读(551) 评论(1) 编辑
摘要: 最近优化一批接口,之前只优化过MySQL数据库语句,它和SQL SERVER的差别还是很大的,记录一下优化后时间差别最大的两个接口。 接口一: 根据条件查询十个分表,SQL语句处理后如下,其中查询条件不止三个,还有一些其他。优化前:75s 优化: 优化点一:如果username字段有索引,但是lik阅读全文
posted @ 2019-04-30 17:45 MicroHeart! 阅读(28) 评论(0) 编辑
摘要: 1、消息中间件 消息队列中间件是指利用高效可靠地消息传递机制传递消息。有两种传递模式:点对点模式、发布/订阅模式。流行的消息中间件有RabblitMQ、Kafka、RockerMQ。它们都提供了基于存储和转发的应用程序之间的异步数据发送,即应用程序彼此不直接通信,而是与作为中介的消息中间件通信。 2阅读全文
posted @ 2019-04-01 21:50 MicroHeart! 阅读(388) 评论(0) 编辑
摘要: 通过ZooKeeper的有序节点、节点路径不回重复、还有节点删除会触发Wathcer事件的这些特性,我们可以实现分布式锁。 一、思路 二、实现 在实现是要了解一个类 AutoResetEvent。AutoResetEvent 常常被用来在两个线程之间进行信号发送。它有两个重要的方法: Set() :阅读全文
posted @ 2019-02-28 23:26 MicroHeart! 阅读(68) 评论(0) 编辑
摘要: 上一篇文章简单介绍了ZooKeeper,讲了分布式中,每个微服务都会部署到多台服务器上,那服务之间的调用是怎么样的呢?如图: 1、集群A中的服务调用者如何发现集群B中的服务提供者呢? 2、集群A中的服务调用者如何选择集群B中的某一台服务提供者去调用呢? 3、集群B中某台机器下线,集群A怎么避免下次调阅读全文
posted @ 2019-02-25 01:07 MicroHeart! 阅读(594) 评论(2) 编辑
摘要: 一、服务注册中心介绍 分布式服务框架部署在多台不同的机器上。例如服务A是订单相关的处理服务,服务B是订单的客户的相关信息服务。此时有个需求需要在服务A中获取订单客户的信息。如下图: 此时就面临以下几个问题: 1、集群A中的服务调用者如何发现集群B中的服务提供者。 2、集群A中的服务调用者如何选择集群阅读全文
posted @ 2019-02-24 18:03 MicroHeart! 阅读(286) 评论(0) 编辑
摘要: 因为老项目用的Asp.Net Web API技术开发部署到Window系统上,而新项目用的是.Net Core部署到Ubuntu系统中,所以在管理切换上有些不便。于是决定将老项目的测试服部署到Ubuntu中,试试水。 一、简述 要实现Asp.Net项目部署到Linux中,必须要通过Mono。Mono阅读全文
posted @ 2019-01-21 21:03 MicroHeart! 阅读(435) 评论(2) 编辑
摘要: 项目中有时接口访问时间过长,但是通过浏览器F12查看时,接口访问时间很正常,所以就很奇怪,于是写一个中间件,记录所有接口访问时间的中间件。 一、中间件 中间件是应用程序处理管道中的组件,用来处理请求和响应。如下图,请求来之后,第一个中间件处理,处理完后调用下一个中间件(当然也可以选择不调用下一个中间阅读全文
posted @ 2018-10-30 17:21 MicroHeart! 阅读(400) 评论(1) 编辑
摘要: 一、介绍 主机地址过滤中间件相当于一个白名单,标记哪些主机地址能访问接口。 二、使用 新建WebAPI项目,修改Startup中的代码段如下所示。下面表示允许主机名为“localhost”的主机访问(不区分大小写),其他主机地址访问此项目的接口都会返回400错误。 (正常访问) 上面为正常访问情况,阅读全文
posted @ 2018-09-19 02:48 MicroHeart! 阅读(251) 评论(0) 编辑
摘要: 一、介绍 在介绍静态文件中间件之前,先介绍 ContentRoot和WebRoot概念。 ContentRoot:指web的项目的文件夹,包括bin和webroot文件夹。 WebRoot:一般指ContentRoot路径下的wwwroot文件夹。 介绍这个两个概念是因为静态资源文件一般存放在Web阅读全文
posted @ 2018-09-10 14:30 MicroHeart! 阅读(568) 评论(1) 编辑
摘要: 今天写了一个sql,其中涉及的表中的数据量都差不多为50w左右,查询发现用了8s。这个只是测试服上数据,放到正式服上,肯定一运行就挂了。 然后就用EXPLAIN分析了一下,发现Orders表没有命中索引,但是查询Orders中的GuidNo已经设置了索引,但就是不能命中。 然后我将上面的语句分为两个阅读全文
posted @ 2018-09-06 15:47 MicroHeart! 阅读(52) 评论(0) 编辑
摘要: 一、安装 我使用的系统是Ubuntu16.04,不同版本系统参照官网安装步骤。安装官网4个步骤安装好MongoDB并启动。 安装MongoDB可视化工具compass(可视化管理工具比较多,可以看这篇文章介绍)。我的可视化工具是安装在Window上,MongoDB安装在Ubuntu上,现在来远程连接阅读全文
posted @ 2018-09-04 13:20 MicroHeart! 阅读(419) 评论(3) 编辑
摘要: 一、介绍 Quartz.Net是根据Java的Quartz用C#改写而来,最新的版本是3.0.6,源码在https://github.com/quartznet/quartznet。主要作用是做一些周期性的工作,或者定时工作。比如每天凌晨2点对前一天的数据统计。 二、简单的案例 以WebApi项目举阅读全文
posted @ 2018-08-29 17:31 MicroHeart! 阅读(2792) 评论(4) 编辑
摘要: 上一篇文章已经介绍了MemoryCache,MemoryCache存储的数据类型是Object,也说了Redis支持五中数据类型的存储,但是微软的Redis缓存组件只实现了Hash类型的存储。在分析源码之前,先学几个关于Redis操作的命令。 一、Redis命令 Redis所有的命令在//阅读全文
posted @ 2018-08-15 14:07 MicroHeart! 阅读(909) 评论(1) 编辑
摘要: 一、介绍 由于CPU从内存中读取数据的速度比从磁盘读取快几个数量级,并且存在内存中,减小了数据库访问的压力,所以缓存几乎每个项目都会用到。一般常用的有MemoryCache、Redis。MemoryCache将存入的对象都作为Object对象存储,Redis分为五种类型存储,在微软提供的缓存组件中也阅读全文
posted @ 2018-08-13 09:40 MicroHeart! 阅读(1576) 评论(10) 山西快乐十分走势
  • 高温“烤验”,品读这些自带凉意的避暑诗词 2019-05-19
  • 2015科教频道中秋晚会《天涯共此时》 2019-05-19
  • 特朗普政府用政治“边缘政策”处理贸易问题是玩火 2019-05-17
  • 高清:探访苟坝见证历史 红军在此留下珍贵遗物 2019-05-15
  • 交通小事故,几分钟就能处理完 2019-05-15
  • 在现时代,无论中国还是西方发达国家都是社会财富公有制和私有制并存的社会,由于仍旧存在社会财富私有制,所以必然存在贫富差别,离开私有制来谈“贫”和“富”... 2019-05-15
  • 【学习时刻·经济实说②】管清友:中央经济工作会议的十大亮点 2019-05-15
  • 绿染江源,千湖归来——三江源生态保护建设取得阶段性成效 2019-05-13
  • 把握和传承好“变则通”思想(大家手笔) 2019-05-13
  • 5月份70个大中城市商品住宅销售情况:一线城市商品房价格同比持续下降 2019-05-08
  • 官方:装备管理失职 恒大俱乐部总经理等人遭处罚 2019-05-01
  • 中共一大代表中最早辞世的王尽美:3首小诗与27年人生 2019-04-29
  • 不管怎么修饰辞藻,只要放弃革命,就是苏联的结果,还用证明吗? 2019-04-27
  • 新和县:12333为参保群众提供咨询便利 2019-04-22
  • 秋冬进补“小人参” 称霸国人餐桌3000年 2019-04-22
  • 224| 410| 770| 725| 396| 517| 679| 141| 720| 416|