欢迎光临
我们一直在努力

2020年04月的文章

第3页
iostat 工具分析I/O性能-IT技术资讯
Linux

iostat 工具分析I/O性能

admin阅读(1206)评论(0)赞(2)

iostat(1)是在Linux系统上查看I/O性能最基本的工具,然而对于那些熟悉其它UNIX系统的人来说它是很容易被误读的。比如在HP-UX上 avserv(相当于Linux上的 svctm)是最重要的I/O指标,反映了硬盘设备的性能,它...

TCP

SYN和RTO

老王阅读(922)评论(0)赞(0)

前两天,我在微博上推荐了一篇朝花夕拾的文章:The story of one latency spike,文章中介绍了 cloudflare 工程师如何一步一步 debug 网络延迟问题,细细读来受益良多,不过我并不打算详细介绍那篇文章的细...

php

实战Guzzle抓取

老王阅读(1472)评论(0)赞(1)

虽然早就知道很多人用 Guzzle 爬数据,但是我却从来没有真正实践过,因为在我的潜意识里,抓取是 Python 的地盘。不过前段时间,当我抓汽车之家数据的时候,好心人跟我提起 Goutte 搭配 Guzzle 是最好的爬虫,让我一直记挂在...

TCP

SYN丢包的几个例子

老王阅读(1018)评论(0)赞(0)

如果出现 SYN 丢包,那么将导致严重的性能问题,如果没有严重到完全连不上,那么在延迟时间上会表现出明显的时间特征,比如:1秒,3秒,7秒,15秒,31秒,具体可以参考:「SYN和RTO」,本文不说这个,就说说哪些情况会出现 SYN 丢包。...

Linux

在同一个系统里使用多个版本的软件

老王阅读(954)评论(0)赞(1)

如果你有几房姨太太的话,那么想让她们和平共处,多半是痴人说梦。对程序员而言,虽然他们不会有娶几个老婆的好运气,但是很可能会遇到在同一个系统里使用多个版本的软件的情况,一旦处理不好,同样会焦头烂额。   下面通过一个例子来说明如何解...

谈谈JSONAPI在PHP中的应用-IT技术资讯
JSON

谈谈JSONAPI在PHP中的应用

老王阅读(903)评论(0)赞(4)

现在服务端程序员的主要工作已经不再是套模版,而是编写基于 JSON 的 API 接口。可惜大家编写接口的风格往往迥异,这就给系统集成带来了很多不必要的沟通成本,如果你有类似的困扰,那么不妨关注一下 JSONAPI,它是一个基于 JSON 构...

FTP

记一次sftp故障

老王阅读(851)评论(0)赞(1)

同事在使用 sftp 连接服务器的时候出现错误信息:session is down,已经自行检查了服务器地址,端口,用户名,密码等种种可能出现低级失误的地方,结果找不到原因。   同事找到我时,开始我觉得仅凭直觉并不好下手,不过但...

php

记录file_get_contents返回空字符串的问题

老王阅读(911)评论(0)赞(1)

群里一位大佬上午说了一句箴言:「 世界上没有什么故障是重启解决不了的,如果有,再重启一次。」,结果下午群里就有一位朋友遇到了一个诡异的老版本 PHP 问题:当使用 file_get_contents 抓取网页内容的时候,总是返回空字符串,奇...

如何编码事务-IT技术资讯
php

如何编码事务

老王阅读(1078)评论(0)赞(1)

我说的事务指的是一般的数据库事务,而不是什么分布式事务之类高大上的概念。听起来很简单,但是即便如此,想实现的优雅一点也不是一件容易的事情。  假设有一个 QA 系统,当用户在上面提问的时候,系统保存问题,然后更新用户的提问数,最后触发一个问...

几个用于诊断HTTP响应时间情况的小工具-IT技术资讯
HTTP

几个用于诊断HTTP响应时间情况的小工具

老王阅读(986)评论(0)赞(2)

如果有人说你的 HTTP 接口响应慢,那可能是他的电脑慢,也可能是网络本身慢,还可能是你的服务器慢,总之想搞清楚到底是哪里慢并不是一件简单的事情,好在有一些小工具可以帮你快速做出正确的判断。   Chrome DevTools: ...

Linux

journalctl日常使用

admin阅读(1394)评论(0)赞(1)

1. 基础用法 1.1 查看所有日志(默认显示本次启动的所有日志) [root@devops-101 ~]# journalctl 查看本次启动的所有日志也可以使用 [root@devops-101 ~]# journalctl -b 1....

学习Golang的HTTP中间件机制-IT技术资讯
golang

学习Golang的HTTP中间件机制

老王阅读(966)评论(0)赞(2)

因为 Golang 内置的 net/http 天生就支持 HTTP 中间件机制,所以即便不用 gin 之类的 Web 框架,我们也可以写出扩展性很好的 Web 应用。   假如你不了解 Golang 的 HTTP 中间件机制的话,...

ihh

推导利滚利公式

老王阅读(718)评论(0)赞(0)

自从开始学习智能合约之后,接触到了很多「资金盘」游戏,比如前段时间大火的 Fomo3D,不过自从 333ETH 崩盘之后,此类游戏暂时已经没有市场了,因为本质上来说,它们都属于庞氏骗局,在研究相关代码后,让我对利滚利公式产生了一点兴趣,其实...

如何实现一个定制的智能合约地址-IT技术资讯
golang

如何实现一个定制的智能合约地址

老王阅读(1245)评论(0)赞(0)

我学习智能合约的一个主要途径就是在 DappRadar 看各个热门应用的源代码,前些天我在看  dice2win 的时候发现一个有趣的现象:虽然它自从上线以来已经多次部署过智能合约,不过让人好奇的是这些地址有一个特点,都有一个和名字很像的 ...

如何解密keystore文件-IT技术资讯
golang

如何解密keystore文件

老王阅读(1383)评论(0)赞(0)

如果你用 geth 创建过账号「geth –datadir /path/to/data account new」,那么多半知道 keystore 文件,它通过一个 password 加密保存着账号的私钥: keystore 如果我想拿到加密...

区块链

关于以太坊随机数

老王阅读(1306)评论(0)赞(0)

在以太坊应用中,游戏一直都是热点中的热点,而在游戏中,随机数往往是一个不可或缺的功能,比如骰子游戏中,我们需要通过随机数来控制点数,如果一个游戏有一个好的随机数算法的话,那么既可以保证游戏庄家不被黑,也可以保证玩家不被宰。   虽...

搭建以太坊智能合约测试环境-IT技术资讯
区块链

搭建以太坊智能合约测试环境

老王阅读(1527)评论(0)赞(1)

早就想学习区块链相关技术了,可惜因为懒惰一直没有付诸实践,最近随着诸如 God.Game,Fomo3D 等区块链游戏接连暴出安全漏洞,让我对智能合约的兴趣愈发强烈起来,于是利用周末搭建以太坊智能合约测试环境,原想应该很简单,实际却花了不少精...

MySQL

通过ProxySQL提升PHP/MySQL的性能

老王阅读(888)评论(0)赞(3)

前些天我介绍了如何通过 Twemproxy 实现 Redis 连接池,进而提升 PHP/Redis 的性能。今天我要介绍一下 ProxySQL,通过它可以实现 MySQL 连接池,进而提升 PHP/MySQL 的性能,实际上原理是差不多的,...

史上最LOW的PHP连接池解决方案-IT技术资讯
Lua

史上最LOW的PHP连接池解决方案

老王阅读(936)评论(0)赞(3)

大多数 PHP 程序员从来没有使用过连接池,主要原因是按照 PHP 本身的运行机制并不容易实现连接池,于是乎 PHP 程序员一方面不得不承受其它程序员的冷嘲热讽,另一方面还得面对频繁短链接导致的性能低下和 TIME_WAIT 等问题。 说到...

php

通过Twemproxy提升PHP/Redis的性能

老王阅读(1018)评论(0)赞(2)

Twemproxy 可以说是最古老的 Redis 代理软件了,一般来说,引入代理后性能会比没有引入代理时低一些,毕竟代理会导致一些额外的性能损耗,可是 Twemproxy 却会提升性能, 这主要得益于它的 Pipelining 功能可以实现...

golang

golang ---rune与byte

admin阅读(1083)评论(0)赞(1)

golang内置类型有rune类型和byte类型。 rune类型的底层类型是int32类型,而byte类型的底层类型是int8类型,这决定了rune能比byte表达更多的数。 在unicode中,一个中文占两个字节,utf-8中一个中文占三...

Go 语言十年而立,Go2 蓄势待发-IT技术资讯
golang

Go 语言十年而立,Go2 蓄势待发

admin阅读(1119)评论(0)赞(2)

在21世纪的第一个十年,计算机在中国大陆才逐渐开始普及,高校的计算机相关专业也逐渐变得热门。当时学校主要以C/C++和Java语言学习为主,而这些语言大多是上个世纪90年代或更早诞生的,因此这些计算机领域的理论知识或编程语言仿佛是上帝创世纪...

golang

golang fmt.Printf

admin阅读(788)评论(0)赞(0)

package main import "fmt" import "os" type point struct { x, y int } func main() { //Go 为常规 Go 值的格式化设计提供了多种打印方式。例如,这里打印了...

golang

在Golang的HTTP请求中共享数据

老王阅读(929)评论(0)赞(3)

首先,我们需要先明确一下问题的描述:本文所要讨论的共享数据可不是指的 cookie、session 之类的概念,它们描述的是在「请求间」共享数据,而我们关注的是在「请求中」共享数据,也就说是,在每个请求中的各个 middleware 和 h...

golang

To panic or not to panic

老王阅读(953)评论(0)赞(1)

大家都知道 Golang 推荐的错误处理的方式是使用 error,这主要得益于 Golang 方法可以返回多个值,我们可以很自然的用最后一个值来表示是否有错误,这一点是其它很多编程语言所不具备的,不过这多少让那些习惯了 exception ...

golang

如何优化Golang中重复的错误处理

老王阅读(831)评论(0)赞(0)

Golang 错误处理最让人头疼的问题就是代码里充斥着「if err != nil」,它们破坏了代码的可读性,本文收集了几个例子,让大家明白如何优化此类问题。   让我们看看 Errors are values 中提到的一个 io...

Golang之Context的迷思-IT技术资讯
golang

Golang之Context的迷思

老王阅读(1314)评论(0)赞(1)

对我而言,Golang 中的 Context 一直是谜一样的存在,如果你还不了解它,建议阅读「快速掌握 Golang context 包,简单示例」,本文主要讨论一些我曾经的疑问。   Context 到底是干什么的? 如果你从没...