分类 默认分类 下的文章

缓存设计的简单介绍

之前从一位大佬的文章中看到:缓存是提高性能最好的方式。从我个人的项目经历和所做的相关性能优化工作来看,对此深表认同。

对于业务系统而言最重要的就是数据,一般来说这种类似ERP的业务系统基本上都是使用关系型数据库,大部分的数据都是从数据库中取,属于磁盘IO,而缓存系统则都是放在内存中操作。一个是内存读写,一个是磁盘IO,效率自然是天壤之别。

本文从一下几个方面来介绍缓存系统的原理

  • 缓存的使用场景
  • 缓存设计的几种方式
  • 缓存设计的几个热点

- 阅读剩余部分 -

记一次tcp连接超时的问题分析

现象:
IIS站点下使用Restsharp.dll通过HTTP协议调用远程接口,时常发现调用失败,System.Net返回TCP错误,代码10060,表示超时或无响应。

通过安装Wireshark抓包发现,Client连接服务器的TCP第一次握手,发送SYN失败,导致多次重传,仍然失败后,没有后续的HTTP请求了。


- 阅读剩余部分 -

《RabbitMQ入门之Go语言教程》(3) 发布/订阅模式

本系列摘自RabbitMQ官方教程,边学习边翻译的中文的版本,水平有限,不妥之处,欢迎交流。

前一篇介绍中实现了一个工作队列,它假设队列中的每一个任务都只会被分发到一个工作者进行处理。在本篇中,我们尝试将同一个消息发送给多个消费者进行处理,这就是广为人知的发布/订阅模式。

本篇通过搭建一个日志系统来阐述发布/订阅模式,它包含两部分内容:一个用于产生日志消息的程序,另一个用于接收和打印消息。
在这个日志系统中,每一份接收者程序的拷贝都能收到消息,因此我们可以轻易地使用一个程序将日志写入磁盘,而另一个程序直接在屏幕显示。

本质上来说,当系统收到一个日志处理请求时,会把这个消息广播给所有的接收者。


- 阅读剩余部分 -

《RabbitMQ入门之Go语言教程》(2) 工作队列

本系列摘自RabbitMQ官方教程,边学习边翻译的中文的版本,水平有限,不妥之处,欢迎交流。

上一篇介绍中我们实现了从消息产生程序发送简单消息到命名队列的过程,本篇将实现一个将耗时任务分发到多个消费者程序的工作队列。

work_queue.png

工作队列的主要思想是避免对资源密集型任务处理时的等待,而是先将任务压入队列,后期再进行计划处理。我们将任务封装成消息发送给队列,由队列程序按策略分发到所有的在线工作者程序执行。当有多个工作程序同时在线时,多项任务同时被多个不同的工作者处理便成为可能。

在Web应用程序领域,如果需要在一个HTTP短连接中完成一些复杂的耗时任务时,工作队列的思想能大幅提高处理效率而带来了更好的用户体验。

- 阅读剩余部分 -

Typecho文章浏览次数统计插件设置

文章阅读数是一个衡量传播价值的重要指标,有PV(Page View), UV(Unique View)等,本篇介绍下简单PV统计插件的使用方法。

Page View是指页面被访问的次数,单一用户多次访问页面或刷新页面均会被计算次数。

Unique View,独立访客数,指一天内访问该页面的人数,一般使用IP来区分,统一IP的多次访问不会被重复计数。

本篇介绍简单PV指标的插件使用方法,因本站访客寥寥无几,大部分都是自己的访问次数,所以PV并不能真实体现被浏览的情况,后续笔者会在此插件的基础上实现UV的统计方式。

- 阅读剩余部分 -