分类 默认分类 下的文章

记一次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的统计方式。

- 阅读剩余部分 -

Visual Studio创建测试工程入门

单元测试是每个程序员都应该知道并且实际应用的知识,特别对于某些特定情况下,如接口开发和代码重构时,单元测试显得尤为重要。笔者之前的代码测试都依赖于手工,近期才使用框架或自己写的测试小程序,虽然很早就了解过NUnit等框架,但是却一直没用,最近抽出一点时间来学习下代码的单元测试知识。

本文主要介绍在微软Unit Test框架对托管代码(VB.Net和C#)的测试流程,内容比较简单,主要是介绍下整个测试的流程。参考自 msdn unit test章节。

本文目录

  • 前期准备
  • 创建单元测试工程、添加测试类
  • 添加测试方法
  • 编译与运行测试
  • 使用单元测试提升代码质量

这里使用的微软自带的Unit test框架,其Test Explorer除了可以运行MS Unit框架的测试代码之外,还实现了可以支持第三方测试框架的适配器,如NUnit,后续文章将会介绍如何使用NUnit框架。

- 阅读剩余部分 -